Sáng kiến kinh nghiệm Kinh nghiệm bồi dưỡng học sinh giỏi môn Tin học 9

Sáng kiến kinh nghiệm Kinh nghiệm bồi dưỡng học sinh giỏi môn Tin học 9

Bài 4: Viết chương trình xét xem một số n có phải là số nguyên tố không?

- Xác định bài toán:

+ Input: n

+ Output: Kiểm tra xem n có phải là số nguyên tố không?

- Cách giải:

+ Cho biến i chạy từ 2 đến n – 1 nếu n không chia hết mọi số i thì thì n là số nguyên tố.

+ Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. Cứ mỗi lần xét phép chia n cho i

- Chương trình minh họa:

Program Nguyen_to_1;

uses crt;

var n, i: integer;

 ok: boolean;

begin

 ok:=true;

 write('Nhap n: ');readln(n);

 for i:= 2 to n - 1 do if n mod i = 0 then ok :=ok and false;

 if ok then write(n,' la so nguyen to')

 else write(n, ' khong la so nguyen to');

 readln

end.

 

doc 31 trang Người đăng hieu90 Ngày đăng 18/03/2021 Lượt xem 16Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Kinh nghiệm bồi dưỡng học sinh giỏi môn Tin học 9", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ược kết quả tốt nhất.
 - Trong quá trình giảng dạy, mỗi giáo viên phải tổng hợp được những kiến thức cơ bản, trọng tâm, dễ nhớ để đưa vào kiến thức của các em. Chẳng hạn như khi cho các em làm bài tập về các vòng lặp giáo viên cần lưu ý học sinh các trường hợp sau:
1. FOR..TO..DO: 
 - Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết trước. Phát biểu FOR có 2 dạng: 
 FOR .. TO .. DO                     đếm lên
 FOR .. DOWNTO ..DO          đếm xuống 
* Cú pháp tổng quát là:
FOR := TO/DOWNTO   DO ;
2. WHILE..DO : 
 - Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra điều kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới thực hiện lệnh tiếp theo 
* Cú pháp : WHILE DO 
 + Ðiều kiện trong cấu trúc lặp WHILE .. DO là một biểu thức logic kiểu Boolean chỉ có 2 giá trị là Ðúng (True) hoặc Sai (False). Nếu điều kiện Ðúng thì chương trình sẽ chạy trong cấu trúc WHILE .. DO.
 + Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện. Tùy theo biểu thức logic của điều kiện là Ðúng hay Sai thì chương trình sẽ thực hiện Công việc tương ứng.
 +  Nếu Sai thì chuyển xuống dưới cấu trúc WHILE .. DO
3. REAPET..UNTILL
 - Câu lệnh REPEAT .. UNTIL dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
- Nếu điều kiện logic là Sai (False)  thì lặp lại lệnh cho đến khi điều kiện Ðúng  thì mới thoát ra khỏi cấu trúc REPEAT .. UNTIL. 
- Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;) Công việc của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên thành công việc.
 - Có rất nhiều dạng câu lệnh lặp vì vậy giáo viên cần lưu ý học sinh sử dụng các câu lệnh lặp sao cho đúng để chương trình cho ra kết quả tốt ngoài ra còn tiết kiệm được dung lượng cấp phát bộ nhớ cho mỗi bài tập. Cũng như điều kiện phù hợp để thoát khỏi vòng lặp một cách hợp lý trách đưa bài tập vào vòng lặp không xác định.
