Chuyên đề Nâng cao chất lượng bộ môn Tin học lớp 8

doc 17 trang Người đăng dothuong Lượt xem 3325Lượt tải 5 Download
Bạn đang xem tài liệu "Chuyên đề Nâng cao chất lượng bộ môn Tin học lớp 8", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chuyên đề Nâng cao chất lượng bộ môn Tin học lớp 8
NỘI DUNG SINH HOẠT CHUYÊN ĐỀ THÁNG 04 NĂM 2016 CỦA TRƯỜNG THCS NGUYỄN CHÍ TRAI
Chuyên đề:
NÂNG CAO CHẤT LƯỢNG BỘ MÔN TIN HỌC 8
PHẦN MỞ ĐẦU:
Lí do chọn đề tài:
Trong những năm vừa qua bộ giáo dục và đào tạo đã đưa bộ môn tin học vào giảng dạy ở các cấp của trường học trong đó có các trường thcs nhằm đáp ứng yêu cầu phát triển của xã hội trong lĩnh vực giáo dục. Môn tin học là một môn học mới đối với các em học sinh, các em không những biết sử dụng máy vi tính thực hiện các thao tác tắt mở máy, soạn thảo văn bản, tính toán, trình chiếu,. mà còn phải làm quen với các kỹ năng cơ bản của lập trình. Vì môn tin học 8 đòi hỏi kỹ năng lập trình nên cần sự tư duy, nhạy bén của học sinh và khả năng tiếp thu kiến thức mới có thể đáp ứng các yêu cầu. Nhằm giúp các học sinh lớp 8 nắm được các kiến thức cơ bản và kỹ năng trong lập trình nên đây là lí do tôi chọn chuyên đề này.
Mục đích nghiên cứu:
 - Tìm ra một số điểm yếu kém của học sinh để khắc phục một số lỗi thường gặp trong lặp trình.
- Khắc sâu một số kiến thức cơ bản để học sinh làm quen với lập trình nhằm nâng cao chất lượng: ð giúp học sinh nâng cao tư duy để viết một số chương trình cơ bản dựa vào các câu lệnh và cú pháp được định nghĩa sẵn từ trước.
Đối tượng và phương pháp nghiên cứu:
Đối tượng nghiên cứu là học sinh THCS mới làm quen với lập trình Turbo Pascal.
Phương pháp nghiên cứu: 
+ Theo dõi và kiểm tra chất lượng về tiếp thu bài học.
+ Kiểm tra định kì để nắm tình hình học tập của học sinh.
Thực trạng:
- Ngôn ngữ lập trình ở tin học 8 là môn học có kiến thức hoàn toàn mới, đòi hỏi sự tư duy, nhạy bén.
- Tin học là môn học tự chọn ð học sinh có tâm lí xem thường nên không có sự đầu tư đúng mức trong học tập.
ð Đó là vấn đề khó dẫn đến chất lượng học sinh cuối năm thấp ở bộ môn.
QUÁ TRÌNH THỰC HIỆN:
I. NHỮNG THUẬN LỢI VÀ KHÓ KHĂN TRONG QUÁ TRÌNH THỰC HIỆN
Thuận lợi:
* Về nhà trường: Tạo điều kiện về cơ sở vật chất cho các em học tốt hơn trong bộ môn tin học (máy vi tính, bảng, màn hình, .)
 - Sự ủng hộ của phụ huynh (có một số phụ huynh đã đầu tư máy vi tính cho con tự học ở nhà nhưng còn ít)
* Về giáo viên và học sinh:
- Giáo viên được đào tạo đúng chuyên ngành về tin học để đáp ứng yêu cầu cho dạy và học môn tin học bậc THCS. 
- Học sinh hứng thú, hăng hái phát biểu xây dựng thông qua một số ví dụ thực tế có liên quan, tạo nên sự tư duy, nhạy bén.
Khó khăn:
Tuy có 2 phòng máy để thực hành cho các em học sinh nhưng một số máy móc đã hư hỏng hoặc các thiết bị như màn hình, bàn phím, chuột xuống cấp theo thời gian nên số lượng máy thực hành bị thu hẹp.
Kiến thức mới nên việc tiếp thu của học sinh gặp nhiều khó khăn.
Các em tiếp xúc với máy tính để thực hành còn hạn chế thời gian nên chưa giải quyết được một số kiến thức mới.
Một bộ phận học sinh chưa có ý thức học tập tốt nên gặp khó khăn trong quá trình tiếp thu kiến thức mới về lập trình.
NỘI DUNG THỰC HIỆN:
Trong giảng dạy cần chỉ rõ học sinh nắm một số các kiến thức cơ bản sau để vận dụng trong lập trình như:
1. Các lệnh nhập /xuất cơ bản trong lập trình (theo PPCT thì không có tiết học này nên giành thời gian để hướng dẫn cụ thể các lệnh nhập /xuất ở tiết học 4 + tiết 5 của PPCT) và nhấn mạnh cú pháp sau:
Nêu rõ cú pháp nhập /xuất dữ liệu:
Cú pháp
Chức năng
Write( );
Xuất dữ liệu ra màn hình với con trỏ trên một dòng
Writeln(  );
Xuất dữ liệu ra màn hình với con trỏ xuống dòng
Read ( ..);
Nhập dữ liệu từ bàn phím vào biến với con trỏ trên một dòng
Readln( .);
Nhập dữ liệu từ bàn phím vào biến với con trỏ xuống dòng
 - Đối với mỗi lệnh cần trình chiếu cho học sinh thấy rõ cú pháp và kết quả thực hiện khi viết một chương trình hoàn chỉnh và trình chiếu cho học sinh quan sát cụ thể như sau:
Lệnh Write( ); 
Ví dụ: 
Cú pháp
Kết quả
Write(‘chao cac ban!’)
Lệnh Writeln( ); 
 Ví dụ: 
Cú pháp
Kết quả
Writeln(‘chao cac ban!’)
Lệnh Read( ); 
 Ví dụ: 
Cú pháp
Kết quả
Read(bien);
Nhập giá trị cụ thể từ bàn phím theo yêu cầu với con trỏ trên một dòng.
Ví dụ:
var bien:integer;
begin
writeln('Nhap mot so nguyen:');
read(bien);
readln;
end.
Xuất hiện câu thông báo yêu cầu nhập số nguyên
Nhập 1 số nguyên cụ thể từ bàn phím và kết thúc bằng phím Enter.
* Lưu ý: Đối với lệnh nhập dữ liệu từ bàn phím trước tiên ta nên in ra màn hình câu thông báo để hướng dẫn thực hiện.
Lệnh Readln( ); 
 Ví dụ: 
Cú pháp
Kết quả
Readln(bien);
Nhập giá trị cụ thể từ bàn phím theo yêu cầu với con trỏ xuống dòng.
Ví dụ:
var bien:integer;
begin
writeln('Nhap mot so nguyen:');
readln(bien);
readln;
end.
Xuất hiện câu thông báo yêu cầu nhập số nguyên
Nhập 1 số nguyên cụ thể từ bàn phím và kết thúc bằng phím Enter.
Sau khi nhập xong giá trị con trỏ sẽ xuống dòng.
2. Nhấn mạnh cho học sinh về các phép toán được thực hiện trong lập trình nhất là phép nhân ,phép chia và phép tính lũy thừa, căn bậc 2. Các phép toán cộng trừ được tính như bình thường.
Kí hiệu
Phép toán
Kiểu dữ liệu
Ví dụ
+
Phép cộng
Số nguyên, số thực
12 + 8 = 20
-
Phép trừ
Số nguyên, số thực 
25 -10 =15
*
Phép nhân
Số nguyên, số thực 
5*9 =54
/
Phép chia
Số nguyên, số thực 
7*3 = 21
Mod
Chia lấy phần dư
Số nguyên
5 mod 3 = 2
Div
Chia lấy phần nguyên
Số nguyên
5 div 3 = 1
Sqr
Tính bình phương
Số nguyên
52 =sqr(5)
Sqrt 
Tính căn bậc 2
Số nguyên
 = sqrt(9)
3. Ở SGK không có nhấn mạnh về cấu trúc chung của một chương trình Pascal gồm 2 phần mà đó là cấu trúc quan trọng để viết nên một chương trình Pascal dó đó nên bổ sung kiến thức này trong bài Thực hành 3: Khai báo và sử dụng biến.
Cấu trúc chương trình
Cú pháp
Ví dụ
Phần khai báo
(không bắt buộc phải có)
- Khai báo tên chương trình:
 program ;
