1. Trang chủ
  2. » Giáo án - Bài giảng

tổng hợp những bài tập passcal nâng cao bồi dưỡng.

38 545 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 241,77 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài 5 : Viết chương trình nhập một xu kí tự , sau đĩ chỉ ra xem xu đĩ cĩ phải l xu đối xứng khơng xu đối xứng l xu cĩ cc kí tự giống nhau v đối xứng nhau qua điểm giữa xu , ví dụ ‘ABBA’

Trang 1

BÀI TẬP CHƯƠNG 4: CẤU TRÚC DỮ LIỆU MẢNG

Writeln('He co nghiem duy nhat :');

Writeln('x=', x:0:2, ' ; y=', y:0:2);

For j := 2 To 9 Do a[i, j] := i*j ;

Writeln(' Bang cuu chuong : ') ; Writeln ;

For i := 1 To 10 Do

For j := 2 to 9 do Write ( j:4 , 'x' , i:2 , '=' , a[i , j]:2) ;

Trang 2

Writeln ('Trung bàinh cong bàimh phuong cac so '

+ 'nguyen tu m den n la: ', tb:12:2);

Write ('Nhap cac kich thuoc cua mang hai chieu : ') ;

Write (' So hang m = ') ; Readln(m) ;

Write (' So cot n = ') ; Readln(n) ;

Writeln (' Nhap cac phan tu cua mang : ') ;

Trang 3

an = an-1 + an-2 Viết chương trình tính 20 số Fibonaci đầu tin v đưa ra kết quả vo một mảng 20 phần tử

an = 2an-1 + an-2 ( n > 2 )

Hy lập chương trình tính v gn gi trị của dy vo bàiến mảng

Var a : Array [1 100] Of Word ;

Trang 4

if a[i,k]=ba then d:=true;

if i>1 then for k:=1 to i-1 do

if a[k,j]=ba then d:=true;

Trang 5

Gotoxy(9*j-1, 2*i+4); Read(a[i, j]);

Gotoxy(9*j-1, 2*i+4); ClrEol; Write(a[i, j]:6);

End;

Readln;

END

Bài 9 :

a a. Viết chương trình nhập dữ liệu từ dy đối xứng vo mảng một chiều

b b. Viết chương trình nhập dữ liệu l ma trận đối xứng vo mảng hai chiều

a) Var a: array [1 100] of integer;

n, i: byte;

Begin

Write('Nhap so phan tu cua day doi xung:');

Readln(n);

Writeln('Nhap cac phan tu cua day:');

For i:=1 to (n+1) div 2 do

Trang 6

Write(' Cho mot xau ki tu : '); Readln(s);

For ch:= 'A' to 'Z' do A[ch]:=0;

For i:=1 to length(s) do

Trang 7

b b Mỗi một nhĩm cc dấu chấm liền nhau bằng một dấu chấm

c c Một nhĩm cc dấu chấm đứng liền nhau bằng dấu ba chấm

a ) Var S: string;

i: byte;

BEGIN

Write(' Cho mot xau ki tu S = '); Readln(S);

For i:=1 to length(S) do

If S[i] = '!' then S[i]:= '.';

Write( ' Chuoi sau khi da bàien doi la : ', S);

Trang 8

While i< length(S) do

If (S[i]='.')and(S[i+1]='.') then Delete(S,i,1)

Trang 9

Write(' Cho mot xau ki tu : '); Readln(S);

i:= pos('aa', S); {tìm vị trí xu con 'aa' trong S}

If i<>0 then Writeln(' Ton tai "aa" tai vi tri ', i)

Else Writeln(' Khong ton tai ') ;

Readln;

END

Bài 4 :

Cho số tự nhin n v dy cc kí tự S1 , S2 , … , Sn Bàiết rằng trong dy cĩ ít nhất một dấu phẩy Hy tìm số

tự nhin i sao cho :

a a Si l dấu phẩy đầu tin

b b Si l dấu phầy cuối cng

a )

Var S: string;

i: integer;

BEGIN

Write('Cho mot xau S co dau ",": '); Readln(S);

i:= pos(',', S); (* vị trí của dấu ',' trong S *)

If i<> 0 then Write(' Vi tri thoa man la: ', i);

Trang 10

While (i>=1)and(S[i] <> ',' ) do i:=i -1;

If i>=1 then Write('So thu tu thoa man la: ', i)

Else Write('Khong ton tai.');

Readln;