- Đối với giáo viên tham gia bồi dưỡng học sinh giỏi môn Tin Học, ngoài việc nắm vững các kiến thức Tin Học, chúng ta còn phải nắm được các kiến thức Toán học. Toán học giúp chúng ta thể hiện được các bài toán và là công cụ quan trọng giúp ta giải được các bài Tin Học.
- Ngoài việc hướng dẫn các em ôn tập tập trung, giáo viên có thể yêu cầu các em tìm mua thêm tài liệu tham khảo có liên quan. Giáo viên cho thêm bài về nhà để các em tự giải, sau đó ta xem cách giải của các em. Từ đó hỗ trợ cho các em những kiến thức cần và chỉ ra những chỗ không cần thiết trong bài làm của học sinh nhằm giúp các em đạt được kết quả tốt nhất. 
- Trong quá trình bồi dưỡng học sinh giỏi, kiến thức mà mỗi giáo viên bồi dưỡng cho các em học sinh là rất rộng và sâu. Kiến thức ấy phải được liên kết với nhau tạo thành chuỗi thuộc chương trình Tin Học. Giáo viên phải hướng dẫn cho học sinh nắm được kiến thức rất cơ bản và nâng cao theo từng chuyên đề: 
+ Chuyên đề 1: Làm quen với chương trình pascal
+ Chuyên đề 2: Câu lệnh điều kiện
+ Chuyên đề 3: Câu lệnh lặp 
+ Chuyên đề 4: Mảng 
+ Chuyên đề 5: Xâu kí tự
+ Chuyên đề 6: File. 
- Ngoài các dạng bài tập rất cơ bản mà quý thầy cô đã truyền đạt cho học sinh. Trong đề tài này tôi đã đưa ra thêm một số dạng bài tập đặc trưng khác, cụ thể như sau:
CHUYÊN ĐỀ I: LÀM QUEN VỚI CHƯƠNG TRÌNH PASCAL
Bài tập 1:
	Viết chương trình tính chu vi và diện tích của hình chữ nhật có chiều dài hai cạnh là a, b (được nhập từ bàn phím).
- Xác định bài toán:
+ Input: a, b
+ Output: S,p
- Cách giải:
- Nhập hai cạnh vào hai biến a, b.
- Chu vi hình chữ nhật bằng 2*(a+b); Diện tích hình chữ nhật bằng a*b.
- Chương trình minh họa:
Program Chu_nhat;
uses crt;
Var a, b, S, CV: real;
Begin
 Write('Nhap chieu dai:'); readln(a);
 Write('Nhap chieu rong:'); readln(b);
 S := a*b;
 CV := (a+b)*2;
 Writeln('Dien tich hinh chu nhat la:',S);
 Writeln('Chu vi hinh chu nhat la:',CV:10:2);
 readln
end.
Bài tập 2: 
Viết chương trình tính chu vi, diện tích hình vuông có cạnh a (được nhập từ bàn phím).
- Xác định bài toán: 
+ Input: a
+ Output: p,s
- Cách giải:
- Nhập cạnh vào biến canh.
- Chu vi hình vuông bằng 4*canh; Diện tích hình vuông bằng canh*canh.
- Chương trình minh họa::
Program HINH_VUONG;
uses crt;
Var canh: real;
Begin
 clrscr;
 Write('Nhap do dai canh:');readln(canh);
 Writeln('Chu vi hinh vuong la:',4*canh:10:2);
 Writeln('Dien tich hinh vuong la:',canh*canh:10:2);
 readln
end.
Bài tập 3:
	Viết chương trình tính chu vi và diện tích hình tròn có bán kính r (được nhập từ bàn phím).
- Cách giải:
- Nhập bán kính vào biến r.
- Chu vi đường tròn bằng 2*p*r.
- Diện tích hình tròn bằng p*r*r.
- Chương trình minh họa:
Program HINH_TRON;
uses crt;
Var r: real;
Begin
 clrscr;
 Write('Nhap ban kinh:'); readln(r);
 Writeln('Chu vi duong tron la:',2*pi*r:10:2);
 Writeln('Dien tich hinh tron la:',pi*r*r:10:2);
 readln
end.
Bài tập 4:
	Viết chương trình tính diện tích của tam giác có ba cạnh là a,b,c (được nhập từ bàn phím)
