Nhằm giúp các bạn tiếp cận với ngôn ngữ lập trình Pascal một cách dễ dàng và vận dụng vào các ngôn ngữ lập trình khác trong tin học, mời các bạn cùng tham khảo Các bài tập Pascal cơ bản dưới đây.
Các tập Pascal bản, KINH ĐIỂN, khó, RẤT KHÓ & RẤT THÚ VỊ (Đặc biệt phần GRAPHIC phần GRAPH THEORY ) PHẦN I- CÁC BÀI TOÁN CƠ BẢN A/ LẬP TRÌNH KHƠNG DÙNG CẤU TRÚC NÀO 1-Chỉ dùng phép nhân, tính a mũ 28 với không phép nhân (khi Test, bạn nên cho a=2) {Tinh a mu 28 chi dung khong hon phep nhan} Uses crt; var a,b:longint; Begin clrscr; Write('Nhap a='); Readln(a); a:=a*a; a:=a*a; Writeln('a mu 4=',a); b:=a; {luu a mu vao b} a:=a*a*a; Writeln('a mu 12=',a); a:=a*a; Writeln('a mu 24=',a); a:=a*b; Writeln('a mu 28=',a); Readln End 2- Cho sẵn xâu ký tự sau: Sách ToanA1 250000, Sách Ly 100000, Sách Anh van 150000, Sach Mach IC 80000 Hãy in lên tổng số tiền bán loại sách thuộc xâu nhập vào HẠN CHẾ CỦA BÀI TOÁN: Không dùng phép gán sau Tongsotienbansach:=250000+100000+150000+80000 phép gán tương tự khác để tính tổng tiền bán! Uses crt; Const s='GiaiTich2 250000, Vatly1 100000, Anh2 150000, MachIC 80000'; Var so1,so2,so3,so4:longint;k1,k2,k3,k4:integer; Begin Clrscr; Writeln('Xau cho truoc:',s); val('250000',so1,k1); val('100000',so2,k2); val('150000',so3,k3); val('80000',so4,k4); Writeln('= = = = = = = = = = = = ='); Write('Tong so tien ban cac loai sach:',so1+so2+so3+so4); Readln; End 3-Không dùng cấu trúc nào, so sánh hai số đọc từ bàn phím vào (Bài kiểm tra hiểu biết hs cách dùng toán tử gán đồng thời với toán tử quan hệ dịng lệnh) Thầy Trần Thơng Quế Uses crt; Var a,b:integer; check1,check2,check3:Boolean; Begin clrscr; Write('a,b:'); Readln(a,b); check1:=a>b; check2:=a=-3.0) and (s1=-3.0) and (s2=-3.0) and (s3=-3.0) and (s4=1000 Begin Write('M'); n:=n-1000; End; If n>=900 then Begin Write('CM'); n:=n-900; End; If n>=500 then Begin Write('D'); n:=n-500; h 54 m 28/7/2017 Thầy Trần Thông Quế End; If n>=400 then Begin Write('CD'); n:=n-400; End; If n>=100 then Begin Write('C'); n:=n-100; eND; If n>=90 then Begin Write('XC'); n:=n-90; End; If n>=50 then Begin Write('L'); n:=n-50; End; If n>=40 then Begin Write('XL'); n:=n-40; End; If n>=20 then Begin Write('XX'); n:=n-20; End; If n>=10 then Begin Write('X'); n:=n-10; End; If n=9 then Begin Write('IX'); n:=n-9; End; If n>=7 then Begin Write('VII'); n:=n-7; End; If n>=5 then Begin Write('V'); h 54 m 28/7/2017 Thầy Trần Thông Quế n:=n-5; End; If n=4 then Begin Write('IV'); n:=n-4; End; If n=3 then Begin Write('III'); n:=n-3; End; If n=2 then Begin Write('II'); n:=n-2; End; If n=1 then Begin Write('I'); n:=n-1; End; Writeln; Writeln; Write(' ANOTHER TEST (Y/N)?'); Readln(ans); Until Ans In ['n','N']; End 8- (BÀI TOÁN NGƯỢC CỦA BÀI 7) Lập trình cho viết số Thập Phân tương ứng số La Mã đọc từ bàn phím vào Ví dụ vào: MMXVII, ra: 2017 (BÀI NÀY KHĨ HƠN BÀI TRÊN) Program LaMa_ThapPhan; Uses crt; Var s:string; Procedure Nhap; Begin Writeln; Write('Nhap vao so Lama:'); Readln(s); End; Function GtriThphan(s:string; i:integer):Integer; Var x:integer; Function Val(c:char):Integer; Begin Case c of 'M','m':Val:=1000; 'D','d':Val:=500; 'C','c':Val:=100; 'L','l':Val:=50; h 54 m 28/7/2017 Thầy Trần Thông Quế 'X','x':Val:=10; 'V','v':Val:=5; 'I','i':Val:=1; Else Val:=0; End; End; Begin x:=val(s[i]); If i=Length(s) Then GtriLama:=x Else If xb); If check then Write('(1+1/2016) mu 2017 lon hon (1+1/2017) mu 2016') Else Begin check:=(a=b); If check then Write('(1+1/2016) mu 2017 bang (1+1/2017) mu 2016') Else Write('(1+1/2016) mu 2017 nho hon (1+1/2017) mu 2016'); h 54 m 28/7/2017 Thầy Trần Thông Quế End; Readln; End 10- Không dùng thuật toán xử lý mảng 2-chiều, dùng biến đơn, lập trình in lên hình bảng ziczac chứa 100 số tự nhiên (Bạn có làm 10 phút không?) 0123456789 10 11 12 13 14 15 16 17 18 19 -90 91 92 93 94 95 96 97 98 99 KHÔNG THỂ CÓ CODE NÀO NGẮN HƠN CODE DƯỚI ĐÂY! Uses crt; Var i,j:Byte; Begin clrscr; For i:=0 to begin For j:=0 to Write(10*i+j:4); Writeln; end; Readln; End 11- Dùng ký tự '*', lập trình tạo tam giác cân rỗng In kết lên hình (Bạn có làm 10 phút không?) Uses Crt; Var chcao,i: Byte; Begin clrscr; Write('Nhap chieu cao tam giac:'); Readln(chcao); Writeln('*':chcao); For i:=2 to chcao-1 Writeln('*':chcao-i+1,'*':2*i-2); For i:=1 to 2*chcao-1 Write('*'); Writeln; Writeln; Readln; End 12- Nhập dãy số ngun từ bàn phím vào, lập trình tìm dãy (khơng kể thứ tự) số liên tiếp có tổng số M cho trước Uses Crt; Var a:array[1 1000] of integer; n,i,j,k,M:integer; Begin clrscr; Writeln; h 54 m 28/7/2017 Thầy Trần Thông Quế Write(#32:2,'M='); Readln(M); Write('n='); Readln(n); For i:=1 to n Begin Write('a[',i,']='); Readln(a[i]); End; Writeln('Cac bo so day thoa man yeu cau bai toan la:'); For i:=1 to n For j:=1 to n-1 For k:=j+1 to n if (ij) and (ik) and (jk) and (a[i]+a[j]+a[k]=M) then Writeln(a[i]:3,a[j]:3,a[k]:3) Readln; End 13- Lập trình tìm tất số hoàn hảo số n tùy ý đọc từ bàn phím vào Yêu cầu xuất kết theo Form sau: Chẳng hạn, Vào: 1200, Ra: Số hoàn hảo thứ nhất: Và ước là: ================= Số hoàn hảo thứ hai: 28 Và ước là: 14 ================= Uses crt; Var i,j,n,tong_uoc,dem:longint; tt:byte; Begin clrscr; Repeat Write('Nhap so nguyen duong n:'); Readln(n); dem:=0; For i:=1 to n Do Begin tong_uoc:=0; For j:=1 to i-1 Do If(i MOD j=0) Then tong_uoc:=tong_uoc+j; If tong_uoc=i Then Begin dem:=dem+1; Writeln('* So hoan hao thu ', dem,' la:',i); Write('* va cac uoc so cua no la:'); For j:=1 to i-1 Do If (i MOD J=0) Then Write(j,' '); Writeln; Writeln('= = = = = = = = ='); Writeln; h 54 m 28/7/2017 Thầy Trần Thông Quế 10 End; End; Write('More (1/0)? Come On -> Press 1; Stop -> Press 0:'); Readln(tt); Until tt=0; End *14- Kiểm tra giả thiết Goldbach – Snhirenman: “Mọi số tự nhiên CHẴN lớn biểu diễn TỔNG HAI số NGUYÊN TỐ” (Giả thiết Christian Goldbach – nhà toán học Đức – Nửa đầu kỉ XVIII, năm 1742 thư gửi Euler, Goldbach viết: “Mọi số lẻ viết dạng tổng ba số nguyên tố “ Sau mệnh đề gọi tốn Goldbach (hay giả thiết Goldbach) Hơn 250 năm toán Goldbach chưa chứng minh, năm 1930, nhà toán học Nga L G Snhirenman chứng minh trường hợp nhỏ giả thiết: “Mọi số chẵn n ≥ biểu diễn thành tổng số nguyên tố”) Uses crt; Var so1, so2, so3, so4: integer; kt1, kt2: boolean; {kt=kiem tra} hoi:char; Begin clrscr; Repeat Write(‘Nhap so chan so1>2:’); Readln(so1); so2:=2; Repeat so3:=so1-so2; so4:=2; While (so4sqrt(so2) then kt1:=true Else kt1:=false; so4:=2; While (so4sqrt(so3) then kt2:=true Else kt2:=false; Inc(so2); Until (so3=3)-Các số nguyên tố biểu diễn dạng 2n – (n-số tự nhiên) gọi số Mersenneuses Crt; Var so, n, i, ntmin:longint; h 54 m 28/7/2017 Thầy Trần Thông Quế h 54 m 200 28/7/2017 Thầy Trần Thông Quế h 54 m 201 28/7/2017 Thầy Trần Thông Quế h 54 m 202 28/7/2017 Thầy Trần Thông Quế h 54 m 203 28/7/2017 Thầy Trần Thông Quế h 54 m 204 28/7/2017 Thầy Trần Thông Quế h 54 m 205 28/7/2017 Thầy Trần Thông Quế h 54 m 206 28/7/2017 Thầy Trần Thông Quế h 54 m 207 28/7/2017 Thầy Trần Thông Quế h 54 m 208 28/7/2017 Thầy Trần Thông Quế h 54 m 209 28/7/2017 Thầy Trần Thông Quế h 54 m 210 28/7/2017 Thầy Trần Thông Quế h 54 m 211 28/7/2017 Thầy Trần Thông Quế h 54 m 212 28/7/2017 Thầy Trần Thông Quế h 54 m 213 28/7/2017 Thầy Trần Thông Quế h 54 m 214 28/7/2017 ... 1985) Tìm tất cách biểu diễn số tự nhiên tổng số tự nhiên khác Ví dụ Vào: Ra : Cách thứ 1: 5=4+1 Cách thứ 2: 5=2+3 Cách thứ 3: 5=3+1+1 Cách thứ 4: 5=2+2+1 Cách thứ 5: 5=2+1+1+1 Cách thứ 6: 5=1+1+1+1+1+1... Giao) hai tập hợp cho trước Hiện kết lên BÀI NÀY NGẮN, NHƯNG KHÁ HAY VÌ NĨ CHO BẠN NHIỀU HIỂU BIẾT: CÁCH KHAI BÁO Ở ĐẦU PROGRAM; Ở MODUL: CÁCH THAM CHIẾU KHÁC NHAU (TẠI SAO?); CÁCH DÙNG CÁC LỆNH... (TÊN KHÁC: MA TRẬN) (CHỦ ĐỀ NÀY KHÁ NHIỀU BÀI TẬP THÚ VỊ HOẶC ÍT QUEN THUỘC VỚI CÁC BẠN) Khuyến cáo: Các bạn học sinh ý điều sau: CÁI KHÓ CỐT LÕI CỦA CÁC BÀI TOÁN TỪ ĐẾN 11 bạn học sinh hay sinh