END

Bài 5 :

Viết chương trình nhập một xu kí tự , sau đĩ chỉ ra xem xu đĩ cĩ phải l xu đối xứng khơng ( xu đối xứng

l xu cĩ cc kí tự giống nhau v đối xứng nhau qua điểm giữa xu , ví dụ ‘ABBA’ hoặc ‘ABCBA’ )

If dx then Write(' St la xau doi xung ')

Else Write(' St khong phai la xau doi xung ') ;

For j:=1 to i-1 do if (S[j]=S[i]) then t:=true;

If not t then dem:= dem+1;

End;

Trang 11

Write('So ki tu khac nhau cua xau S la: ', Dem);

Write('Cho mot xau ky tu: '); Readln(S);

For i:=1 to length(S) do

If S[i] in ['a' 'z'] then S[i]:= Upcase(S[i]);

Write('Chuoi sau khi da bàien doi la: ', S);

Readln;

END

Bài 8 :

Họ tn một học sinh được nhập từ bn phím Bạn hy viết chương trình điều chỉnh lại cc kí tự đầu của cc

từ đơn trong tn của học sinh ấy trở thnh chữ in hoa

If Hoten[1] in Chu then Hoten[1]:=Upcase(Hoten[1]);

For i:=2 to len do

If (Hoten[i-1]=#32)and(Hoten[i] in Chu) then

While (S[length(S)] = #32) do Delete(S,length(S),1);

Write('Chuoi sau khi da bàien doi la: ', S);

Trang 12

Function Card(S: Tap): byte;

Var i,n: byte;

Trang 14

2 2 Sua chua

3 3 Loai bo

4 4 Nhap them

5 5 Thoat

Lua chon cua ban : _

Sau đĩ đợi g phím Chương trình phải đợi cho tới khi phím g vo l một trong cc chữ số 1 5 hoặc cc chữ ci đầu của cc tuỳ chọn thì thơng bo phím g vo hợp lệ v kết thc chương trình Trong chương trình phải dng một tập hợp để kiểm tra việc nhập gi trị cho bàiến từ bn phím

Trang 15

Else If ch<>#13 then Write(#7);

Until not(ch in ['a' 'z']);

Writeln('Cac phan tu cua tap hop la:');

Until not(ch in ['a' 'z']);

Writeln('Cac phan tu con lai cua tap hop la:');

For ch:='a' to 'z' do

Trang 16

If ch in tap then Write(ch,' ');

 Tuổi : một số nguyn hai chữ số

 Lớp : một xu hai chữ số v một chữ ci viết hoa

Hy lập chương trình nhập từ bn phím danh sch một lớp 15 học sinh vo một mảng bản ghi Sau đĩ hiển thị danh sch ln mn hình , mỗi người một dịng

Writeln('Thong tin hoc sinh thu ',i);

Write('Cho ho lot : '); Readln(ds[i].holot);

Write('Cho ten : '); Readln(ds[i].ten);

Write('Cho tuoi : '); Readln(ds[i].tuoi);

Write('Cho lop : '); Readln(ds[i].lop);

 Tuổi : một số nguyn hai chữ số

 Lớp : một xu hai chữ số v một chữ ci viết hoa

Trang 17

Một file bản ghi chứa một danh sch một lớp gồm 20 học sinh Hy lập chương trình hiển thị danh sch ln

 Tuổi : một số nguyn hai chữ số

 Khối : một số nguyn hai chữ số

Trang 19

Một file bản ghi chứa một danh sch học sinh PTTH , thơng tin về mỗi học sinh ngồi cc trường Họđệm ,

Tn , Tuổi , Lớp giống như cc bài trn cịn cĩ thm trường Điểm chứa điểm trung bình của học sinh trong năm học Hy lập chương trình :

a a Hiển thị ln mn hình danh sch những học sinh giỏi nhất của trường l những bạn cĩ điểm trung bình

từ 8.0 trở ln v cao nhất trong khối

b b Lập danh sch học sinh trong năm học mới , bàiết một học sinh cĩ điểm trung bình từ 5.0 trở ln thì được ln lớp Ch ý : lớp 10A ln lớp 11A , lớp 11A ln 12A Kết quả chứa trong file

(* Khen thuong va len lop *)

Trang 20

l: string;

Begin

max10:=0; max11:=0; max12:=0;

For i:=1 to n do With ds[i] do

Begin

l:=copy(lop,1,2);

If (l='10')and(diem>max10)and(diem>8.0) then max10:=diem

Else If (l='11')and(diem>max11)and(diem>8.0) then max11:=diem

Else If (l='12')and(diem>max12)and(diem>8.0) then max12:=diem;

End;

Writeln('Hoc sinh gioi nhat khoi 10 : ');

For i:=1 to n do With ds[i] do

If (copy(lop,1,2)='10')and(diem>=max10) then

Writeln(holot:20,ten:10,tuoi:4,lop:5,diem:5:1);

Writeln('Hoc sinh gioi nhat khoi 11 : ');

For i:=1 to n do With ds[i] do

If (copy(lop,1,2)='11')and(diem>=max11) then

Writeln(holot:20,ten:10,tuoi:4,lop:5,diem:5:1);

Writeln('Hoc sinh gioi nhat khoi 12 : ');

For i:=1 to n do With ds[i] do

If (l='10')and(diem>=5.0) then lop:='11'+lop[3]

Else If (l='11')and(diem>=5.0) then lop:='12'+lop[3]

Else If (l='12')and(diem>=5.0) then lop:='DTN';

End;

Assign(f,'bai4n.dat'); Rewrite(f);

For i:=1 to n do With ds[i] do

If lop<>'DTN' then Write(f,ds[i]);

Cho file bản ghi f chứa dữ liệu về kho sch , dữ liệu về mỗi cuốn sch được chứa trong một bản ghi gồm

3 trường mang thơng tin về :

 Họ tn tc giả : một xu 26 kí tự

 Tn sch : một xu 40 kí tự

 Năm xuất bản : một số nguyn 4 chữ số

Trang 21

Hăy lập chương trình nhập dữ liệu vo kho sch , sau đĩ tìm ra :

 Những cuốn sch của một tc giả cho trước xuất bản vo một năm cho trước

 Những cuốn sch cĩ tn cho trước

Write('Cho ten tac gia : '); Readln(M.tacgia);

Write('Cho nam xuat ban : '); Readln(M.NamXB);

i:=1;

While (i<=n)and((ds[i].tacgia<>tacgia)or(ds[i].namXB<>namXB)) do i:=i+1;

If (i>n) then Writeln('Khong tim duoc')

While (i<=n)and(ds[i].tensach<>ten) do i:=i+1;

If (i>n) then Writeln('Khong tim duoc')

Trang 22

Writeln('2 Tim kiem theo ten sach');

 Tổng số cc ngy lễ v tổng số cc ngy nghỉ lễ trong năm

 Tổng số cc ngy lễ v tổng số cc ngy nghỉ lễ trong quí 1 , quí 2 , …

Trang 23

Writeln('So ngay le trong nam : ',n);

Writeln('Tong so ngay nghi le trong nam : ',snn);

Writeln;

Writeln('So ngay le trong qui 1 : ',tsq1);

Writeln('Tong so ngay nghi le trong qui 1 : ',snnq1);

Writeln('So ngay le trong qui 2 : ',tsq2);

Writeln('Tong so ngay nghi le trong qui 2 : ',snnq2);

Writeln('So ngay le trong qui 3 : ',tsq3);

Writeln('Tong so ngay nghi le trong qui 3 : ',snnq3);

Writeln('So ngay le trong qui 4 : ',tsq4);

Writeln('Tong so ngay nghi le trong qui 4 : ',snnq4);

Trang 24

For j:=2 to (N div i) do a[i*j]:=false;

Repeat Inc(i) Until a[i] or (i>N);

(* Ghi v đọc file of String *)

Trang 25

Bạn hy viết chương trình cho php đọc dữ liệu từ bn phím v ghi thm vo cuối một tệp cc bản ghi

(* Doc v ghi vo cuối tệp cc bản ghi *)

Cho một văn bản chứa trong một text file f Trong văn bản , tính từ tri sang phải , từ trn xuống dưới ,

kí tự # l kí hiệu xố đi một từ đứng ngay trước nĩ nếu cĩ Ví dụ ‘#Ta#oi di ngu#h###hoc’ cĩ nghĩa l ‘Toi

di hoc’ Bạn hy viết chương trình sửa lại file f theo quy ước trn

Trang 26

Procedure Copyfile(fi1,fi2: string);

Var nread,nbuf: word;

buf: array [1 1024] of byte;

Cch 1 : Kiểm tra xem số lượng cc dấu ‘ ( dấu mở v dấu đĩng ) cĩ bằng nhau khơng ?

Cch 2 : Kiểm tra xem số lượng cc từ Begin v End cĩ bằng nhau khơng ?

(* Dem (') v 'Begin' , 'End' *)

Uses Crt;

Const fi='C8_6.txt';

Trang 27

Function Dem(c: string): integer;

Var n,l: integer; f: text; S: string;

Write(' So luong cac dau ( va ) ');

If Dem('(')<>Dem(')') then Writeln('khong bang nhau.')

Else Writeln('bang nhau.');

Write(' So luong cac tu Begin va End ');

If Dem('End')<>Dem('Begin') then Writeln('khong bang nhau.')

Else Writeln('bang nhau.');

Readln;

END

Bài 7 :

Cho một file text Hy viết chương trình đếm xem file text trn chứa bao nhiu từ

( Ch ý : theo quy định , cc từ cch nhau bởi một hay nhiều dấu cch )

Trang 28

Cho một file text Viết chương trình loại bỏ cc khoảng trống thừa bn trong file text ny

(* Cat khoang trong thua *)

While (s[1]=' ')and(Length(s)>0) do Delete(s,1,1);

While (s[Length(s)]=' ')and(Length(s)>0) do Delete(s,Length(s),1);

While (Length(s)>0)and(pos(' ',s)<>0) do Delete(s,pos(' ',s),1);

Trang 29

Write('Vi tri ban ghi can go bo: '); Readln(k);

p:=l; For i:=3 to k do p:=p^.next; (* Tìm vị trí đầu *)

If k=1 then l:=q Else p^.next:=q;

Trang 30

p:=l; For i:=3 to k do p:=p^.next; (* Tim vi tri *)

If k>1 then Cat(p^.next) Else Cat(l); {Cat - Noi}

Trang 31

p:=l; For i:=2 to k do p:=p^.next; tenk:=p^.name;

p:=l; For i:=2 to j do p:=p^.next; tenj:=p^.name;

p:=l; For i:=2 to k do p:=p^.next; p^.name:=tenj;

p:=l; For i:=2 to j do p:=p^.next; p^.name:=tenk;

Trang 32

SetFillStyle(1,4);

For x:=1 to GetMaxX do

Begin

y:=round(x*tl);

Bar((GetMaxX-x) div 2,(GetMaxY-y) div 2,

(GetMaxX+x) div 2,(GetMaxY+y) div 2);

Vẽ hình chữ nhật như trn , kích thước điều khiển được Nếu g phím + thì hình lớn ln , g phím – thì nhỏ

đi , g Enter thì dừng chương trình

(* Hình chữ nhật kích thước điều khiển được *)

Bar((GetMaxX-x) div 2,(GetMaxY-y) div 2,

(GetMaxX+x) div 2,(GetMaxY+y) div 2);

Bar((GetMaxX-x) div 2,(GetMaxY-y) div 2,

(GetMaxX+x) div 2,(GetMaxY+y) div 2);

If (c='+')and(x<GetMaxX) then Inc(x)

Else If (c='-')and(y>0) then Dec(x);

y:=round(x*tl);

SetFillStyle(1,4);

Bar((GetMaxX-x) div 2,(GetMaxY-y) div 2,

(GetMaxX+x) div 2,(GetMaxY+y) div 2);

Until c=#27;

CloseGraph;

END

Bài 3 :

Một bn cờ vua hiển thị trn mn hình Nếu đặt một con hậu ( hình trịn mu đỏ ) vo một ơ bằng cch nhập

tn ơ , chẳng hạn a5 , thì cc ơ bị con hu khống chế sẽ được tơ mu xanh Bạn hy lập chương trình thực hiện cc yu cầu trn

Trang 33

(* Phạm vi kiểm sốt của Con hậu *)

Trang 34

Hiển thị một hình chữ nhật trn mn hình , vị trí cĩ thể điều khiển được bằng bn phím G cc phím mũi tn

để dịch chuyển hình đĩ theo cc hướng tương ứng

Trang 35

(* dieu khien vi tri cua hinh vuong *)

Repeat Until KeyPressed;

c:=ReadKey; If c=#0 then c:=ReadKey;

If y>440 then y:=0;

If y<0 then y:=440;

Size 16

Size 24

Size 32

Trang 36

Size 40

Trang 37

(* To mau Ngoi nha *)

Ngày đăng: 14/02/2015, 09:00

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w