- Khai báo hằng const biến = ;
- Khai báo thư viện uses crt;
- Khai báo biến:
Var : ;
Program chuvi;
Const pi=3.1416;
Uses crt;
Var r:integer;
 cv: real;
Phần Thân
(bắt buộc phải có)
Begin
 ;
End.
Begin
Clrscr;
 Writeln(‘nhap ban kinh htron:’);
Readln(r);
Cv:= 2* pi*r;
Writeln(‘chu vi htron:’,cv);
Readln;
End.
* Lưu ý: Nên hướng dẫn học sinh cách xác định kiểu dữ liệu của các biến trong chương trình để khai biến cho thích hợp.
4. Các kiểu dữ liệu và khi nào sử dụng chúng. Giới thiệu các kiểu dữ liệu và phạm vi giới hạn của chúng để từ đó khai báo biến cho chính xác:
Kiểu dữ liệu
Phạm vi giới hạn
Ví dụ
Kiểu số
Byte
0 → 255
5 10 200
Integer
-32768 → +32767
 389 -698
Longint
-2147483648 → +2147483647 
6958 -10358
real
3.658 -1.54
Kiểu kí tự
Char
1 kí tự trong bảng chữ cái
‘r’ ‘ z’
String
Xâu kí tự
‘2n7’ ‘tin hoc’
- Giáo viên nhắc nhỡ học sinh học thuộc các kiểu dữ liệu để có thể khai báo cho hợp lí và nhấn mạnh một số kiến thức như: 
+ Đối với số thực sử dụng dấu chấm để phân cách phần nguyên và phần thập phân.
 + Đối với kiểu kí tự ta đặt trong cặp nháy đơn.
5. Trong giảng dạy cần làm rõ: một bài toán có rất nhiều cách giải nên nêu ra một số hướng viết chương trình khác nhau trên cùng một bài toán để học sinh hình thành sự tư duy nhạy bén. 
Ví dụ: Đoạn chương trình tính tổng sau:
Cách 1:
	S := 0; i:=0;
	While i<=5 do 
	Begin
	 I:=i+1;
	S:= s+i;
	End;
Cách 2: 
	S := 0; i:=1;
	While i<=5 do 
	Begin
	S:= s+i;
	I:=i+1;
	End;
6. Cần hướng dẫn cách viết chương trình Pascal dựa vào thuật toán (như các bước giải toán) một cách cụ thể và kĩ lưỡng:
Ví dụ: Viết chương trình dựa vào thuật toán để tính tổng giá trị cho 2 số a, b được nhập vào từ bàn phím.
Thuật toán:
Bước 1: Nhập vào giá trị 2 biến a, b.
Bước 2: Sử dụng biết trung gian để tính tổng:
 T:= a + b;
Bước 3: Cho biết kết quả tính tổng T = ?
 Bước 4: kết thúc.
Chương trình Pascal:
Var t ,a ,b: integer;
begin
 writeln(‘nhap 2 so nguyen a ,b:’);
 readln (a,b);
 T:= a + b;
 Writeln(‘ Ket qua tinh tong:’,T);
 Readln;
 End.
 	7. Ở một số bài lý thuyết của Turbo Pascal ta có thể thay các ví dụ ở SGK bởi các bài tập khác nhưng vẫn đảm bảo nội dung của nó. Cụ thể ở bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT ta có thể thay ví dụ 3 ở SGK/67 bởi ví dụ khác để các học sinh cụ thể
Ví dụ 3: Viết chương trình sử dụng cấu trúc lặp với số lần lặp chưa biết while  do để:
 Nhập giá trị cho biến x từ bàn phím. Việc nhập được kết thúc khi nhập vào giá trị 0.
GV: Cần hướng dẫn học sinh xác định yêu cầu như:
 + Cấu trúc sử dụng: while  do 
 + xác định điều kiện và câu lệnh trong đề bài là
điều kiện dừng: x = 0
câu lệnh: nhập giá trị x
 + GV: mô tả tóm tắt chương trình gồm 2 phần khai báo và phần thân theo cấu trúc sau
Sườn bài GV ghi trên bảng
Học sinh thực hiện thêm vào cấu trúc while do
var .
begin
 x:=5;
 writeln('Ket thuc khi nhap 0:');
 while .. do
 ..
 readln;
