intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Các dạng bài tập Pascal cơ bản

Chia sẻ: Cam Van | Ngày: | Loại File: DOC | Số trang:223

128
lượt xem
29
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đây là tuyển tập ngắn gọn các bài toán giải bằng lập trình với ngôn ngữ Pascal, tài liệu này chứa nhiều bài toán và nhiều bản code được trực quan hóa bằng lập trình đồ họa rất trực quan. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Các dạng bài tập Pascal cơ bản

  1. Các bài tập Pascal  cơ bản, KINH ĐIỂN, khó, RẤT KHÓ & RẤT THÚ VỊ (Đặc biệt ở phần GRAPHIC và 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ỉ được dùng phép nhân, tính a mũ 28 với không hơn 6 phép nhân (khi Test, bạn nên cho a=2) {Tinh a mu 28 chi dung khong hon 6 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 4 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 màn tổng số tiền bán các loại sách thuộc xâu nhập vào trên đây. HẠN CHẾ CỦA BÀI TOÁN:  Không được dùng phép gán sau Tongsotienbansach:=250000+100000+150000+80000 hoặc các 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.
  2. Thầy Trần Thông Quế 2 3­Không dùng bất kỳ cấu trúc nào, hãy  so sánh hai số đọc từ bàn phím vào. (Bài này kiểm tra sự hiểu biết của hs về cách dùng toán tử gán đồng thời với toán tử quan hệ trong một  dòng lệnh). Uses crt; Var a,b:integer; check1,check2,check3:Boolean; Begin clrscr;   Write('a,b:'); Readln(a,b);   check1:=a>b; check2:=a
  3. Thầy Trần Thông Quế 3    Writeln;    Writeln('Thang ',thang:2,'/',nam:4,' co:',songay,' ngay');    Writeln;    Writeln('Bam phim  de ket thuc');    Readln End. 5­ Đọc từ bàn phím vào 4 số thực mà trị của chúng thuộc khoảng [­3,0, 3,0]. Tính trị trung bình cộng của  chúng. Test   Vào     ­3    2    1.85    ­1.05;  Ra: Tong=­0.20; Trung binh cong=­0.4            Uses crt;         Var  s1,s2,s3,s4,tbc,t:Real; d:byte;         Begin  clrscr;               Write('s1,s2,s3,s4=');readln(s1,s2,s3,s4);               tbc:=0;t:=0;d:=0;                   If (s1>=­3.0) and (s1=­3.0) and (s2=­3.0) and (s3=­3.0) and (s4
  4. Thầy Trần Thông Quế 4 Var Year:integer; Begin clrscr;      Write('Cho biet nam duong lich:'); Readln(Year);      Write('Nam ',year,' la nam am lich:');      Case (Year Mod 10) of           0:Write('Canh ');           1:Write('Tan ');           2:Write('Nham ');           3:Write('Quy ');           4:Write('Giap ');           5:Write('At ');           6:Write('Binh ');           7:Write('Dinh ');           8:Write('Mau ');           9:Write('Ki ');      End;      Case (Year Mod 12) of           0:Write('Than');           1:Write('Dau');           2:Write('Tuat');           3:Write('Hoi');           4:Write('Ty');           5:Write('Suu');           6:Write('Dan');           7:Write('Mao');           8:Write('Thin');           9:Write('Ti');           10:Write('Ngo');           11:Write('Mui');      End;    Readln; End. 7­ Lập trình cho biết số La Mã tương ứng của số thập phân bất kỳ đọc từ bàn phím vào.  Ví dụ vào: 2017; ra:MMXVII. Program ThapPhan_LaMa;     uses crt;     var n:integer; ans:char;     Begin clrscr;     Repeat      Write('Nhap so Thap phan can chuyen:'); Readln(n);         Write(n,' ­­­> Viet theo chu so La ma la:');          While n>=1000 do             Begin              Write('M'); 8 h 54 m                                                                                                                                         28/7/2017
  5. Thầy Trần Thông Quế 5                 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;             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; 8 h 54 m                                                                                                                                         28/7/2017
  6. Thầy Trần Thông Quế 6            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');                  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 của 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; 8 h 54 m                                                                                                                                         28/7/2017
  7. Thầy Trần Thông Quế 7 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;          '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 x
  8. Thầy Trần Thông Quế 8 Uses crt; Var a,b:Real; i:integer; check:Boolean; Begin    clrscr;     a:=1+1/2016; b:=1;     For i:=1 to 2016 Do         Begin             a:=a*(1+1/2016);             b:=b*(1+1/2017);         End;         check:=(a>b);     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');         End;      Readln; End. 10­ Không dùng thuật toán xử lý mảng 2­chiều, chỉ dùng các biến đơn, lập trình in lên màn hình bảng  ziczac chứa 100 số tự nhiên đầu tiên (Bạn có làm được bài này trong 10 phút không?) 0 1 2 3 4 5 6 7 8 9  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 9 do       begin          For j:=0 to 9 do             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 quả lên màn hình. (Bạn có làm được bài này  trong 10 phút không?) Uses   Crt; Var chcao,i: Byte; Begin clrscr; 8 h 54 m                                                                                                                                         28/7/2017
  9. Thầy Trần Thông Quế 9    Write('Nhap chieu cao tam giac:');  Readln(chcao);    Writeln('*':chcao);    For i:=2 to chcao­1 do      Writeln('*':chcao­i+1,'*':2*i­2);      For i:=1 to 2*chcao­1 do         Write('*');         Writeln;         Writeln;     Readln; End. 12­ Nhập một dãy số nguyên từ bàn phím vào, lập trình tìm trong dãy ấy bộ (không kể thứ tự) 3 số liên  tiếp có tổng bằng số M cho trước. Uses Crt; Var a:array[1..1000] of integer;     n,i,j,k,M:integer; Begin clrscr;     Writeln;     Write(#32:2,'M='); Readln(M);     Write('n='); Readln(n);     For i:=1 to n do         Begin             Write('a[',i,']='); Readln(a[i]);         End;     Writeln('Cac bo so trong day thoa man yeu cau bai toan la:');     For i:=1 to n do        For j:=1 to n­1 do            For k:=j+1 to n do                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 cả các số hoàn hảo của số n tùy ý đọc từ bàn phím vào. Yêu cầu xuất kết quả theo  Form sau: Chẳng hạn, Vào: 1200,  Ra: Số hoàn hảo thứ nhất: 6 Và các ước của nó là: 1 2 3 = = = = = = = = = = = = = = = = =  Số hoàn hảo thứ hai: 28 Và các ước của nó là: 1 2 4 7 14 = = = = = = = = = = = = = = = = =  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 8 h 54 m                                                                                                                                         28/7/2017
  10. Thầy Trần Thông Quế 10 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;                   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 hơn 2 đều có thể biểu  diễn bằng TỔNG của HAI  số NGUYÊN TỐ”. (Giả  thiết Christian Goldbach – nhà toán học Đức – Nửa đầu thế kỉ XVIII, năm 1742 trong thư gửi  Euler, Goldbach viết: “Mọi số lẻ bất kỳ đều viết được dưới dạng tổng của ba số nguyên  tố “. Sau này mệnh đề đó được gọi là bài toán Goldbach (hay giả thiết Goldbach) Hơn 250 năm bài toán Goldbach vẫn chưa được chứng minh, và cho đến năm 1930, nhà toán học Nga L.  G. Snhirenman mới chỉ chứng minh trường hợp nhỏ của giả thiết: “Mọi số chẵn n ≥ 4 đều có thể biểu  diễn thành tổng của 2 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 8 h 54 m                                                                                                                                         28/7/2017
  11. Thầy Trần Thông Quế 11        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 được dưới dạng 2n – 1 (n­số tự nhiên) gọi là số Mersenne­ uses Crt; Var so, n, i, ntmin:longint;         check, stop: Boolean; tt:Byte; Begin clrscr;     Repeat           Write(‘Nhap n>=3:’); Readln(n);           stop:=false;           ntmin:=2;           Writeln(#32:20,’CAC SO MERSENNE:’);           While Not stop Do              Begin                i:=2;                While (isqrt(ntmin) then check:=true Else check:=false;                   If check then                       Begin                          so:=1;                          For i:=1 to ntmin do so:=2*so;                            Dec(so,1);                            i:=2;                            While (isqrt(so) then check:=true                            Else check:=false;                            stop:=so>n; 8 h 54 m                                                                                                                                         28/7/2017
  12. Thầy Trần Thông Quế 12                             If check and Not stop  Then                               Writeln(so);                        End;                        Inc(ntmin);                    End;             Writeln;        Write(‘Another Test (1/0)?, Come on ­) press 1; Stop ­> press 0:’);           Readln(tt);       Until tt=0; End. 16­ Không dùng thuật toán đệ quy, lập trình tìm và in lên màn dãy FIBONACI với độ dài cho trước n. Program Day_Fibo; Uses crt; Var i,n,f1,f2,fi,fi_1,fi_2:Integer; Begin  clrscr;      Write(‘Nhap do dai day Fibonaci n=’); Readln(n);      Writeln(‘  DAY FIBONACI UNG VOI DO DAI ‘,N,’ LA:’);      Writeln;      i:=1; f1:=1;f2:=1;            fi:=f1+f2;         Write(f1:3, f2:3);         For i:=3 to n Do              Begin                   Write(fi:5);                   f1:=f2;                   f2:=fi;                   fi:=f1+f2;              End;   Readln; End. 17­ Lập trình (PHI ĐỆ QUY) tìm ước số chung lớn nhất của N số tùy ý đọc từ bàn phím vào.  Test. Vào: 72   40   24   48   56,  Ra:  8 Uses Crt; Var a:Array[1..100] of integer;     n,i,tt: Byte; d: Integer; Begin Clrscr;  {Có lẽ bạn nên dùng PHÁT SINH DỮ LIỆU NGẪU NHIÊN TỰ ĐỘNG, sẽ nhanh hơn!}   Repeat     {Randomize;}     Write(‘ Nhap so luong cac so hang n:’); Readln(n);     For i:=1 to n Do       Begin          Write(‘a[‘,i,’]=’); Readln(a[i]);       End; {a[i]:=Random(20);} 8 h 54 m                                                                                                                                         28/7/2017
  13. Thầy Trần Thông Quế 13     Writeln(‘Day so vua nhap:’);        For i:= 1 to n Do  Write(a[i]:3);     Writeln;     Writeln(‘= = = = = = = = = = = = = = =’);     For i:=1 to n­1 do        Repeat            d:=a[i];            a[i]:=a[i+1] MOD a[i];            a[i+1]:=d;        Until a[i]=0;     Write(‘USC max cua ‘,n,’ so vua nhap la:’,a[n]); Writeln;     Write(‘More(1/0)? Continue ­ > 1, Stop ­> 0:’); Readln(tt);   Until tt=0; End. 18­ Tìm nghiệm nguyên dương của phương trình sau:                         a) 4x+3y­9z=n, với 0  ≤ x, y, z ≤ 50; n­ đọc từ bàn phím vào.        Không áp đặt trước miền giá trị của x, y, z hãy tìm nghiệm nguyên dương của các phương trình sau: b) x + y + z = n ; n­ đọc từ bàn phím vào. c) x2  +  y2  =  n; n­ đọc từ bàn phím vào.  5 Bài a) Uses Crt; Var x,y,z,n,d:integer; Begin   clrscr;     Write(‘Nhap n:’); Readln(n);     d:=0;     For x:=0 to 50 do       For y:=0 to 50 do          For z:=0 to 50 do             If ((4*x+3*y­9*z)=n) then             Begin                Writeln(x:4,y:4,z:4);                Inc(d);                If (d MOD 20)=0 then                Begin                  Write(‘Go ENTER ­> xem tiep.’);                  Readln;                End;             End; End.  Các bài còn lại làm tưong tự. 8 h 54 m                                                                                                                                         28/7/2017
  14. Thầy Trần Thông Quế 14 19­ Lập trình tạo bảng ba cột   GÓC        SIN           COS, tính giá trị hàm Sin, Cos ứng với góc ở cột cận trái. (Vì có từ góc 0o đến 360o nên yêu cầu mỗi lần chỉ hiện lên màn 20 giá trị kết quả, để  XEM TIẾP: gõ phím ENTER.)  Uses Crt; Var goc:word; gocradian: Real; Begin  clrscr;     Writeln(#32:9,’BANG GIA TRI  GOC,     SIN,     COS:’);     Writeln(‘ Nho an ENTER de xem tiep.’);     For goc:=1 To 360 Do        Begin            gocradian:=goc*pi/180;            Writeln(#32:24,goc,#32:5,sin(gocradian):0:4,#32:3,cos(gocradian):0:4);            If (goc MOD 20) = 0 then Readln;        End; End. B.2.2) CÁC LỆNH LẶP KHÔNG XÁC ĐỊNH (WHILE. . .DO; REPEAT…UNTIL) Lập trình giải các bài toán sau: 20­ Tính gần đúng với sai số 10^­6 (1/1000000): số Pi;  sinx;  cosx;  e^x. a) Tính gần đúng số PI. Program tinhgandung_So_Pi; Uses Crt; Const  ss=1E­6 Var sp: Real; n, dau: integer; Begin clrscr;      n:=0;      sp:=0;     While (1/(2*n+1))>=ss  do           Begin                 If  n MOD 2 = 0 then dau:=1                 Else dau:=­1;                 sp:=sp+dau*(1/(2*n+1));                 n:=n+1;     End;      Write(‘Gia tri gan dung cua so Pi=’,4*sp:8:4);    Readln; End. 8 h 54 m                                                                                                                                         28/7/2017
  15. Thầy Trần Thông Quế 15 b) TÍNH GẦN ĐÚNG SINX BỞI  CÔNG THỨC TRUY HỒI RÚT GỌN CÒN 1 SỐ HẠNG                                                                                              x3 sin x   n *(n + 1) Lời nhắc không thừa: + Đối số x trong các hàm sin, cos ở đây cần hiểu ngầm có đơn vị đo là Radian (Trong mọi Program    để nó như một hư số). + và có LỜI NHẮC QUAN TRỌNG HƠN: Hãy test program với bộ số sau:             x=0  hoặc x=3.1416 (=  ) sinx=0; x=1.5708 (= /2)  sinx=1; x=4.7124 (=3 /2) sinx=­1 và trong đầu luôn có hình ảnh Vòng Tròn Đơn Vị:   Uses Crt; Const ss=1E­6; Var x,S,T: Real; n: Integer;  hd:char; Begin    Clrscr;   Repeat     Write(‘Nhap vao cung x (Radian)cua ham Sin:’);     Readln(x);     S:=x; T:=x; n:=0;     While ABS(T)>=ss Do        Begin           n:=n+2;           T:=­T*SQR(x)/(n*(n+1));           S:=S+T;        End;     Write(‘Sin(x)=’,S:0:6);     Writeln;     Write(‘More (y/n)? Come on ­> Press y; Stop ­> Press n:’);     Readln(hd);   Until hd In [‘n’,’N’]; End.  HAI HÀM CÒN LẠI LÀM TƯƠNG TỰ! ĐỂ Ý:    x2 cos x 1 − ( n *(n + 1)                                                                     x ex 1+ n 8 h 54 m                                                                                                                                         28/7/2017
  16. Thầy Trần Thông Quế 16 21­ Phân tích một số tự nhiên ra các  thừa số nguyên tố. Program Thua_so_nguyen_to;  {Repeat và While lồng nhau}         Uses crt;         Var n,i:longint;         Begin clrscr;               Write(‘n=’);Readln(n);               Writeln(‘Cac thua so nguyen to cua ‘,n,’ la:’);               Repeat               i:=2;                   While (n Mod i0) AND (i
  17. Thầy Trần Thông Quế 17          tong:=tong+n MOD 10;          n:=n DIV 10;       End;    Writeln(‘Tong cac chu so cua so vua nhap:’,tong);    Writeln(‘So cac chu so cua so vua nhap=’,dem);    Readln; End. 24­ Thực hiện phép chia bằng phép trừ. Program Chia_la_tru; Uses crt; Var Sobichia, Sochia,Thuong, du:Longint; hoi:char; Begin    clrscr; REPEAT    Write(‘Nhap Sobichia:’) ; Readln(Sobichia);    Write(‘Nhap Sochia
  18. Thầy Trần Thông Quế 18 End. 26­ Tìm ước số chung lớn nhất của hai số nguyên dương cho trước nhờ thuật toán Euclide: 26.1) Dùng phép trừ 26.2) Dùng phép chia ĐÁP: 26.1)  Uses crt; Var a,b,d:integer; Begin clrscr;    Write(‘Nhap 2 so nguyen duong:’); Readln(a,b);    While (a­b0) Do            Begin                   if a>b then a:=a­b                   else b:=b­a;            End;    Write(‘Uscmax=’,b);  Readln; End. 26.2) Uses crt; Var a,b,du:integer; Begin clrscr;    Write(‘Nhap 2 so nguyen duong:’); Readln(a,b);    While (b0) Do    Begin           du:=a Mod b;           a:=b;           b:=du;    End;    Write(‘Uoc so chg max=’,a);    Readln; End. *27­ Đọc từ bàn phím vào một số nguyên dương N (N>1). Tìm chữ số lớn nhất trong số vừa nhập và vị  trí của nó trong số vừa nhập. Hiện kết quả lên màn.   Program Tim_Chuso_Max; uses crt; Var so,i,max,temp,vitri:longint; BEGIN Clrscr;       write(‘Nhap so :’); readln(so);       writeln(‘Trong so ‘,so,’ vua nhap ‘);       max:=0; 8 h 54 m                                                                                                                                         28/7/2017
  19. Thầy Trần Thông Quế 19       i:=1;       while (so0) do            Begin                   temp:=so mod 10;                   if temp>max then                        Begin                            max:=temp;                            vitri:=i;                        End;                     i:=i+1;                     so := so div 10;           End; Write(‘ thi chu so ‘, max,’ la chu so lon nhat va nam o vi tri thu ‘,vitri);        Write(‘ ke tu ben phai sang.’);       readln; END. *28­ Cho trước số tự nhiên N (ví dụ 100). Tìm & hiện lên màn tất cả các cặp số nguyên tố sinh đôi mà  giá trị của chúng không quá N. ( Hai số nguyên tố sinh đôi là hai số hơn kém nhau 2 đơn vị) Uses crt; Var so1, so2, so3, so4, n, dem: longint;      kt1, kt2: boolean; {kt=kiem tra} Begin clrscr;   Write(‘Nhap so tu nhien n:’); Readln(n);   Writeln(‘Cac cap so sinh doi 
  20. Thầy Trần Thông Quế 20 *29­ Trên bàn có 26 viên sỏi. Người  chơi với máy tính. Mỗi lần, mỗi đối thủ chỉ bốc không hơn 4 viên. Đối thủ nào phải bốc viên sỏi cuối  cùng là thua. Tìm một chiến thuật chơi để người  đi trước nhưng luôn luôn thua máy tính. PROGRAM BOCSOI; uses crt;   VAR     TONG_SOI,I,SOI_CON,N:INTEGER;ch:char;   BEGIN     REPEAT        clrscr;     I:=1;     TONG_SOI:=26;       REPEAT       WRITELN(‘LAN BOC THU ‘,I,’:’);          WRITE(‘     BAN BOC MAY VIEN (khong qua 4 vien): ‘);READLN(N);             WRITELN(‘    MAY BOC: ‘,5­N);{WRITELN(5­N);}             WRITELN(‘    SO SOI CON LAI:= ‘,TONG_SOI­(5*i));   {WRITELN(TONG_SOI­(5*i));}             SOI_CON:=TONG_SOI­(5*i);           I:=I+1;       UNTIL SOI_CON =1;         WRITELN(‘BAN PHAI BOC VIEN CUOI CUNG. BAN THUA ROI!’);         writeln;      write(‘     Tiep khong (c/k):’);readln(ch);    UNTIL (ch=’k’) OR (ch=’K’);   END. *30­ Tìm và in lên màn tất cả các cặp số thân thiện mà giá trị của chúng không quá 10000. (Hai số được  gọi là thân thiện nếu TỔNG CÁC ƯỚC CỦA SỐ LỚN BẰNG SỐ NHỎ: ví dụ 48 và 75 là cặp số thân  thiện vì các uớc của 75 là: 3   5   15   25 và tổng các ước này bằng 48!) Uses Crt; Var n1,n2,t,k: Integer; tt:Byte; Begin Clrscr;    Repeat       Writeln(#32:20,’Cac cap so Than Thien 
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2