- Cách giải :
- Nhập ba cạnh của tam giác vào ba biến a,b,c.
- Nửa chu vi của tam giác p = (a+b+c)/2.
- Diện tích của tam giác: s =.
- Chương trình minh họa:
Program TAM_GIAC;
uses crt;
Var a,b,c,p,S: real;
Begin
 clrscr;
 Write('Nhap canh a:');readln(a);
 Write('Nhap canh b:');readln(b);
 Write('Nhap canh c:');readln(c);
 p:=(a+b+c)/2;
 S:= sqrt(p*(p-a)*(p-b)*(p-c));
 Write('Dien tich tam giac la:',s:10:2);
 readln
end.
Bài tập 5:
	Viết chương trình cho phép tính trung bình cộng của bốn số.
- Cách giải:
- Nhập bốn số vào bốn biến a, b, c, d
- Trung bình cộng của a, b, c, d bằng (a + b + c + d)/4.
- Chương trình minh họa:
Program TB_Cong_4_So;
uses crt;
Var a, b, c, d: real;
Begin
 Clrscr;
 Write('Nhap so thu nhat:');readln(a);
 Write('Nhap so thu hai:');readln(b);
 Write('Nhap so thu ba:');readln(c);
 Write('Nhap so thu tu:');readln(d);
 Writeln('Trung binh cong: ',(a+b+c+d)/4):10:2;
 Readln
end.
Bài tập 6:
	Viết chương trình cho phép tính trung bình cộng của bốn số với điều kiện chỉ được sử dụng hai biến. (Học sinh tự giải)
* CHUYÊN ĐỀ 2: CÂU LỆNH ĐIỀU KIỆN:
+ Dạng thiếu:
If then ; 
vd: if (x mod 2)=0 then writeln(x,' la so chan');
+ Dạng đầy đủ:
If then else ; 
vd:  if (x mod 2) =0 then writeln(x,' la so chan') 
   else writeln(x,' la so le');
Bài 1: Nhập vào ba số a, b, c bất kì. Kiểm tra xem nó có thể là độ dài ba cạnh hay không, nếu không thì in ra màn hình 'Khong la ba canh cua mot tam giac'. Ngược lại, thì in diện tích, chu vi của tam giác ra màn hình.
- Xác định bài toán:
+ Input:a, b, c
+ Kiểm tra xem có phải 3 cạnh tam giác không? Nếu đúng tính chu vi diện tích
- Cách giải: 
 Để thỏa mãn điều kiện 3 canh của tam giác thì: Tổng 2 cạnh lớn hơn một cạnh và a, b, c>0; p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); 