end.
var x:integer;
begin
 x:=5;
 writeln('Ket thuc khi nhap 0:');
 while x0 do
 begin
 writeln('nhap gia tri:');
 readln(x);
 end;
readln;
end.
- Sau khi học sinh bổ sung để hoàn chỉnh chương trình ta có thể nhấn mạnh cấu trúc lặp while  do chỉ được thực hiện khi điều kiện đúng và câu lệnh được thực hiện lặp đi lặp lại với số lần lặp chưa biết trước (nó chỉ dừng lệnh lặp khi x nhận giá trị 0 từ bàn phím)
 III. KẾT QUẢ ĐẠT ĐƯỢC:
 Sau đây là kết quả và tỉ lệ trong hai năm học 2013 – 2014 và 2014 – 2015 trước và sau khi thực hiện chuyên đề:
Năm học
Số lượng
Giỏi
Tỉ lệ
Khá
Tỉ lệ
TB
Tỉ lệ 
Yếu
Tỉ lệ
Trước khi thực hiện CĐ
204
55
27.01
54
26.44
72
35.06
23
11.49
Sau khi thực hiện CĐ
174
32
18.63
84
48.04
55
31.37
3
1.96
 IV. MỘT SỐ BÀI TẬP:
Dạng 1: Các chương trình đơn giản
Bài tập 1.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).
a. Hướng dẫn:
- 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.
b. Mã chương trình:
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.
c. Nhận xét: lệnh write cho phép in ra màn hình với con trỏ trên một dòng và trong cùng một chương trình ta có thể sử dụng nhiều lần. Lệnh Readln cho phép nhập giá trị từ bàn phím và máy tính sẽ tự động gán giá trị vào trong biến của chương trình. Có thể định dạng được số in ra bằng cách qui định khoảng dành cho phần nguyên, khoảng dành cho phần thập phân. 
Bài tập 1.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).
a. Hướng dẫn:
- 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.
b. Mã chương trình:
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.
c. Nhận xét: Bài tập 1.2 tiết kiệm được hai biến là CV và S vì lệnh write cho phép in một biểu thức. Trong lập trình việc tiết kiệm biến là cần thiết nhưng đôi lúc gây khó hiểu khi đọc, kiểm tra chương trình. 
Bài tập 1.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).
a. Hướng dẫn:
- 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.
b. Mã chương trình:
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.
c. Nhận xét: pi là hằng số. Một hằng số có thể được người dùng khai báo hoặc do Pascal tự tạo. Pi là hằng do Pascal tự tạo nên người dùng không cần khai báo.
Bài tập 1.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)
a. Hướng dẫn:
- 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 =.
b. Mã chương trình:
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.
c. Nhận xét: Ở đây ta lại hai lần dùng biến trung gian p, s để chương trình sáng sủa, dễ theo dõi. sqrt là hàm có sẵn của turbo pascal. Nó cho phép tính căn bậc hai của một số không âm.
Dạng 2: Cấu trúc rẽ nhánh if .. then else .
Bài tập 2.1:
	Viết chương trình in ra số lớn hơn trong hai số (được nhập từ bàn phím).
a. Hướng dẫn:
Nhập hai số vào hai biến a, b.
Nếu a > b thì in a. Nếu a <= b thì in b.
- Hoặc: Nếu a > b thì in a. Ngược lại thì in b.
b. Mã chương trình:
Program SO_SANH1;
uses crt;
var a,b: real;
begin
 clrscr;
 write('nhap so thu nhat: '); readln(a);
 write('nhap so thu hai: '); readln(b);
 if a> b then writeln(' So lon la:',a);
 if a<= b then writeln(' So lon la:',b:10:2);
 readln
end.
Hoặc:
Program SO_SANH2;
uses crt;
var a,b: real;
begin
 clrscr;
 write('nhap so thu nhat: '); readln(a);
 write('nhap so thu hai: '); readln(b);
 if a> b then writeln(' So lon la:',a:10:2)
 else writeln(' So lon la:',b:10:2);
 readln
end.
c. Nhận xét: Khi hai số bằng nhau thì mỗi số được xem là số lớn. Hãy sửa chương trình để khắc phục yếu điểm này.
	Nói chung nên sử dụng lệnh if  then  else vì chương trình sáng sủa, dễ hiểu hơn. Tuy nhiên trong vài trường hợp sử dụng các lệnh if  then rời lại dễ diễn đạt hơn. Hãy xem ví dụ sau:
Bài tập 2.2:
	Viết chương trình giải phương trình ax + b = 0 (Các hệ số a, b được nhập từ bàn phím).
a.Hướng dẫn:
Nếu a ¹ 0 thì phương trình có nghiệm x = 
Nếu a = 0 và b = 0 thì phương trình có vô số nghiệm
Nếu a = 0 và b ¹ 0 thì phương trình vô nghiệm
Hoặc:
Nếu a = 0 thì xét b. Nếu b = 0 thì phương trình có vô số nghiệm ngược lại (b ¹0) thì phương trình vô nghiệm ngược lại (a ¹0) phương trình có nghiệm x = .
Mã chương trình:
Program Phuong_trinh_2;
uses crt;
var a,b:real;
begin
 clrscr;
 Writeln('CHUONG TRINH GIAI PT ax + b = 0');
 Write('Nhap he so a = ');readln(a);
 Write('Nhap he so b = ');readln(b);
 if (a0) then
 writeln('phuong trinh',a,'x + ',b,'= 0',' co nghiem x =',-b/a:10:2);
 if (a=0) and (b=0) then writeln('Phuong trinh co vo so nghiem');
 if (a=0) and (b0) then writeln('Phuong trinh vo nghiem');
 readln
end.
Hoặc:
Program Phuong_trinh_2;
uses crt;
var a,b:real;
begin
 clrscr;
 Writeln(' CHUONG TRINH GIAI PT ax + b = 0');
 Write('Nhap he so a = ');readln(a);
 Write('Nhap he so b = ');readln(b);
 if (a0) then writeln('phuong trinh',a,'x + ',b,'= 0',' co nghiem x =;',-b/a:10:2)
 else
 if (b=0) then writeln('Phuong trinh co vo so nghiem')
 else
 writeln('Phuong trinh vo nghiem');
 readln
end.
Dạng 3: cấu trúc lặp for  to . Do 
Bài tập 3.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).
a. Hướng dẫn: 
- 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.
b. Mã chương trình:
Program In_So_Le;
Uses crt;
var i,n: integer;
Begin
 Clrscr;
 Write('Nhap so n ='); readln(n);
 For i:=1 to n do if i mod 2 =1 then Write(i:3,',');
 readln
end.
Hoặc
Program In_So_Le;
Uses crt;
var i,n: integer;
Begin
 Clrscr;
 Write('Nhap so n ='); readln(n);
 For i:=1 to n do if i mod 2 0 then Write(i:3,',');
 readln
end.
Nhận xét: Ta có thể thay đổi điều kiện trong cấu trúc if  then. Nhưng kết quả vẫn đúng.
Bài tập 3.2:
	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.
a. Hướng dẫn: 
- 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 dem lên 1
- Nếu dem chia hết cho 15 thì thực hiện xuống dòng (Dùng Writeln).
b. Mã chương trình:
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.
c. Nhận xét: Lệnh writeln không có tham số cho phép xuống hàng.
Nếu có nhận xét trong 30 số thì có 15 số lẻ, ta có thể không cần thêm biến đếm mà chỉ cần kiểm tra biến i để xuống hàng.
Dạng 4: Cấu trúc lặp while . do
Bài tập 4.1:
	Viết chương trình tính n! với n! được định nghĩa như sau:
- n! = 1 với n = 0
- n! = 1.2.3...n (Tích của n số từ 1 đến n).
Yêu cầu: Sử dụng vòng lặp với số lần chưa biết trước:
a. Hướng dẫn:
- Có thể viết lại: n! = n.(n-1)... 3.2.1.
- Lặp gt = gt*n; n = n-1 với điều kiện n>0.
b. Mã chương trình:
Program Giai_Thua_while;
uses crt;
var n, gt:longint;
begin
 clrscr;
 Repeat
 write('Nhap so n: ');readln(n);
 until n>0;
 gt:=1;
 while n>0 do
 begin
 gt:=gt*n;
 n:=n-1;
 end;
 writeln('Giai thua cua n la: ',gt);
 readln
