61 bài tập Pascal cơ bản
Bài 1: Nhập vào 2 cạnh của một hình chữ nhật. In ra màn hình diện tích và chu vi của nó. Program HINH_CHU_NHAT;
Uses Crt;
Var a,b,s,c: real; Begin
Clrscr;
Writeln(‘ TINH DIEN TICH & CHU VI HINH CHU NHAT:’); Writeln(‘--------------------------------------------------------------‘); Write('Nhap chieu dai='); readln(a);
Write('Nhap chieu rong=');readln(b);
s:=a*b;
c:=(a+b)*2;
Writeln('Dien tich hinh chu nhat la:’,s:6:2); Writeln('Chu vi hinh chu nhat:',c:6:2); Readln;
End.
); For i:=1 to n do Write(a[i]:4); Readln; {Tinh trung binh day} s:=0; For i:=1 to n do s:=s+a[i]; Writeln('Gia tri trung binh la: ',s/n:6:2); Readln; Bài 53: Viết chương trình nhập vào một ma trận vuông cấp n. a. In ra trong các phần tử trên đường chéo chính. b. In ra màn hình trong các phần tử trên đường chéo phụ. Program MATRAN_TONGDUONGCHEO; Uses Crt; Var i,j,n,sum1,sum2:integer; a:array[1..10,1..10]of integer; Begin Clrscr; Writeln('TINH TONG DUONG CHEO CHINH & PHU:'); Writeln('---------------------------------'); Write('Nhap cap ma tran vuong n = '); Readln(n); For i:=1 to n do For j:= 1 to n do Begin Write('a[',i,j,']= '); Readln(a[i,j]); Trang 30 End; Writeln(' Ma tran vua nhap la:'); For i:=1 to n do Begin End; sum1:=0; For j:= 1 to n do Write(a[i,j]:4); Writeln; End. For i:=1 to n do sum1:=sum1+a[i,i]; Writeln('Tong cac phan tu tren duong cheo chinh la: ', sum1); sum2:=0; For i:=1 to n do sum2:=sum2+a[i,n-i+1]; Writeln('Tong cac phan tu tren duong cheo phu la: ', sum2); Readln; Bài 54: Viết chương trình nhập vào một ma trận vuông cấp n. Kiểm tra xem ma trận có đối xứng hay không ? Program MA_TRAN_DOI_XUNG; Uses Crt; Type MT=array[1..20,1..20] of integer; Var a: MT; n:integer; Procedure Input(var a:MT; n:integer); Var i,j:integer; Begin For i:=1 to n do For j:=1 to n do Begin End; End; Write ('nhap a[',i,j,']='); Readln(a[i,j]); Procedure output(a:MT;n:integer); Var i,j:integer; Begin For i:=1 to n do Begin End; End; For j:=1 to n do Write(a[i,j]:4); Writeln; Procedure KTMT( a:MT;n:integer); Var i,j:integer; ok:boolean; Begin ok:=true; For i:=1 to n do For j:=i+1 to n do If(a[i,j]a[j,i]) then ok:=false; Trang 31 Begin End; Clrscr; If ok then Writeln('Ma tran la doi xung') Else Writeln('Ma tran khong doi xung'); End. Writeln('KIEM TRA MA TRAN DOI XUNG:'); Writeln('--------------------------------------------'); Write('Nhap cap ma tran n= '); Readln(n); Input(a,n); Output(a,n); KTMT(a,n); Readln; Bài 55: Viết chương trình nhập vào một ma trận vuông cấp n. a. Tính tổng của 2 ma trận. b. Tính tích của 2 ma trận. Program TONG_TICH_MA_TRAN; Uses Crt; Type MT=array[1..20,1..20] of integer; Var a,b,c,d: MT; n:integer; Procedure Input(var a:MT; n:integer); Var i,j:integer; Begin For i:=1 to n do For j:=1 to n do Begin End; End; Write ('nhap a[',i,j,']='); Readln(a[i,j]); Procedure output(a:MT;n:integer); Var i,j:integer; Begin For i:=1 to n do Begin End; End; For j:=1 to n do Write(a[i,j]:4); Writeln; Procedure Sum(a,b:MT;var c:MT; n:integer); Var i, j:integer; Begin End; For i:=1 to n do For j:=1 to n do c[i,j]:=a[i,j]+b[i,j]; Procedure Product(a,b:MT;var d:MT; n:integer); Var i,j,k:integer; Begin Trang 32 For i:=1 to n do For j:=1 to n do Begin Begin End; Clrscr; End; d[i,j]:=0; For k:=1 to n do d[i,j]:=d[i,j]+a[i,k]*b[k,j]; End. Writeln('TONG & TICH HAI MA TRAN VUONG:'); Writeln('--------------------------------------------------'); Write('Nhap cap cua hai ma tran n= '); readln(n); Writeln('NHAP MA TRAN A:'); Writeln('----------------'); Input(a,n); Writeln('NHAP MA TRAN B:'); Writeln('----------------'); Input(b,n); Writeln('MA TRAN A lA:'); Writeln('----------------'); Output(a,n); Readln; Writeln('MA TRAN B lA:'); Writeln('----------------'); Output(b,n); Readln; Writeln('MA TRAN TONG CUA A & B lA:'); Writeln('----------------'); Sum(a,b,c,n); Output(c,n); Readln; Writeln('MA TRAN TICH CUA A & B lA:'); Writeln('----------------'); Product(a,b,d,n); Output(d,n); Readln; Bài 56: Đếm số từ trong một chuỗi. Program DEM_SO_TU; Uses Crt; Var st:string; i,dem:integer; Begin Clrscr; Writeln('DEM SO TU TRONG CHUOI:'); Writeln('-------------------------------------'); Write('Nhap chuoi: ');readln(st); If st[1]=' ' then dem:=0 Else dem:=1; Trang 33 End. For i:=1 to length(st)-1 do If (st[i] = ' ')and (st[i+1] ' ') then dem:=dem+1; Writeln('So tu trong chuoi la: ',dem); Readln; Bài 57: Trộn hai mảng đã được sắp xếp theo thứ tự tăng dần lại thành một mảng mới mà vẫn đảm bảo thứ tự của nó. Program TRON_HAI_MANG; Uses Crt; Type Mang=array[1..50] of integer; Var a,b,c:Mang; n,m,l:integer; Procedure Input(var a:Mang; n:integer); Var i:integer; Begin For i:=1 to n do Begin End; End; Write('a[',i,']= '); Readln(a[i]); Procedure Output(a:Mang;n:integer); Var i:integer; Begin End; For i:=1 to n do write(a[i]:3); Writeln; Procedure Sort(Var a:Mang; n:integer); Var i,j,t:integer; Begin For i:= 1 to n-1 do For j:=i+1 to n do If a[i] > a[j] then Begin End; End; t:=a[i]; a[i]:=a[j]; a[j]:=t; Procedure Merge(a,b:Mang; Var c:Mang; n, m:integer; var l:integer); Var i,j,t:integer; Begin i:=1; j:=1 ;t:=1; While (i<=n )and(j<= m) do If a[i]<=b[j] then Begin c[t]:=a[i]; t:=t+1; i:=i+1; Trang 34 End Else Begin End; c[t]:=b[j]; t:=t+1; j:=j+1; While i<=n do Begin End; c[t]:=a[i]; t:=t+1; i:=i+1; While j<=m do Begin End; Begin l:=t-1; Clrscr; End; c[t]:=b[j]; t:=t+1; j:=j+1; Writeln('TRON HAI DAY SO DA DUOC SAP XEP'); Writeln('-----------------------------------------------------'); Writeln('Nhap du lieu cho day a:'); Write('Nhap so phan tu cua day a: ');readln(n); Input(a,n); Writeln('Nhap du lieu cho day b: '); Write('Nhap so phan tu cua day b: ');readln(m); Input(b,m); Readln; Clrscr; Writeln('Day a sau khi sap xep tang dan:'); Writeln('--------------------------------------'); sort(a,n); output(a,n); Readln; Writeln('Day b sau khi sap xep tang dan'); Writeln('--------------------------------------'); sort(b,m); output(b,m); Readln; Writeln('Tron cua day a va b la:'); Writeln('-----------------------------'); merge(a,b,c,n,m,l); output(c,l); Readln; End. Bài 58: Viết chương trình nhập vào một danh sách sinh viên có n người ( mỗi sinh viên có họ, tên, tuổi, quê quán). In danh sách sinh viên ra màn hình. Sắp xếp danh sách sinh viên theo tuổi và in danh sách sau khi sắp xếp ra màn hình. Trang 35 Program DANH_SACH_SV; Uses Crt; Type sinhvien=record ho:string[10]; ten:string[10]; tuoi: byte; qq:string[30]; end; danhsach=array [1..50] of sinhvien; Var ds: danhsach; n:integer; Procedure Input(var a:danhsach;n:integer); Var i:integer; Begin For i:= 1 to n do With a[i] do Begin End; End; Write('Ho sinh vien ',i,' : ');readln(ho); Write('Ten sinh vien ',i,' : ');readln(ten); Write('Tuoi sinh vien ',i,' : ');readln(tuoi); Write('Que quan sv ',i,' : '); readln(qq); Writeln; Procedure Output(a:danhsach;n:integer); Var i:integer; Begin Writeln('ho Ten Tuoi Que quan'); Writeln('-------------------------------------'); For i:= 1 to n do With a[i] do Begin End; End; Write(ho); Write(ten:10); Write(tuoi:6); Write(qq:10); Writeln; Procedure Sort(var a:danhsach;n:integer); Var i,j:integer;t: sinhvien; Begin For i:=1 to n-1 do For j:=i+1 to n do If a[i].tuoi>a[j].tuoi then Begin End; Begin Clrscr; End; t:=a[i]; a[i]:=a[j]; a[j]:=t; Trang 36 End. Writeln('SAP XEP DANH SACH SV THEO TUOI'); Writeln('------------------------------'); Write('So sinh vien n = ');readln(n); Input(ds,n); Output(ds,n); sort(ds,n); Readln; Clrscr; Writeln('DANH SACH DUOC SAP XEP:'); Output(ds,n); Readln; Bài 59. Viết chương trình nhập vào một file số nguyên. In file số nguyên này ra màn hình. Program FILE_SONGUYEN; Uses Crt; Var i,so,code:integer; f:file of integer; fn,s:string; Begin Clrscr; Writeln('CHUONG TRINH NHAP VA IN FILE OF INTEGER'); Writeln('----------------------------------------------------------------'); Write('Nhap ten tap tin:');readln(fn); Assign(f,fn); Rewrite(f); Writeln('CHUONG TRINH NGUNG, KHI NHAP KHONG PHAI LA SO:'); i:=1; Repeat Write('So thu ',i, ' = ');readln(s); val(s,so,code); If (code = 0) then Write(f,so); i:=i+1; Until code0; Close(f); reset(f); Readln; Clrscr; Writeln('FILE VUA NHAP LA:'); Writeln('----------------------------'); While not eof(f) do Begin End. End; Readln; read(f,i); write(i:3); Bài 60: Mở một file số nguyên đã có trên đĩa, sao chép nội dung của nó sang một tập tin mới và in nội dung của tập tin sau khi sao chép ra màn hình. Program COPY_FILE; Trang 37 Uses Crt; Var i:integer; fn,fd:string; Ch:char; f1,f2: file of integer; Begin Clrscr; Writeln('CHUONG TRINH SAO CHEP FILE'); Writeln('---------------------------------------------'); Write('Nhap file nguon: '); Readln(fn); Write('Nhap file dich: '); Readln(fd); Assign(f1,fn); Reset(f1); Assign(f2,fd); Rewrite(f2); While not eof (f1) do Begin End; Close(f1); Seek(f2,0); Read(f1,i); Write(f2,i); Writeln('Noi dung cua file dich la:'); Writeln('-----------------------------'); While not eof (f2) do Begin End. End; Close(f2); Readln; Read(f2,i); Write(i:3); Bài 61. Viết chương trình tạo ra một file F3 chứa các số nguyên bằng cách nối hai file số nguyên F1 và F2 đã có trên đĩa. In nội dung của cả 3 tập tin trên ra màn hình. Program GHEP_FILE; Uses Crt; Var f1,f2,f3: file of Integer; fn1,fn2,fd:String; i: Integer; Begin Clrscr; Write('Nhap file nguon 1: '); Readln(fn1); Write('Nhap file nguon 2: '); Readln(fn2); Write('Nhap file dich 3: '); Readln(Fd); Assign(f1,fn1); Reset(f1); Assign(f2,fn2); Reset(f2); Assign(f3,Fd); Rewrite(f3); While not eof(f1) do Begin Read(f1,i); Write(f3,i); Trang 38 End; While not eof(f2) do Begin End; Read(f2,i); Write(f3,i); Writeln('Noi dung cua file nguon 1:'); Writeln('-------------------------------'); seek(f1,0); While not eof(f1) do Begin End; Close(f1); Readln; Read(f1,i); Write(i:4); Writeln('Noi dung cua file nguon 2:'); Writeln('--------------------------------'); seek(f2,0); While not eof(f2) do Begin End; Close(f2); Readln; Read(f2,i); Write(i:4); Writeln('Noi dung cua file ghep:'); Writeln('---------------------------'); seek(f3,0); While not eof(f3) do Begin End. End; Readln; Read(f3,i); Write(i:4); Trang 39
File đính kèm:
- 61 bài tập Pascal cơ bản.doc