- Chương trình minh họa:
Program TAMGIAC; Uses crt;
Var	a,b,c,s,p : real; Begin
Clrscr;
Writeln(‘BAI TOAN TAM GIAC:’); Writeln('---------------------------------'); Write('nhap a =');readln(a);
Write ('nhap b =');readln(b); Write('nhap c =');readln(c);
If ((a+b)>c)and((b+c)>a)and((a+c)>b) then
Begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c)); 
Writeln('Chu vi tam giac:',2*p:4:2) ; 
Writeln('Dien tich tam giac:',s:4:2);
End
Else
Writeln(a,’, ‘, b,’, ‘, c, ‘ khong phai la ba canh cua tam giac') ; Readln;
End.
Bài 2: Tìm giá trị lớn nhất trong 4 số a, b, c, d (a, b, c, được nhập từ bàn phím). 
- Xác định bài toán: 
+ Input: a, b, c, d
+ Output: Max
- Cách giải: Gán giá trị lớn nhất cho a. Lấy lớn nhất lần lượt đi so sánh với các số còn lại. Nếu lớn nhất nhỏ hơn số nào thì lấy số đó gán cho lớn nhất. Đưa lớn nhất ra màn hình.
- Chương trình minh họa:
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 d>max then max:=d;
Writeln('So lon nhat la:',max:4:2); Readln;
End.
Bài 3: Giải hệ phương trình tuyến tính:
Ax+by=m
Cx+dy=n
- Xác định bài toán:
+ Input: a, c, b, d, m, n
+ Output: x, y
- Chương trình minh họa: 
Program GIAI_HE_HAI_AN; Uses crt;
Var a,b,c,d,m,n:real;
dx,dy,dd:real;
Begin
Clrscr;
Writeln('	GIAI HE HAI AN:'); 
Writeln('----------------------------------'); Write('Nhap a='); readln(a); 
Write('Nhap b='); readln(b); 
Write('Nhap c=');readln(c); 
Write('Nhap m=');readln(m); 
Write('Nhap n='); readln(n);
dd:=a*d-b*c; 
dx:=m*d-b*n; 
dy:=a*n-c*m; 
If dd=0 then
If (dx=0) and (dy=0) then
Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo nghiem')
Else
Begin 
Write('He co nghiem :'); 
Writeln('x=',dx/dd:4:2,' va y=',dy/dd:4:2);
End; 
Readln; 
End.
Bài 4: Nhập vào thời gian 1 công việc nào đó là x giây. Hãy chuyển đổi và viết ra màn hình số thời gian trên dưới dạng bằng bao nhiêu giờ, bao nhiêu phút, bao nhiêu giây. 
- Xác định bài toán:
+ Input: x
+ Output: Giờ, phút, giây
- Chương trình minh họa: 
Program DOI_GIO_PHUT_GIAY;
Uses crt;
Var gio, phut,giay, x: longint; Begin
Clrscr;
Writeln('DOI SANG GIO PHUT GIAY');
Writeln('--------------------------------------'); Write('Nhap vao so giay: ');readln(x); gio:= x div 3600;
x:=x mod 3600; phut:=x div 60; x:=x mod 60;
Writeln('Ket qua = ', gio,'gio : ', phut, 'phut : ', x, 'giay'); Readln;
End.
Bài 5 :
Viết chương trình nhập hai số thực . Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó .
 Nếu là “+” , in kết quả của tổng lên màn hình .
 Nếu là “-” , in kết quả của hiệu lên màn hình .
 Nếu là “/” , in kết quả của thương lên màn hình .
 Nếu là “*” , in kết quả của tích lên màn hình . Nếu là “+” , in kết quả của tổng lên màn hình .
 Nếu là “+” , in kết quả của tổng lên màn hình .
- Xác định bài toán:
+ Input: a, b, phép tính
+ Output: Kết quả phép tính
- Chương trình minh họa:
Program pheptinh;
Uses Crt ; 
 Var 
 a , b , T : Real ; 
 Pt : Char ; 
 BEGIN
 Clrscr ; 
 Write (' a = ') ; Readln( a ) ; 
 Write (' b = ') ; Readln( b ) ; 
 Write (' Phep tinh thuc hien la (+ - * /) : ') ; 
 Readln( Pt ) ; 
 If Pt = '+’ Then T := a + b ; 
 If Pt = '-’ Then T := a - b ; 
 If Pt = '*’ Then T := a * b ; 
 If Pt = '/’ Then T := a / b ; 
 Write ( a , pt , b , ' = ', T ) ; 
 Readln ; 
 END . 
* CHUYÊN ĐỀ 3: CÁC VÒNG LẶP
1. FOR..TO..DO: 
Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết trước. Phát biểu FOR có 2 dạng: 
 FOR .. TO .. DO                     đếm lên
 FOR .. DOWNTO ..DO          đếm xuống 
* Cú pháp tổng quát là:
FOR := TO/DOWNTO   DO ;
2. WHILE..DO : 
Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra điều kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới thực hiện lệnh tiếp theo 
* Cú pháp : WHILE DO 
· Ðiều kiện trong cấu trúc lặp WHILE .. DO là một biểu thức logic kiểu Boolean chỉ có 2 giá trị là Ðúng (True) hoặc Sai (False)
· Nếu điều kiện Ðúng thì chương trình sẽ chạy trong cấu trúc WHILE .. DO.
· Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện. Tùy theo biểu thức logic của điều kiện là Ðúng hay Sai thì chương trình sẽ thực hiện Công việc tương ứng.
· Nếu Sai thì chuyển xuống dưới cấu trúc WHILE .. DO
3. REAPET..UNTILL
Câu lệnh REPEAT .. UNTIL dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
- Nếu điều kiện logic là Sai (False)  thì lặp lại lệnh cho đến khi điều kiện Ðúng  thì mới thoát ra khỏi cấu trúc REPEAT .. UNTIL. 
- Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;) Công việc của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên thành công việc.
Bài 1: Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n ( Với n được nhập). Sao cho 15 số lẻ được in trên một dòng.
- Xác định bài toán:
+ Input: n
+ Output: Các số lẻ nhỏ hơn n
- Cách giải:
- Cho j =0.
- Cho biến I chạy từ 1 đến n.
- Nếu I chẵn ( I chia 2 dư 0) thì in ra số n và tăng j lên 1
- Nếu j chia hết cho 15 thì thực hiện xuống dòng (Dùng Writeln).
- Chương trình minh họa:
Program In_So_Le;
Uses crt;
var Dem,i,n: integer;
Begin
 Clrscr;
 Write('Nhap so n ='); readln(n);
 Dem:= 0;
 For i:=1 to n do if i mod 2 =1 then
 Begin Write(i:3,',');
 Dem:= Dem + 1;
 if Dem mod 15 = 0 then Writeln;
 end;
 readln
