A./ Nội dung các bài học cần xem:
Bài 7: Câu lệnh lặp
Bài TH5: Sử dụng lệnh lặp For do
Bài 8: Lặp với số lần lặp chưa biết trước
Bài TH6: Sử dụng lệnh lặp While do
Bài 9: Làm việc với dãy số
Bài TH7: Xử lý dãy số trong chương trình
Xem lại nội dung HK1:
+ Các kiểu dữ liệu
+ Cách khai báo biến, khởi tạo và sử dụng biến, phép gán giá trị cho biến
+ Cấu trúc chung của một chương trình
+ Các phép toán: +, -, *, / , <>, >=, <=,>, <, mod,="" div,="" and,="" or="" và="" biểu="" thức="" điều="">,>=,>
+ Câu lệnh điều kiện if then else .
CHƯƠNG TRÌNH ÔN TẬP HỌC KỲ II TIN HỌC 8 GV soạn: Phạm Tấn Phát Ngày soạn: 10/04/2009, cập nhật lại lúc 19/04/2010 A./ Nội dung các bài học cần xem: Bài 7: Câu lệnh lặp Bài TH5: Sử dụng lệnh lặp For do Bài 8: Lặp với số lần lặp chưa biết trước Bài TH6: Sử dụng lệnh lặp While do Bài 9: Làm việc với dãy số Bài TH7: Xử lý dãy số trong chương trình Xem lại nội dung HK1: + Các kiểu dữ liệu + Cách khai báo biến, khởi tạo và sử dụng biến, phép gán giá trị cho biến + Cấu trúc chung của một chương trình + Các phép toán: +, -, *, / , , >=, , <, mod, div, and, or và biểu thức điều kiện + Câu lệnh điều kiện if then else . B./ Một số gợi ý ôn tập (Đây không phải là đề thi học kỳ II) Vấn đề 1: Các kiểu dữ liệu và khai báo biến: Kiểu Phạm vi Cách khai báo Phép gán Byte (Số nguyên) 0à255 var diem:Byte; var thang:Byte; readln(diem); diem:=5; readln(thang); thang:=12; Integer (Số nguyên) -215 à 215-1 (-32768à32767) var a:integer; var so_luong:integer; var i:integer; var tong:integer; readln(a); a:=28; readln(so_luong); so_luong:= 4096; i:=1;i:=i+1; tong:=0; tong:=tong + i; Real (Số thực) -2,9x10-39 à1,7x1038 var diemtb:real; var dvan,dtoan,dly:real; readln(dvan); readln(dtoan); readln(dly); diemtb:=(dvan*2+dtoan*2+dly)/5; Char (Một ký tự) ‘A’à’Z’ Var kytu:char; readln(kytu); kytu:= ‘Y’; String (Xâu ký tự) ‘abc156’ ‘Hoang Van Thu’ var hoten:string; readln(hoten); Hoten:=’Hoang Van Thu’; array (Dãy/mảng) Byte, Integer, Real,String, var a:array[1..10]of byte; var diem:array[1..50] of real; For i:=1 to 10 to readln(a[i]); For i:=1 to 50 do readln(diem[i]); A[5]:=10; Max:=A[i]; Max:=diem[i]; Min:=diem[i]; Lưu ý: + Biến dùng để lưu giữ giá trị trong khi thực hiện chương trình, kết thúc chương trình biến đó sẽ bị xóa đi và giải phóng vùng nhớ được cấp phát. + Trong quá trình thực hiện chương trình ta muốn thay đổi giá trị của biến bằng câu lệnh gán, còn có câu lệnh read(dstenbien) hoặc readln(dstenbien) hai câu lệnh này tương tác giữa người dùng và máy và kết thúc việc nhập giá trị cho biến ta phải nhấn phím Enter. + Câu lệnh Writeln(‘Cau thong bao ra man hinh’,tenbien) à in ra màn hình câu thông báo và giá trị của tenbien sau khi tính toán xong. Vấn đề 2: Cấu trúc chung của một chương trình Program Ten_chuong_trinh; {khai bao ten chuong trinh} Uses crt; {khai bao thu vien lien quan den lenh xoa man hinh clrscr} Phần thân chương trình + Nơi nhập giá trị cho biến + Xử lý và tính toán + In kết quả Var . {khai bao bien} Begin Clrscr; {lenh xoa man hinh} Readln {lenh dung man hinh de xem ket qua cho nhan Enter} End. Lưu ý: Trong chương trình có thể sử dụng nhiều câu lệnh begin end; để thi hành nhiều lệnh lồng nhau, thường sử dụng trong các câu lệnh if then beginend else begin end; Hoặc for do begin . end; Hoặc while do begin end; Vấn đề 3: Biểu thức điều kiện + Biểu thức điều kiện là một biểu thức so sánh và cho kết quả là đúng hoặc sai tương ứng như một mệnh đề trong toán học. + VD: Var a,b:integer;Begin If a > b then a:=a-b else b:=b-a; end. Var a,b:integer; Begin If a mod b =0 then write(‘a chia cho b du la 0’) else write(‘a chia cho b du khac 0’); end. Var a,b:integer; Begin If a div b =5 then write(‘a chia cho b duoc thung la 5’) else write(‘a chia cho b duoc thuong khac5’); end. Var a,b,c:real; Begin If (a*a+b*b=c*c) or (b*b+c*c=a*a) or (c*c+a*a=b*b) then write(‘Bo ba so (’,a,’,’,b’,’,c,’) la bo ba Pitago.’) else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la bo ba Pitago.’) end. Var a,b,c:real; Begin If (a+b>c) and (b+c>a) and (c+a>b) then write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac.’) else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac.’) end. Vấn đề 4: Câu lệnh điều kiện if then else .. + Cú pháp: If dieu_kien then cau_lenh; If dieu_kien then cau_lenh_dung else cau_lenh_sai; + Ví dụ: 1./ VD1: Viết chương trình nhập vào một số và thông báo lên màn hình số đó là chẵn hay lẽ? Program VD1; Uses crt; Var a:integer; Begin Clrscr; Writeln(‘Nhap mot so nguyen:’);Readln(a); If (a mod 2=0) then Writeln(‘So ‘, a,’ la so chan!’) Else Writeln(‘So ‘, a,’ la so le!’); Readln End. 2./ VD2: Viết chương trình nhập vào ba số (a,b,c) và kiểm tra ba số này có là độ dài ba cạnh tam giác hay không ? Program VD2; Uses crt; Var a,b,c:Real; Begin Clrscr; Writeln(‘Nhap so a:’);Readln(a); Writeln(‘Nhap so b:’);Readln(b); Writeln(‘Nhap so c:’);Readln(c); If (a>=0) and (b>=0) and (c>=0) then If (a+b>c) and (b+c>a) and (c+a>b) then write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac.’) else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac.’) else Writeln(‘Cac so tren muon la do dai ba canh tam giac phai la so duong’); Readln End. 3./ VD3: Viết chương trình nhập vào ba số, kiểm tra ba số đó có là độ dài ba cạnh của một tam giác vuông hay không ? Program VD3; Uses crt; Var a,b,c:Real; Begin Clrscr; Writeln(‘Nhap so a:’);Readln(a); Writeln(‘Nhap so b:’);Readln(b); Writeln(‘Nhap so c:’);Readln(c); If (a>=0) and (b>=0) and (c>=0) then If (a*a+b*b=c*c) and (b*b+c*c=a*a) and (c*c+a*a=b*b) then write(‘Bo ba so (’,a,’,’,b’,’,c,’) la ba canh cua mot tam giac vuong.’) else write(‘Bo ba so (’,a,’,’,b’,’,c,’) khong la ba canh cua mot tam giac vuong.’) else Writeln(‘Cac so tren muon la do dai ba canh tam giac phai la so duong’); Readln End. Vấn đề 5: Câu lệnh lặp For do (trọng tâm của chương trình) - Cú pháp: For := to do ; Trong đó: + Biến đếm, giá trị đầu, giá trị cuối là các số nguyên + Giá trị đầu nhỏ hơn hoặc bằng giá trị cuối + Câu lệnh có thể là câu lệnh đơn giản (một câu lệnh) hoặc câu lệnh ghép (từ hai câu lệnh ..) + Mỗi lần lặp lại câu lệnh biến đếm sẽ tăng lên một đơn vị, cho đến khi vừa lớn hơn giá trị cuối thì dừng, số lần lặp lại bằng giá trị cuối-giá trị đầu +1 - Một số ví dụ minh họa: + VD1: Hãy cho biết các câu lệnh sau đúng hay sai, nếu sai sửa lại cho đúng ? a./ Var i: real; Begin For i:=1 to 10 do write(i,’ ‘); readln end. Trả lời: b./Var i: byte; Begin For i:=1 to 257 do write(i,’ ‘); readln end. Trả lời:+ c./ Var i: integer; Begin For i:=1 to 32767 do write(i,’ ‘); readln end. Trả lời: d./ Var i: integer; Begin For i:=1 to 10.5 do write(i,’ ‘); readln end. Trả lời: e./ Var i: integer; Begin For i:=1 to 10 do begin write(i,’ ‘); S:=S+i; readln end. Trả lời: f./ Var k: integer; Begin For k:=10 to 10 do write(i,’ ‘); readln end. Trả lời: g./ Var k: integer; Begin For k:=10 to 9 do write(i,’ ‘); readln end. Trả lời: + VD2: Hãy tính số lần lặp của câu lệnh sau ? a./ S:=0; For i:=1 to 15 do S:=S+i; Trả lời:15-1+1=15. b./ S:=0; For j:=5 to 11 do if (j mod 2=0) then S:=S+j; Trả lời:11-5+1=7. c./ S:=0; For k:=31 to 49 do if (k mod 20) then S:=S+k; Trả lời:49-31+1=19. d./ S:=0; For m:=9 to 11 do if (m>=10) then S:=S+m; Trả lời:11-9=3. e./ S:=0; For n:=9 to1 do if (n>=4) then S:=S+n; Trả lời:0. f./ S:=0; For n:=9 to9 do if (n>=5) then S:=S+n; Trả lời:9-9+1=1. + VD3: Chạy từng bước đoán kết quả và trả lời giá trị các biến được yêu cầu ? a./ Var k,s: integer; Begin s:=0; For k:=13 to 19 do s:=s+k; readln end. Trả lời: S=112..;k=19 b./ Var i: integer; Begin s:=0; For i:=2 to 7 do s:=s*i; readln end. Trả lời: S=0..;i=7 c./ Var i: integer; Begin s:=1; For i:=2 to 5 do s:=s*i; readln end. Trả lời: S=120..;i=5 d./ Var i: integer; Begin s:=0; For i:=1 to 5 do s:=s+i*i; readln end. Trả lời: S=55..;i=5 e./ Var i: integer; Begin s:=0; For i:=4 to 5 do s:=s+1/i; readln end. Trả lời: S=0,45..;i=5 f./ Var i: integer; Begin s:=0; For i:=5 to 8do s:=s+1/i*(i+2); readln end. Trả lời: S=1637/420..;i=8 + VD4: Hãy cho biết đoạn chương trình sau làm nhiệm vụ gì ? a./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 2=0) then s:=s+i*i; readln end. Trả lời: S=..;i=Kết luận: b./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 20) then s:=s+i*i; readln end. Trả lời: S=..;i=Kết luận: c./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 2=0) then s:=s+i; readln end. Trả lời: S=..;i=Kết luận: d./ Var i: integer; Begin s:=0; For i:=1 to 5 do if (i mod 20) then s:=s+i; readln end. Trả lời: S=..;i=Kết luận: + VD5: Viết chương trình dùng câu lệnh For do và if then. a./ Hãy viết đoạn chương trình xử lý tìm ra các số nguyên từ 1 đến 100 mà số đó phải thỏa mãn hai điều kiện là vừa chia hết cho 5 và vừa chia hết cho 7 ? b./ Hãy viết đoạn chương trình tìm xem có bao nhiêu bộ số (a,b,c) là bộ 3 Pitago từ 1 đến 100 với a,b,c nguyên dương và a<=b<=c Vấn đề 6: Câu lệnh lặp While do - Cú pháp: While do ; Trong đó: + Điều kiện là một biểu thức so sánh, tương tự điều kiện câu lệnh if then . + Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép begin.end; + Trong khi điều kiện còn đúng thì thực hiện câu lệnh, còn điều kiện sai thì thoát khỏi câu lệnh lặp while và thực hiện câu lệnh tiếp theo sau câu lệnh while. - Một số ví dụ minh họa: + VD1: Tính tổng các phần tử từ 1 đến 100 Program Tong; Uses crt; Var S,i:integer; Begin Clrscr; S:=0; i:=1; While i<=100 do Begin S:=S+i; i:=i+1; end; Readln End. + VD2: Tính tổng các phần tử chẵn từ 1 đến 100 Program Tong_chan; Uses crt; Var Sc ,i:integer; Begin Clrscr; Sc:=0; i:=1; While i<=100 do Begin If (i mod 2 =0) then Sc:=Sc+i; i:=i+1; end; Writeln(‘Tong cac phan tu chan tu 1 den 100 la: ‘,Sc); Readln End. + VD3: Tính tổng các phần tử lẻ từ 1 đến 100 Program Tong_le; Uses crt; Var Sle ,i:integer; Begin Clrscr; Sle:=0; i:=1; While i<=100 do Begin If (i mod 2 0) then Sle:=Sle+i; i:=i+1; end; Writeln(‘Tong cac phan tu le tu 1 den 100 la: ‘,Sle); Readln End. + VD4: In ra các ước của một số nguyên nhập từ bàn phím {Cau lenh in ra cac uoc bang Fordo} Program Uocso; Uses crt; Var i,n:integer; Begin Clrscr; Write(‘Nhập một số nguyên’);Readln(n); i:=1; Write(‘Cac uoc cua ‘ ,n,‘ la: ‘); For i:=1 to n do if (n mod i)=0 then write(i,’ ‘); Readln End. Program Uocso; Uses crt; Var i,n:integer; Begin Clrscr; Write(‘Nhập một số nguyên’);Readln(n); i:=1; Write(‘Cac uoc cua ‘ ,n,‘ la: ‘); While ( i<=n) do begin if (n mod i)=0 then write(i,’ ‘); i:=i+1; end; Readln End. + VD5: Tính tổng các ước của một số nguyên nhập từ bàn phím Program Tonguoc; Uses crt; Var S,n,i:integer; Begin clrscr; S:=0; i:=1; Write(‘Nhap so nguyen n’);readln(n); while i<=n do begin if n mod i=0 then S:= S+ i; i:= i+1; end; Writeln(‘Tong cac uoc cua ’,n,’ la ’,S); Readln End. + VD6: Nhập vào một số kiểm tra xem số đó có là số hoàn chỉnh không Program Sohoanchinh; Uses crt; Var S,n,i:integer; Begin clrscr; S:=0; i:=1; Write(‘Nhap so nguyen n’);readln(n); while i<=n do begin if n mod i=0 then S:= S+ i; i:= i+1; end; Writeln(‘Tong cac uoc cua ’,n,’ la ’,S); if S=2*n then Writeln(‘So ‘,n,’ la so hoan chinh’) else Writeln(‘So ‘,n,’ khong la so hoan chinh’); Readln End. + VD7: In ra các số hoàn chỉnh từ 1 đến 1000 (hs tự làm) Program Sohoanchinh; Uses crt; Var S,n,i:integer; Begin clrscr; S:=0; i:=1; Write(‘Nhap so nguyen n’);readln(n); For n:=1 to 1000 do Begin i:=1;S:=0; Writeln(‘Cac so hoan chinh tu 1 den 1000 la: ‘); while i<=n do begin if n mod i=0 then S:= S+ i; i:= i+1; end; if S=2*n then Writeln(n,’ ‘) ; end; Readln End. Vấn đề 7: Làm việc với dãy số, xử lý dãy số trong chương trình. - Cú pháp: Var Tenmang:array[chisodau..chisocuoi] of Kieudulieu Ví dụ cụ thể: Var a: array[1..10] of integer; - Một số ví dụ: (Đọc tìm hiểu chương trình và làm phần bài tập phía sau) + VD1: Nhập các phần tử vào một dãy Program VD1; Uses crt; Var a:array[1..10] of integer; Begin Clrscr; For i:=1 to 10 do begin write(‘phan tu thu ‘,i); readln(a[i]); end; Readln End. + VD2: Xuất các phần tử từ dãy đưa ra màn hình Program VD2; Uses crt; Var a:array[1..10] of integer; Begin Clrscr; Write(‘Cac phan tu cua mang: ‘); For i:=1 to 10 do write(a[i],’ ‘); Readln End. + VD3: Tìm phần tử lớn nhất của dãy Program VD3; Uses crt; Var a:array[1..10] of integer; max:integer; Begin Clrscr; max:=a[1]; For i:=1 to 10 do if a[i]>max then max:=a[i]; Write(‘Phan tu lon nhat cua mang: ‘,max); Readln End. + VD4: Tìm phần tử nhỏ nhất của dãy Program VD4; Uses crt; Var a:array[1..10] of integer; min:integer; Begin Clrscr; min:=a[1]; For i:=1 to 10 do if a[i]<min then min:=a[i]; Write(‘Phan tu lon nhat cua mang: ‘,min); Readln End. + VD5: Tính tổng các phần tử của dãy Program VD5; Uses crt; Var a:array[1..10] of integer; S:integer; Begin Clrscr; S:=0; For i:=1 to 10 do S:=S+a[i]; Write(‘Tong cac phan tu cua mang: ‘,S); Readln End. + VD6: Tính trung bình cộng các phần tử của dãy Program VD6; Uses crt; Var a:array[1..10] of integer; S:real; Begin Clrscr; S:=0; For i:=1 to 10 do S:=S+a[i]; S:=S/10; Write(‘Tong cac phan tu cua mang: ‘,S); Readln End. + VD7: Tính tổng các phần tử chẵn,tổng các phần tử lẻ Program VD7; Uses crt; Var a:array[1..10] of integer; TC,TL:integer; Begin Clrscr; TC:=0;TL:=0; For i:=1 to 10 do if (a[i] mod 2=0) then TC:=TC+a[i] else TL:=TL+a[i]; Writeln(‘Tong cac phan tu chan cua mang: ‘,TC); Writeln(‘Tong cac phan tu le cua mang: ‘,TL); Readln End. + VD8: Trong các câu lệnh lặp, câu lệnh nào sai và sai ở đâu ? a./ while i:=1 do t:=10; b./ while a<=b; do write(‘b khong nho hon a’); c./ while 1=1 do write(‘Toi lap trinh gioi’); d./ i:=1; while i<10 do sum:=sum+1; i:=i+1; e./ i:=1; x:=5; while i<x do i:=i+1; write(‘Gia tri cua i la ‘,i); + VD9: Đoạn lệnh sau đây sẽ cho kết quả gì ? so:= 1; while so<10 do writeln(so); so:=so+1; a./ In ra các số từ 1 đến 9; b./ In ra các số từ 1 đến 10; c./ In ra vô hạn các số 1, mỗi số trên một hàng; d./ Không phương án nào đúng. + VD10: Hãy chạy từng bước và đoán giá trị của biến x sau khi đoạn chương trình trên được thực hiện x:=0; tong:=0; while tong<=20 do begin writeln(tong); tong:=tong+1; end; x:=tong; Kết quả: x=. + VD11: Tìm hiểu đoạn chương trình sau và cho biết giá trị của các biến i, j, k a./ i:=1; j:=2; k:=3; while i<6 do i:=i+1; j:=j+1; k:=k+j; space:=’ ‘; writeln(i,space,j,space,k); Kết quả: i =; j =..; k =. b./ i:=1; j:=2; k:=3; while i<6 do begin i:=i+1; j:=j+1; k:=k+j; end; space:=’ ‘; writeln(i,space,j,space,k); Kết quả: i =; j =..; k =. + VD12: Hãy viết đoạn chương trình yêu cầu người sử dụng nhập một số thực trong khoảng từ 1 đến 10 và yêu cầu nhập lại nếu không thỏa mãn. + VD13: Viết chương trình sử dụng câu lệnh lặp while do để tính tổng S = 1 + 1/2 + 1/3 + + 1/n Với 1/n <e, giá trị e là sai số cho trước và được nhập vào từ bàn phím + VD14: Viết chương trình tìm ước chung lớn nhất của hai số nguyên a và b được nhập từ bàn phím + VD15: Dựa vào ý tưởng của VD14 hãy viết chương trình tính tổng hai phân số a/b và c/d được nhập vào bàn phím theo cú pháp sau Write(‘Nhap phan so a/b’);readln(a,b); Write(‘Nhap phan so c/d’);readln(c,d); Xuất ra màn hình tổng hai phân số theo cú pháp sau Write(‘Tong hai phan so: ‘,a,’/’,b,’+’,c,’/’,d,’=’,tong); Vấn đề 8: Một số câu hỏi tham khảo + VD1: Các lệnh khai báo mảng trong Pascal sau đây là đúng hai sai? Hãy giải thích. a./ var a: array[11000] of integer; b./ var b: array[1..n] of real; c./ var c: array[1:n] of real; d./ var d: array[-7..7] of byte; e./ var x: array[100..1] of real; f./ var y: array(-1..10] of byte; + VD2: Các lệnh khai báo mảng trong Pascal sau đây là đúng hai sai, nếu sai hãy giải thích ? a./ var a: array[1,20] of real; b./ var xau: array[255..1] of longint; c./ var so: array[1.1..1.10] of integer; d./ var kitu: array(1..255) of real; e./ var y: array[1,,100] of integer; + VD3: Các lệnh Pascal sau là đúng hay sai, hãy chỉ ra chổ sai nếu có ? a./ for i:=1 to 10; do x:=x+1; b./ for i:=10 to 1 do x:=x+1; c./ for i:=1 to 10 do x:=x+1; d./ for i:=1 to 10 do for j:=1 to 10 do x:=x+1; e./ for i:=1 to 10 do for i:=1 to 10 do x:=x+1; + VD4: Hãy cho biết các biến i , j, k là nguyên. Giá trị i,j , k được in ra màn hình là bao nhiêu ? a./ i = .; j =..;k = .. j:=2; k:=3; for i:=1 to 5 do j:=j+1; k:=k+j; cach:=’ ‘; writeln(j,cach,k); b./ i = .; j =..;k = .. j:=2; k:=3; for i:=1 to 5 do begin j:=j+1; k:=k+j; end; cach:=’ ‘; writeln(j,cach,k); c./ i = .; j =..;k = .. j:=2; k:=3; for i:=1 to 5 do if i mod 2 =0 then j:=j+1; k:=k+j; cach:=’ ‘; writeln(j,cach,k); + VD5: Câu lệnh sau thực hiện bao nhiêu lần For i:=1 to 10 do begin end; a./ không lần nào b./ 1 lần c./ 2 lần d./ 10 lần + VD6: Đoạn chương trình sau đây làm việc gì (chạy thử n=5 và trả lời)? a./ s:=0; for a:=1 to n do s:=s+a*a; b./ for i:=1 to n do i:=i+2; + VD7: Sửa lỗi nếu có và cho biết chương trình sau đây làm việc gì ? a./ for i:=0 to 1.5 do write(i:3:1); b./ s:=0; for i:=2 to 3900 do if i mod 2=0 then s:=s+i; Vấn đề 9: Một số bài tập gợi ý (dành cho hs giỏi, nếu muốn đạt 10 điểm) a./ Số Fibonacci được ký hiệu là Fn F1=F2=1; Fn=Fn-1+Fn-2 (với n>=3) Hãy viết chương trình in ra màn hình các số Fibonacci từ1 đến 100 b./ Số Amstrong là số tổng lập phương các chữ số bằng chính nó, ví dụ 153=1^3+5^3+3^3 Hãy viết chương trình in ra các số Amstrong từ 0 đến 999 c./ In ra các số hoàn chỉnh <=1000 (xem VD) d./ Số m và n là hai số bạn bè nếu tổng các ước thực sự của m bằng n và ngược lại tổng các ước thực sự của n bằng m. Hãy viết chương trình tìm các số bạn bè từ 0 đến 1000 Ví dụ: 284 và 220 là cặp số bạn bè vì tổng các ước thực sự của 284 bằng 220 và ngược lại, tổng các ước thực sự của 220 bằng 284 Ước thực sự là không kể số 1 và chính nó như sau: “Số nguyên dương p được gọi là ước thật sự của số nguyên n, nếu n chia hết cho p và p khác 1 và chính số n.” e./ Viết chương trình tính x^n với x và n là hai số nguyên dương được nhập từ bàn phím ?
Tài liệu đính kèm: