Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC
Program Program TIM_SO_LON_NHAT;
Uses crt;
Var a,b,c,d,max: real;
BEGIN
Clrscr;
Writeln('TIM SO LON NHAT TRONG BON SO A, B, C, D') ;
Writeln('---------------------------------------------------------------');
Write(' Nhap a='); Readln(a);
Write(' Nhap b='); Readln(b);
Write(' Nhap c='); Readln(c);
Write(' Nhap d='); Readln(d); max:=a;
If b>max then max:=b; If c>max then max:=c; if d>max then max:=d;
Writeln('So lon nhat la: ' ,max: 4: 2);
Readln;
END.
eln; Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 32 Assign(f,'data.dat'); Reset(f); For i:=1 to n do Read(f,ds[i]); Close(f); For i:=1 to n-1 do For j:=i+1 to n do begin If (ds[i].ten>ds[j].ten) then Doi(i,j) Else If (ds[i].ten=ds[j].ten)And(ds[i].holot>ds[j].holot) then Doi(i,j); end; Writeln('Danh sach hoc sinh: '); For i:=1 to n do With ds[i] do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); Writeln; Write('Bam Enter de ket thuc...'); Readln; END. Bài tập 3: Thông tin về mỗi học sinh là một bản ghi gồm các trường: Họđệm: một xâu 25 kí tự. Tên: một xâu 10 kí tự. Tuổi: một số nguyên hai chữ số. Lớp: một xâu hai chữ số và một chữ cái viết hoa Một file bản ghi chứa một danh sách một lớp gồm 20 học sinh. Hãy lập chương trình hiển thị danh sách lên màn hình, mỗi người một dòng. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 33 Program Nhaphocsinh; Uses Crt; Const n=5; Type Danhsach=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; end; Var ds: Danhsach; i: byte; f: file of Danhsach; BEGIN ClrScr; Writeln('Danh sach hoc sinh tu file bai2.dat'); Writeln; Assign(f,'bai2.dat'); Reset(f); For i:=1 to n do Begin Read(f,ds); With ds do Writeln(holot: 20,ten: 11,tuoi: 4,lop: 5); End; Close(f); Writeln; Write('Bam Enter de ket thuc...'); Readln; END. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 34 Bài tập 4: Một file bản ghi chứa một danh sách học sinh, thông tin về mỗi học sinh giống như bài trên. Hãy lập chương trình tạo một file bản ghi khác chứa danh sách đó, mỗi bản ghi gồm các trường: Họtên: một xâu 35 kí tự. Tuổi: một số nguyên hai chữ số. Khối: một số nguyên hai chữ số. Lớp: một chữ cái viết hoa Prorgam file_banghi; Uses Crt; Type Danhsach1=record holot: string[25]; ten: string[10]; tuoi: 0..99; lop: string[3]; End; Danhsach2=record hoten: string[35]; tuoi: byte; khoi: byte; lop: char; End; Var ds1: Danhsach1; ds2: Danhsach2; f1: file of Danhsach1; f2: file of Danhsach2; c: integer; BEGIN Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 35 ClrScr; Writeln('Ghi tu file bai3.dat sang bai3n.dat: '); Writeln; Assign(f1,'bai3.dat'); Reset(f1); Assign(f2,'bai3n.dat'); Rewrite(f2); While not Eof(f1) do Begin Read(f1,ds1); With ds1 do Begin ds2.hoten:=holot+ten; val(copy(lop,1,2),ds2.khoi,c); ds2.tuoi:=tuoi; ds2.lop:=UpCase(lop[3]); Write(f2,ds2); End; End; Close(f1); Close(f2); Writeln; Writeln('Bam Enter de ket thuc!'); Readln; END. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 36 Bài tập về chương trình con Bài tập 1. Dùng thủ tục chuyển một số tự nhiên n cho trước sang hệ cơ số 2. Procedure Change ( n: integer ; Var St: String ) ; b: Array[0.. 1] Of Char = ('0', '1') ; Var du, So: Integer ; S: String ; Begin S:='' ; {tao xau rong} So:=n ; Repeat Du:= So mod 2 ; So:=So div 2 ; S:=b[du] + s ; Until So = 0 ; St:=S ; End ; Bài tập 2: Dùng thủ tục giải phương trình bậc hai ax2 + bx + c = 0 Uses Crt ; Var a, b, c, x1, x2: real; {================================} Procedure Nhapabc(var aa,bb,cc: real); Begin Write('a='); Readln(aa); Write('b='); Readln(bb); Write('c='); Readln(cc); Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 37 End; {=================================} Procedure GPTB2; Var Delta: real; Begin Delta:=sqr(b)-4*a*c; If Delta<0 then Writeln('Phuong trinh vo nghiem.') Else If Delta=0 then Begin Write('Phuong trinh co nghiem kep: '); Write('x1,2=',-b/(2*a): 8: 2); End Else Begin x1:=(-b+sqrt(Delta))/(2*a); x2:=(-b-sqrt(Delta))/(2*a); Writeln('Phuong trinh co 2 nghiem phan biet la: '); Writeln('X1=',x1: 8: 2, 'X2=',x2: 8: 2); End; End; {============================================} BEGIN { CT chính } Clrscr; Writeln(' Giai Phuong Trinh Bac Hai Voi Cac He So: '); Nhapabc(a,b,c); Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 38 If a0 then GPTB2 Else Writeln(' Khong phai phuong trinh bac hai '); Readln ; END. Bài tập 3: Viết chương trình thực hiện lần lượt các công việc sau: Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím. Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không ? Viết thủ tục tính diện tích của tam giác. Viết thủ tục tính các trung tuyến của tam giác. Viết hoàn thiện chương trình chính. Program Chuong_trinh; Uses Crt; Var a, b, c: real ; {================================} Procedure Nhap(Var a, b, c: real); Procedure input (Var a: real; tenbien: Char); Begin Repeat Write('Nhap ' + tenbien+' = '); Readln(a); Until (a>=0); End; Begin Input(a, 'a'); Input(b, 'b'); Input(c, 'c'); End; Procedure Kiemtra(a, b, c: Real); Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 39 Begin If (a<b+c) And (b<a+c) And (c<a+b) then Writeln(a:0:2, ', ', b: 0: 2, ' va ', c: 0: 2, ' lap thanh ba canh cua tam giac ') Else Writeln('Khong lap thanh ba canh cua tam giac') ; End; Procedure Trung_tuyen (a, b, c: Real); Var ma, mb, mc: real; Begin ma:=sqrt((2*sqr(b)+2*sqr(c)-sqr(a))/4); mb:=sqrt((2*sqr(a)+2*sqr(c)-sqr(b))/4); mc:=sqrt((2*sqr(a)+2*sqr(b)-sqr(c))/4); Writeln('Cac trung tuyen cua tam giac la: ') ; Writeln('ma=', ma: 0: 2, ' mb=', mb: 0: 2, ' mc=', mc: 0: 2); End; {================================} Procedure Dientich (a, b, c: real); Var p, S: real; Begin p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Dien tich =', S: 0: 2); End; {================================} BEGIN Clrscr; Nhap(a, b, c); Kiemtra(a, b, c); Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 40 Dientich(a, b, c); Trung_tuyen(a, b, c); Readln; END. Bài tập 4: Số Hoàn Hảo là số có tổng các ước của nó (trừ nó) bằng chính nó Ví dụ: 6 = 1 + 2 + 3 a. Viết chương trình kiểm tra xem 1 số có là số hoàn hảo không b. Liệt kê tất cả số hoàn hảo từ 1..2000 và đếm xem có bao nhiêu số Program So_hoan_hao; uses crt; var n,i,d,k,j: integer; Procedure hoanhao; Begin d:=0; for i:=1 to n-1 do if n mod i=0 then d:=d+i; if d=n then writeln(' So vua nhap la so hoan hao') else writeln(' So vua nhap khong la so hoan hao'); end; Procedure Viet_len; Begin write(' Day so hoan hao tu 1-->2000: '); k:=0; Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 41 for i:=1 to 2000 do Begin d:=0; for j:=1 to i-1 do if i mod j=0 then d:=d+j; if d=i then Begin write(i: 5); k:=k+1; End; End; writeln; writeln(' Trong day 1-->2000 co ',k,' so hoan hao'); End; Begin clrscr; write(' Nhap n='); readln(n); hoanhao; vietlen; readln; End. Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 42 Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số viết chương trình con thực hiện Kiểm tra tình chắn lẻ Kiểm tra xem có phải là số nguyên tố không Kiểm tra xem có phải là số chính phương không Sau đó trên chương trình chính kiểm tra và trả lời số vừa nhập thuộc số nào? Program chuong_trinh; uses crt; var i,n,k,d: integer; ok: boolean; Function chanle(n: integer): boolean; Begin ok:=true; if n mod 20 then ok:=false; chanle:=ok; End; Function nguyento(n: integer): boolean; Begin ok:=true; d:=0; for i:=2 to n-1 do if n mod i=0 then d:=d+1; if d1 then ok:=false; nguyento:=ok; End; Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 43 Function chinhphuong(n: integer): boolean; Begin ok:=true; k:=trunc(sqrt(n)); if sqr(k)n then ok:=false; chinhphuong:=ok; End; Begin clrscr; write(' Nhap n=');readln(n); if chanle(n) then writeln(' So vua nhap la chan') else writeln(' So vua nhap la so le'); if nguyento(n) then writeln(' So vua nhap la nguyen to') else writeln(' So vua nhap khong phai la so nguyen to'); if chinhphuong(n) then writeln(' So vua nhap la so chinh phuong') else writeln(' So vua nhap khong la so chinh phuong'); readln; End. Bài 6. Viết chương trình con tính a Giai Thừa với a nhập từ bàn phím Program giaithua; uses crt; var a: integer; Function gt(n: byte): Longint; Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 44 Var s: Longint; i: byte; Begin s:=1; For i:=2 to n do s:=s*i; gt:=s; End; Begin clrscr; write ('Nhap so can tinh giai thua: ');readln(a); if a:=0 or a:=1 then writeln('Giai thua cua ',a,' = 1') else writeln('Giai thua cua',a,' =', gt(a) ); End. Bài 7. Nhập vào 1 mảng gồm n số nguyên (2<n<20). In ra các số nguyên tố có trong mảng. Program Mang; uses crt; var a: array [ 1..20] of byte; i,n,d,j,k: integer; Procedure nhap; Begin for i:=1 to n do Begin write(' a[',i,']='); readln(a[i]); End; End; Procedure nguyento; Begin write(' Day so cac so nguyen to: '); Trần Văn Chung trường THPT Hoàng Văn Thụ Nha Trang ĐT: 0972.311.481 Trang 45 k:=0; for i:=1 to n do Begin d:=0; for j:=1 to a[i]-1 do if a[i] mod j=0 then d:=d+1; if d=1 then Begin write(' ',a[i]); k:=k+1; End; End; if k=0 then write(' khong co so nao') else begin writeln; writeln(' Trong day co ',k,' so nguyen to'); End; End; Begin clrscr; repeat write(' Nhap n='); readln(n); until (2<n)And(n<20); nhap; nguyento; readln; End.
File đính kèm:
- Bài tập pascal cơ bản đến nâng cao theo chương trình TIN HỌC.pdf