end.
Bài 2: Viết chương trình in ra tất cả các ước của một số n (Với n được nhập từ bàn phím)
- Xác định bài toán:
+ Input: n
+ Output: Các ước của n
- Cách giải:
- Cho biến i chạy từ 1 đến n.Nếu n chia hết cho i thì in ra i.
- Chương trình minh họa:
Program Tim_uoc;
uses crt;
Var n, i: integer;
Begin
 clrscr;
 Write('Nhap so n ='); readln(n);
 For i:=1 to n do if n mod i = 0 then write(i:3,',');
 readln
end.
Bài 3: Một số có tổng các ước nhỏ hơn nó bằng chính nó được gọi là số hoàn chỉnh.
Ví dụ: 6 có các ước nhỏ hơn nó là 1, 2, 3. Tổng là 1 + 2 + 3 = 6. Viết chương trình xét xem một số n được nhập từ bàn phím có phải là số hoàn chỉnh không.
- Xác định bài toán:
+ Input: n
+ Output: Các ước của n sao cho tổng các ước bằng chính nó.
- Cách giải:
	- Dùng biến n lưu số cần xét. 
- Biến S có giá trị ban đầu bằng 0.
- Cho i chạy từ 1 đến n-1. nếu i là ước của n thì cộng thêm i vào S.
- Nếu S = n thì S là số hoàn chỉnh.
- Chương trình minh họa:
Program So_Hoan_Chinh;
uses crt;
var n, i, s: integer;
begin
 write('nhap so n: ');readln(n);
 s:=0;
 for i:= 1 to n -1 do if n mod i = 0 then s:=s+i;
 if s = n then write(n, ' la so hoan chinh')
 else writeln(n, ' khong phai la so hoan chinh');
 readln
end.
Bài 4: Viết chương trình xét xem một số n có phải là số nguyên tố không?
- Xác định bài toán: 
+ Input: n
+ Output: Kiểm tra xem n có phải là số nguyên tố không?
- Cách giải:
+ Cho biến i chạy từ 2 đến n – 1 nếu n không chia hết mọi số i thì thì n là số nguyên tố.
+ Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. Cứ mỗi lần xét phép chia n cho i 
- Chương trình minh họa:
Program Nguyen_to_1;
uses crt;
var n, i: integer;
 ok: boolean;
begin
 ok:=true;
 write('Nhap n: ');readln(n);
 for i:= 2 to n - 1 do if n mod i = 0 then ok :=ok and false;
 if ok then write(n,' la so nguyen to')
 else write(n, ' khong la so nguyen to');
 readln