end.
c. Nhận xét: Tiết kiệm được một biến i để chạy nhưng làm thay đổi n nên khi xuất ra chỉ có thể xuất một câu chung chung “Giai thua cua n la:”
Bài tập 4.2: 
Viết chương trình tính tổng n số nguyên được nhập từ bàn phím. Sử dụng cấu trúc while  do 
S = 1 + 2 + 3 + 4 + 5 + ..+ n
a. Hướng dẫn: 
- Dùng lệnh nhập số nguyên n từ bàn phím 
- Để tính tổng ta thực hiện khởi tạo giá trị tổng bàn đầu s à0
 - Xác định điều kiện và công việc lập trong bài toán
- In ra màn hình kết quả tính tổng S
b. Mã chương trình:
Program Tongwhile;
uses crt;
var i,n:integer;
begin
 clrscr;
 write('Nhap so n: ');readln(n);
 s:=0; i:=1;
 while i<=n do
 begin
 s:= s + i;
 i:= i + 1;
 end;
 writeln(‘ket qua tinh tong:’,s);
 readln
end.
Nhận xét: 
Đối với bài này ta có thể sử dụng lệnh lặp for  to  do hoặc while  do. 
Do đề bài yêu cầu sử dụng while  do nên cần xác định điều kiện dừng vòng lặp và công việc thực hiện lặp.
Hướng dẫn học sinh cách xác định kiểu dữ liệu ở phần thân để khai báo cho thích hợp.
Dạng 5: Làm việc với dãy số (mảng)
Bài tập 5.1
	Viết chương trình nhập các phần tử của mảng a gồm n phần tử số nguyên được nhập từ bàn phím ( 0 < n <=100). In ra màn hình các phần tử là số lẻ trong mảng.
a. Hướng dẫn:
- Trước khi nhập các phần tử của mảng phải biết số lượng phần tử của mảng n.
- Công việc nhập từng phần tử lặp đi lặp lại n lần nên sử dụng cấu trúc lặp để nhập từng phần tử từ phần tử thứ 1 à n.
- Sau khi nhập các phần tử của mảng ta cũng phải xét từ phần tử thứ 1 đến thứ n xem phần tử nào không chia hết cho 2 ( tức ? mod 2 0 hoặc ? mod 2 = 1)
b. Mã chương trình:
Program Mang_Le;
uses crt;
var i,n:byte;
 M:array[1..100] of integer;
 begin
 write('Nhap so phan tu cua day: ');readln(n);
 for i:=1 to n do
 begin
 write('M[',i,']'); readln(M[i]);
 end;
 for i:=1 to n do
 if M[i] mod 2 =1 then write(M[i]:6); 
 readln
end.
Nhận xét:
- Cần nhắc nhở học sinh cách khai báo mảng 
- Nhắc lại cấu trúc lặp for  to  do
Bài tập 5.2: Viết chương trình nhập các phần tử của mảng a gồm n phần tử số thực được nhập từ bàn phím ( 0 < n <=100). Tính tổng các phẩn tử trong mảng.
a. Hướng dẫn:
- Trước khi nhập các phần tử của mảng phải biết số lượng phần tử của mảng n.
- Công việc nhập từng phần tử lặp đi lặp lại n lần nên sử dụng cấu trúc lặp để nhập từng phần tử từ phần tử thứ 1 à n.
- Công việc tính tổng cũng được thực hiện khi khởi tạo giá trị tổng ban đầu 
- Việc tính tổng (cộng dồn) từ phẩn từ thứ 1 à n được lặp đi lặp lại nên cũng sử dụng cấu trúc for  to  do
b. Mã chương trình:
Program mang_tong;
uses crt;
var n, i: byte; s:real;
 M: array[1..100] of real;
Begin
 write('Nhap so n: ');readln(n);
 for i:=1 to n do
 Begin
 write('M[',i,']='); readln(M[i]);
 end;
 s:=0;
 for i:= 1 to n do s := s + M[i];
writeln(‘ket qua tinh tong:’, s:6:2);
 readln
end.
PHƯƠNG HƯỚNG THỰC HIỆN VÀ KẾT LUẬN:
 1. Phương hướng
Chuyên đề mang tính chất thiết thực về nội dung vì vậy phương hướng tới là:
- Phải liên kết được các chương trình giải toán khác
- Thực hiện phân tích và xây dựng các bài toán tương tự để có những đề xuất tốt hơn cho bài toán.
- Tiếp tục hoàn thiện sao cho chuyên đề phát huy cao nhất.
2. Kết luận:
 	Trê

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

  • docCHUYEN_DEREN_LUYEN_KI_NANG_LAP_TRINH.doc