end.
Bài 5: Viết chương trình in ra tất cả các số nguyên tố bé hơn hoặc bằng n?
- Xác định bài toán:
+ Input: n
+ Output: Các số nguyên tố nhỏ hơn n
- Cách giải:
+ Kiểm tra các số nhỏ hơn n có phải là số nguyên tố:
- Cho biến i chạy từ 2 đến n – 1 nếu n không chia hết mọi số i thì thì n là số nguyên tố.
- Sử dụng biến ok có kiểu boolean và có giá trị ban đầu là true. Cứ mỗi lần xét phép chia n cho i 
- Chương trình minh họa:
Program Nguyen_to_1;
uses crt;
var n, i, j: integer;
 ok: boolean;
begin
 clrscr;
 write('Nhap n: '); readln(n);
 for i := 2 to n do
 begin
 ok:=true;
 for j:= 2 to i - 1 do if i mod j = 0 then ok :=ok and false;
 if ok then write(i,';')
 end;
 readln
end.
Bài 6: Viết chương trình cho phép nhập nhập một dãy gồm n số nguyên. Nhập thêm một số và chèn thêm vào dãy sau phần tử k.
- Xác định bài toán:
+ Input: n, k
+ Output: in day mới chèn
- Cách giải:
+ Dời các phần tử từ vị trí k về sau một bước.
+ Nhập giá trị cần chèn vào vị trí k.
- Chương trình minh họa:
Program Mang_chen;
uses crt;
var M: array[1..100] of integer;
 i,n,k:integer;
begin
 clrscr;
 write('Nhap : ');readln(n);
 for i:=1 to n do
 begin
 write('M[',i,']='); readln(M[i]);
 end;
 write('Vi tri chen: ');readln(k);
 for i:=n+1 downto k+1 do M[i]:=M[i-1];
 write('Nhap so can chen: '); readln(M[k]);
 for i:=1 to n+1 do write(M[i],', ');
 readln
end.
Bài 7: Lập trình tính tích các số tự nhiên từ 1 tới 10 .
- Xác định bài toán:
+ Input: 1, 2, 3, 4.., 10
+ Output: 1*2*3*4* ..*10
- Chương trình minh họa:
Var i : Byte ; 
 p : word ; 
 BEGIN
 p := 1; 
 For i := 1 to 10 Do 
 p := p * i ; 
 Write (' 1 * 2 * ... * 10 = ', p ) ; 
 Readln ; 
 END .
Bài 8: Cho số tự nhiên n, hãy lập trình để tính các tổng sau :
a.      1 + 1/22 + 1/32 +  + 1/n2 
b.      1 + 1/2! + 1/3! +  + 1/n! 
a. Var n , i : Word ; 
 S : Real ; 
 BEGIN
 Write (' Nhap n : ') ; Readln (n) ; 
 S := 0 ; 
 For i := 1 To n Do 
 S := S + 1 / sqr(i) ; 
 Writeln (' S = ', S:0:2) ; 
 Readln ; 
 END .
b. Var n , i , j , p : Word ; 
 S : Real ; 
 BEGIN 
 Write (' Nhap n : ') ; Readln(n) ; 
 p := 1 ; 
 s := 0 ; 
 For i :=1 To n Do 
 Begin 
 p := p * i ; (* tính i *)
 S := S + 1 / p ; 
 End ; 
 Writeln (' S = ', S:0:2) ; 
 Readln ; 
 END .
Bài 9: Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau .
Uses Crt; 
 Var A : Array [1..100] Of Integer; 
 i , j , n : Integer ; 
 BEGIN
 Clrscr ; 
 Write(' Do dai cua day so N = ') ; Readln (N) ; 
 For I := 1 To N Do 
 Begin 
 Write ('A[', i , ']= ') ; Readln ( A[i] ) ; 
 End ; 
 Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ; 
 i := 2 ; 
 While i <= N Do 
 Begin 
 j := 1 ; 
 While ( j A[i] ) Do inc(j) ; 
 If j = i Then Writeln( A[i] ) ; 
 i :=i + 1 ; 
 End ; 
 Readln ; 
 END .
Bài 10 : Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng dần .
Program sapxep;
Uses Crt; 
 Var A : Array [1..100] Of Integer ; 
 i , j , n , T : Integer ; 
 BEGIN
 Clrscr ; 
 Write(' Do dai cua day so N = ') ; Readln (N) ; 
 Writeln (' Nhap day so : ') ; 
 For i := 1 To N Do 
 Begin 
 Write('A[', i ,'] = ') ; Readln ( A[i] ) ; 
 End ; 
 i := 1 ; 
 While (i <= n-1) Do 
 Begin 
 j := i+1; 
 While j<=n do 
 Begin 
 If A[j] < A[i] then 
 Begin 
 T := A[j];
 A[j ] := A[i];
 A[i] := T ; 
 End ; 
 j := j + 1; 
 End ;
 i := i + 1; 
 End ; 
 Writeln(' Day sau khi sap xep : ') ; 
 For i := 1 To N Do Write(A[i] : 4) ; 
 Readln
Bài 11: Viết chương trình tìm ƯSCLN của N số được nhập từ bàn phím .
Program UCLN;
Uses crt ; 
Var a : Array [1..100] Of Integer ; 
 n , i : Byte ; 
 d : integer ; 
BEGIN
 Clrscr ; 
 Writeln (' Tim USCLN cua N so :') ; 
 Write (' Nhap so N : ') ; Readln(n) ; 
 Writeln ('Nhap ', N ,' so : ') ; 
 For i := 1 To n Do 
 Begin 
 Write(' So thu ', i ,' = ') ; Readln( a[i] ) ; 
 End ; 
 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 ; 
 Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ; 
 Readln ; 
END . 
CHUYÊN ĐỀ 4: DỮ LIỆU KIỂU MẢNG:
	Đối với mảng, do chương trình lớp 8 của chúng ta chỉ nghiên cứu mảng một chiều nên trong bài này tôi cũng chỉ giới thiệu một số bài tập tiêu biểu về mảng một chiều mà vẫn chưa đề cập đến mảng 2 chiều.
Mảng (Array) là một tập hợp các phần tử cố định có cùng kiểu gọi là kiểu phần tử. Kiểu phần tử có thể là kiểu vô hướng, kiểu String, kiểu tập hợp, kiểu Record.
a. Khai báo
Cách 1:
TYPE =ARRAY[chỉ số] OF ;
VAR :;
Cách 2:
VAR :ARRAY[chỉ số] OF ;
Trong đó chỉ số phải là một kiểu miền con, kiểu vô hướng liệt kê, kiểu char hoặc kiểu boolean. {Tuy nhiên. người ta thường dùng kiểu miền con các số nguyên là dễ hình dung nhất vì nó gần giống với khái niệm chỉ số trong toán học.}
Ví dụ:
TYPE Mangnguyen = Array[1..5] of Integer;
    MangKytu = Array[Byte] of Char;
VAR     A: Mangnguyen;
        C: MangKytu;
Hoặc
VAR     A: Array[1..5] of Integer;
        C: Array[Byte] of Char;
b. Cách truy xuất
{việc truy xuất đến từng phần tử của mảng đế xử lý dữ liệu cũng như việc ta gọi đến tên các lớp học của ta}
Mỗi phần tử của mảng được truy xuất thông qua tên biến mảng cùng với chỉ số của mảng trong cặp dấu [].
Ví dụ: A[1], A[2],
Chú ý: Hai mảng A và B có cùng số phần tử và cùng kiểu phần tử, ta có thể thay toàn bộ phần tử A bởi các phần tử tương ứng của B 

Tài liệu đính kèm:

  • docSKKN - Tin hoc - Nguyen Thi Thu Thuy - Buon Trap.doc