SKKN Hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II, chương III

SKKN Hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II, chương III

Tin học là một ngành khoa học có mục tiêu là phát triển và sử dụng máy tính điện tử để nghiên cứu cấu trúc, tính chất của thông tin, phương pháp thu thập, lưu trữ, tìm kiếm, biến đổi, truyền thông tin và ứng dụng vào các lĩnh vực khác nhau của đời sống xã hội. Đối với các em học sinh, có thể nói đây là một “hành trang” để giúp các em vững bước đi tới tương lai - tương lai của một thế hệ công nghệ thông tin bùng nổ!.

Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản. Giáo viên còn phải biết kích thích tính tích cực, sự sáng tạo say mê học hỏi của học sinh trong việc học tập của các em. Bởi vì, việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để đạt các mục tiêu đó.

Chương trình Tin học lớp 11 là một môn học khó, kiến thức thì trải rộng, đòi hỏi các em phải biết vận dụng kiến thức của từng bài sắp xếp một cách lôgíc để lập trình giải một bài toán hoàn chỉnh. Tuy nhiên trong thực tế rất ít học sinh làm được điều đó. Hầu hết các em vận dụng câu lệnh, cú pháp không phù hợp cho yêu cầu của bài tập.

 Vì vậy quá trình dạy và học bộ môn Tin học trong nhà trường phổ thông còn gặp rất nhiều khó khăn. Từ thực tế này tôi muốn chia sẻ một kinh nghiệm nho nhỏ để chúng ta cùng tham khảo trong quá trình dạy học, đó là hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II, chương III.

 

doc 20 trang thuychi01 6073
Bạn đang xem tài liệu "SKKN Hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II, chương III", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
Tiêu đề	 Trang
A. ĐẶT VẤN ĐỀ:	2.
B. NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ:	3.
 1. Cơ sở đề ra biện pháp: 	3.
 2. Biện pháp giải quyết: 	3.
 2.1. Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal: 	4.
 2.2. Các bài tập cơ bản sử dụng cấu trúc điều kiện IF – THEN: 	10.
 2.3. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần biết trước: 	15.
 2.4. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần chưa biết trước:	18.
 3. Tác động của biện pháp: 	19.
 4. Kết quả đạt được:	19.
C. KẾT LUẬN: 	20.
TÀI LIỆU THAM KHẢO:	20.
ĐẶT VẤN ĐỀ:
Tin học là một ngành khoa học có mục tiêu là phát triển và sử dụng máy tính điện tử để nghiên cứu cấu trúc, tính chất của thông tin, phương pháp thu thập, lưu trữ, tìm kiếm, biến đổi, truyền thông tin và ứng dụng vào các lĩnh vực khác nhau của đời sống xã hội. Đối với các em học sinh, có thể nói đây là một “hành trang” để giúp các em vững bước đi tới tương lai - tương lai của một thế hệ công nghệ thông tin bùng nổ!.
Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những kiến thức cơ bản. Giáo viên còn phải biết kích thích tính tích cực, sự sáng tạo say mê học hỏi của học sinh trong việc học tập của các em. Bởi vì, việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về những mục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để đạt các mục tiêu đó. 
Chương trình Tin học lớp 11 là một môn học khó, kiến thức thì trải rộng, đòi hỏi các em phải biết vận dụng kiến thức của từng bài sắp xếp một cách lôgíc để lập trình giải một bài toán hoàn chỉnh. Tuy nhiên trong thực tế rất ít học sinh làm được điều đó. Hầu hết các em vận dụng câu lệnh, cú pháp không phù hợp cho yêu cầu của bài tập. 
	Vì vậy quá trình dạy và học bộ môn Tin học trong nhà trường phổ thông còn gặp rất nhiều khó khăn. Từ thực tế này tôi muốn chia sẻ một kinh nghiệm nho nhỏ để chúng ta cùng tham khảo trong quá trình dạy học, đó là hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II, chương III.
B. NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ:
1. Cơ sở đề ra biện pháp:
Qua việc nghiên cứu các vấn đề về lập trình theo từng dạng bài tập từ cơ bản đến phức tạp của ngôn ngữ lập trình Pascal, các tài liệu về phương pháp giảng dạy. Từ đó, đưa ra các biện pháp lập trình cho học sinh thông qua các ví dụ cụ thể về chương trình lập trình từng phần khác nhau.
Để thực hiện được điều đó, chúng ta cần phải tìm tòi, nghiên cứu tìm ra những bài toán phù hợp, kích thích được sự độc lập, tích cực của học sinh trong học tập. Trên cơ sở đó, học sinh có thể tự mình tìm ra được những ý tưởng sáng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đó các em có thể tự mình hoàn thành được ý tưởng đó.
2. Biện pháp giải quyết:
Qua quá trình giảng dạy để giúp cho học sinh dễ hiểu tôi có một số kinh nghiệm sau:
- Trước hết phải giúp các em nắm vững về lý thuyết, tính nguyên tắc và logíc của một bài lập trình. Cách đặt tên chương trình, tên biến: ví dụ quá 8 kí tự ta cần dùng dấu gạch nối xen giữa, bài lập trình nào thì cần dùng câu lệnh gán phối hợp với công thức của toán học để tính, bài lập trình nào thì cần dùng câu lệnh If  then, for  to  do , while ... do.
- Hướng dẫn học sinh lập trình đi từ bài dễ tới khó.
- Để lập trình tốt yêu cầu các em nắm vững công thức của toán học để chuyển đổi thành biểu thức của Pascal. Cho học sinh ghi lại một số công thức cơ bản trong toán học như : 
Tính biểu thức : TBP= (a+b)2
 Khi đó viết biểu thức trong Pascal là: TBP := a*a + 2*a*b+b*b;
Tính diện tích hình vuông : dientich = canh x canh
 Khi đó viết biểu thức trong Pascal là: S:= canh* canh;
Tính chu vi tam giác: Chuvi = canh a + canh b + canh c 
 Khi đó viết biểu thức trong Pascal là: CV := a+b+c; 
- Ngoài ra, phải có biện pháp khuyến khích động viên các em như thưởng điểm, khen trước lớp, hoặc những em có tư duy lập trình tốt cùng với thầy hướng dẫn những em học yếu trong lớp từ đó để kích thích sự sáng tạo kích thích bộ môn trong học tập.
2.1. Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal.
 a. Cấu trúc chung bài lập trình:
 [ ];
 ;
Trong đó: Phần khai báo có thể có hoặc không và phần thân chương trình bắt buộc phải có.
- Phần khai báo: Có thể khai báo cho: Tên chương trình, thư viện, hằng, biến và chương trình con.
- Phần thân chương trình: Dãy lệnh trong phạm vi được xác định bởi cặp dấu hiệu mở đầu và kết thúc. 
Cấu trúc của phần thân chương trình:
	Begin
	[]
	End.
 b. Cách đặt tên, cú pháp khai báo tên các thư viện, khai báo biến, câu lệnh nhập dữ liệu vào từ bàn phím, câu lệnh hiển thị kết quả ra màn hình, câu lệnh gán.
- Cách đặt tên: 
Tên không trùng với từ khóa ví dụ tên đặt begin là sai. Vậy từ khóa là : Program, uses, var, begin. End
Tên đặt nhiều hơn 8 kí tự dùng dấu gạch nối xen giữa và không dài quá 127 kí tự.
Tên đặt bằng tiếng việt không dấu, không sử dụng dấu cách
- Cú pháp khai báo tên chương trình: Program ;
 - Cú pháp khai báo tên các thư viện:
Uses ;
 Ví dụ khai báo thư viện Crt, graph  là: Uses Crt, graph;
 - Cú pháp khai báo hằng: 
Const ;
Ví dụ khai báo hằng gia tốc của một vật rơi tự do là: Const g = 9.8;
 - Cú pháp khai báo biến: 
Var ;
Ví dụ khai báo biến cho bài toán tính diện tích và chu vi hình chữ nhật khi biết chiều dài và chiều rộng nhập từ bàn phím là các số nguyên thì:
Var cd, cr, p, s : integer;
Kiểu dữ liệu: số nguyên là (byte, word, integer, longint), số thực (real, extended), 
- Câu lệnh nhập dữ liệu vào từ bàn phím:
Read(); hoặc Readln();
Ví dụ: readln(cd, cr);
- Câu lệnh hiển thị dữ liệu ra màn hình:
Write(); hoặc Writeln(); Ví dụ: hiển thị Trường THPT Le Van Huu ra màn hình thì ta có lệnh là: Writeln(’Trường THPT Le Van Huu’); 
- Câu lệnh gán là tính toán giá trị biểu thức bên phải được kết quả cuối cùng thì gán cho tên biến phía bên trái là:
 := ;	ví dụ: a:=9;	b:=a*3;
 c. Các phép toán số học, các hàm cơ bản:
- Các phép toán số học cơ bản: +, -, * (phép nhân), / (phép chia).
- Các hàm cơ bản: 
Hàm ABS(x): hàm tính giá trị tuyệt đối cho số thực hoặc số nguyên.
Hàm SQR(x): hàm tính bình phương cho số thực hoặc số nguyên.
Hàm SQRT(x): hàm tính căn bậc hai cho số thực hoặc số nguyên.
Hàm Ln(x) tính lôgarit tự nhiên của x (x là số thực).
Hàm Exp(x), sin(x), cos(x) tính lôgarit tự nhiên của x (x là số thực).
 d. Một số bài tập áp dụng lý thuyết trên:
Bài 1: Dựa vào cấu trúc bài lập trình sắp xếp các lệnh sau để thành một bài lập trình tính giá trị s=a+b;
Các lệnh cho như sau: Program tinh_tong; a:=12; b:=88; begin 
readln end. s:=a+b; writeln(’tong s=’, s); Var a,b,s:integer;
Hướng dẫn:
Program Tinh_tong;
Var a,b,s:integer;
 Begin
a:=12; 
b:=88; 
s:=a+b; 
writeln(’tong s=’, s);
readln 
 End.
Bài 2: Lập chương trình gán biến a=9, biến b=10 và tính tổng, tích, hiệu của b với a. Cho kết quả hiển thị trên màn hình.
Hướng dẫn:
Program Tinh_tong_tich_hieu;
	Var a,b,tong,tich,hieu:byte;
	Begin
 a:= 9; b:= 10;
	tong:= b+a;
	tich:= b*a;
	hieu:= b-a;
	writeln(’tong =’,tong:5, ’ tich=’, tich:5, ’hieu=’,hieu);
	readln
	end.
Bài 3: Lập chương trình nhập vào chiều dài và chiều rộng hình chữ nhật, tính chu vi và diện tích hình chữ nhật đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn:
- Giải thuật:
+ Nhập chiều dài và chiều rộng của hình chữ nhật (nhập vào dưới dạng biến chứ không phải dạng hằng số cụ thể)
+ Công thức tính chu vi của hình chữ nhật là: (chiều dài + chiều rộng) x 2.
+ Công thức tính diện tích của hình chữ nhật là: chiều dài x chiều rộng.
+ Thông báo chu vi và diện tích tính được ra ngoài màn hình.
- Chương trình: 
Program Tinh_chuvi_dientich_ HCN;
	Var cd,cr, p, s : integer;
	Begin
	 Write(’moi nhap chieu rong va chieu dai hinh chu nhat:’);
 	Readln(cr,cd);
	 p:=(cr+cd)*2;
	 s:=cd*cr;
	 Wrietln(’chu vi hinh chu nhat:’, p);
	 Writeln(’dien tich hinh chu nhat:’,s);
 Readln
End.
Bài 4: Lập chương trình nhập vào cạnh hình vuông, tính chu vi và diện tích hình vuông đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn Lập trình tương tự như bài 3: 
	Chu vi tính	P:=canh*4; 
	Diện tích tính	S:=canh*canh;
 Bài 5: Lập chương trình nhập vào ba cạnh của một tam giác, tính chu vi và diện tích hình tam giác đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn Lập trình tương tự như bài 3: 
	Chu vi tính	CV:=a+b+c; 
	Nửa chu vi tính	p:=CV/2;
	Diện tích tính	S:=SQRT(p(p-a)*(p-b)*(p-c));
Bài 6: Lập chương trình nhập vào bán kính đường tròn R, tính chu vi và diện tích đường tròn đó, cho kết quả hiển thị lên màn hình:
Hướng dẫn:
- Giải thuật:
+ Nhập vào bán kính đường tròn (là biến R chứ không phải một số cụ thể).
+ Công thức tính chu vi đường tròn: cv = r x 2 x 3.14.
+ Công thức tính diện tích hình tròn: s = 3.14 x r x r.
- Chương trình:
Program Tinh_chuvi_dientich_ hinhtron;
	Const pi=3.14;
	Var r,cv,dt : Real; {real la so thuc}
	Begin
	Write(’moi nhap ban kinh hinh tron:’);
	Readln(r);
	cv:= 2*pi*r;
	dt:=pi*r*r;
	Wrietln(’chu vi hinh chu nhat: ’, cv:10:1); {cv:10:1 de doc ket qua}
	Writeln(’dien tich hinh chu nhat: ’,dt:10:1);
 Readln
End.
Bài 7: Lập chương trình tính và đưa ra màn hình vận tốc V khi chạm đất của một vật rơi từ độ cao h, biết rằng v=, trong đó g là gia tốc rơi tự do và g=9.8m/s2. Độ cao h(m) được nhập vào từ bàn phím. Tính xong cho kết quả v hiển thị lên màn hình lấy tròn 3 số thập phân.
Hướng dẫn:
- Giải thuật:
+ Nhập vào độ cao mà vật đó rơi (là một biến h)
+ Theo yêu cầu của đề bài là lấy tròn 3 chữ số thập phân nên chúng ta tham khảo lại mục 2 bài số 7 Sách giáo khoa để làm cho chính xác.
- Chương trình:
Program Tinh_vantoc;
	Const g=9.8;
	Var v,h : Real; 
	Begin
	Write(’moi nhap chieu cao h:’);
	Readln(h);
	v:= sqrt(2*g*h);
	Writeln(’Van toc vat luc cham dat v=:’,v:10:3);
 Readln
End.
 Bài 8: Cho biết kết quả hiển thị ra màn hình khi thực hiện chương trình sau:
 Program tim_hieu;
 Var a,b,hieu:integer;
 Begin
	a:=4;
	b:=3;
	Hieu:= a*a – 2*a*b + b*b;
 Writeln(’hieu binh phuong =’, hieu);
	Readln
 End.
Hướng dẫn: 
- Chương trình Pascal chạy theo trình tự từ trên xuống dưới và từ trái qua phải. Do vậy kết quả thu được khi chạy chương trình bài 8 là:
	hieu binh phuong = 1
- Các bài toán chạy chương trình nên tính toán kết quả câu lệnh gán, đoạn lập trình và đối chiếu câu lệnh hiển thị writeln để đưa ra kết quả.
2.2. Các bài tập cơ bản sử dụng cấu trúc điều kiện IF - THEN
	- Để có thể giúp học sinh nắm bắt được các kiến thức cấu trúc điều kiện ta có thể hình dung như sau:
	a. Cú pháp If - Then và ý nghĩa:
	Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh If - Then. Với hai dạng thiếu và đủ :
	Dạng 1: Cấu trúc rẽ nhánh dạng thiếu:
	If Then ;
Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh sau từ khóa then được thực hiện. Nếu điều kiện có giá trị sai thì câu lệnh sau từ khóa then không được thực hiện.
Ví dụ: If 9>3 Then Writeln(’ban lam toan rat tot!’);
Dạng 2: Cấu trúc rẽ nhánh dạng đầy đủ:
	If Then 
	Else ;
Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh 1 sau then được thực hiện và bỏ qua câu lệnh 2. Nếu điều kiện có giá trị sai thì câu lệnh 2 sau từ khóa Else được thực hiện và bỏ qua câu lệnh 1.
Ví dụ: If 9<3 Then wrietln(’ Ban di hoc toan ’)
 Else writeln(’ ban di hoc ly ’);
Lưu ý: - Câu lệnh rẽ nhánh dạng đầy đủ lệnh đứng trước ELSE không sử dụng dấu chấm phẩy (;).
- If, Then, Else: là các từ khóa của pascal không sử dụng đặt tên biến, tên hằng và tên chương trình.
- Nếu sau từ khóa Else từ hai lệnh trở mà muốn thực hiện cùng lúc thì phải đưa vào giữa begin và end; → Lệnh này được coi là một lệnh ghép.
- Nếu sau Then hoặc Else chỉ có một lệnh gọi là lệnh đơn. 
- Lệnh: Có thể là câu lệnh gán, nhập, hiển thị
	b. Một số bài tập áp dụng câu lệnh If – Then.
Bài 1: Sắp xếp các lệnh sau thành một chương trình hoàn chỉnh:
Begin 	
Var a,b: integer;
	Write(’Nhap vao hai so a,b:’);
	Readln(a,b);
	Writeln(’so a lon hon so b:’)
	Writeln(’so b lon hon so a:’);
If a>b then
Else
Program Tim_solon_sobe;
Readln 
End.
Hướng dẫn:
Program Tim_solon_sobe;
Var a,b:integer;
Begin
 Writeln(’moi nhap hai so a,b:’);
 Readln(a,b);
 If a>b then writeln(’So a lon hon so b:’)
 Else	
Writeln(’so b lon hon so a:’);
 Readln
End.
Bài 2: Cho biết kết quả hiển thị ra màn hình khi thực hiện chương trình sau:
Prgram xet_so;
Var a,b:integer;
Begin
 a:= -13;	
 b:=a*a – 169;
 If b=0 then Writeln(’Ket qua bieu thuc b=0’);
 If b>0 then writeln(’Ket qua bieu thuc b lon hon 0’);
 If b<0 then writeln(’Ket qua bieu thuc b nho hon 0’);
 Readln
End.
Hướng dẫn:
- Chương trình Pascal thực hiện theo quy tắc: đi từ trên xuống dưới và từ trái qua phải, trong chương trình có sử dụng câu lệnh rẽ nhánh có điều kiện (If  then) do vậy sau khi chạy chương trình trên có kết quả là:
	Ket qua bieu thuc b=0.
Bài 3: Lập chương trình nhập vào một số nguyên khác 0. Cho biết bạn vừa nhập số nguyên đó là số âm hay số dương, hiển thị kết quả lên màn hình.
Hướng dẫn:
- Giải thuật:
+ Nhập vào một số nguyên bất kỳ (nhập dưới dạng biến số).
+ Để kiểm tra là số âm hay số dương thì chúng ta so sánh số đó với 0:
	. Nếu số đó lớn hơn 0: là số nguyên dương.
	. Nếu số đó bé hơn 0: là số nguyên âm.
+ Thông báo kết quả ra màn hình. 
- Chương trình:
Program Nhap_xet_so;
Var so:integer;
Begin
 Writeln(’moi vao mot so nguyen khac 0:’); Readln(so);
If so < 0 then writeln(’ so ban vua nhap la so am’);
If so > 0 then writeln(’ so ban vua nhap la so duong’);
 Readln
End.
Bài 4: Hãy lập chương trình nhập vào hai hệ số a và b. Cho biết Nghiệm của phương trình ax+b=0.
Hướng dẫn:
- Giải thuật:
+ Nhập vào hệ số a, b (nhập dưới dạng biến số)
+ Phương trình ax + b có a và b đều là tham số và a, b bình đẳng nhau nên chúng ta phải xét tất cả các trường hợp có thể xảy ra của biến a và biến b.
	TH 1: Nếu a= 0 thì bài toán suy biến thành b = 0. do vậy:
	. Nếu b = 0 thì phương trình vố số nghiệm.
	. Nếu b khác 0 thì phương trình vô nghiệm.
	TH2: Nếu a khác 0 thì phương trình có nghiệm x = -b/a.
Qua phân tích trên thì đây là bài toán sử dụng câu lệnh rẽ nhánh có điều kiện.
+ Thông báo kết luận của từng trường hợp ra ngoài màn hình.
- Chương trình:
Program gptbn;
Var a,b,x:real;
Begin
 Writeln(’moi nhap vao hai so a va b:’);
 Readln(a,b);
If (a=0) and (b=0) then 
 writeln(’phuong trinh bac nhat co vo so nghiem’); 
If (a=0) and (b0) then 
writeln(’phuong trinh bac nhat vo nghiem’);
	 If a0 then
	 Begin
	x:= -b/a;
	Writeln(’phuong trinh bac nhat co mot nghiem x:’, x:10:1);
	 End;
 Readln;
End.
Bài 5: Hãy lập chương trình nhập vào ba hệ số a,b,c (a khác 0). Cho biết nghiệm của phương trình bậc hai ax2+bx+c=0. 
Hướng dẫn:
- Giải thuật:
+ Nhập vào hệ số a, b, c (nhập dưới các biến số).
+ Do đề bài yêu cầu a 0 do vậy đây là phương trình bậc 2 và giải thuật bài này là chúng ta tính delta và xét các trường hợp của delta để tính ra nghiệm.
+ Thông báo các kết luận về nghiệm theo yêu cầu của đề bài ra màn hình.
- Chương trình:
Program gptb2;
Var a,b,c,x1,x2,x,delta:real;
Begin
 Writeln(’moi nhap vao ba so a va b, c:’);
 Readln(a,b,c);
 delta:=b*b-4*a*c;
	 If delta<0 then
	 Writeln(’phuong trinh bac hai vo nghiem);
	 If delta=0 then 
	 Begin
	 x:=-b/(2*a);
	 Writeln(’phuong trinh bac hai co mot nghiem x1=x2=’,x:10:1);
	 End;
	 If delta <0 then 
	 Begin
	 x1:=(-b-sqrt(delta))/(2*a);
 x2:= (-b+sqrt(delta))/(2*a);
	 Writeln(’phuong trinh bac hai co nghiem thu nhat x1=’,x1:10:1);
 	 Writeln(’phuong trinh bac hai co nghiem thu hai x2=’,x2:10:1);
	End;
 Readln;
End.
2.3. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần biết trước:
	- Câu lệnh For tiến.
	- Câu lệnh For lùi.
	- Để có thể giúp học sinh nắm bắt được các kiến thức câu lệnh lặp với số lần biết trước ta cần nắm vững lý thuyết sau:
	Dạng 1: Câu lệnh For tiến.
	For := to do ;
	Trong đó: 	· For (lặp), To (tới), Do (làm) là các từ khóa của Pascal.
	· Biến đếm : Là một biến đơn, kiểu nguyên.
	· Giá trị đầu, giá trị cuối: Là những con số nguyên, một đoạn số nguyên liên tục: chẳng hạn như 1 đến 100, -10 đến 10, 
	Ví dụ: For i:=1 to 100 do write(i:4); {Hiển thị số từ 1 đến 100}
	·	Câu lệnh là một lệnh đơn hoặc lệnh ghép (lệnh ghép là sau do nếu yêu cầu thực hiện cùng lúc từ hai lệnh trở lên thì đặt vào giữa begin và end;)
	Ý nghĩa: Biến đếm nhận giá trị đầu kiểm tra nhỏ hơn hoặc bằng giá trị cuối thì đi thực hiện sau do. Sau đó biến đếm tự động tăng lên một đơn vị thì cũng phải kiểm tra tương tự như trên nếu đúng đi thực hiện câu lệnh sau do. Nếu sai thoát khỏi vòng lặp for tiến.
	- Một số bài tập cơ bản:
Bài 1: Sắp xếp các lệnh sau đây thành một bài lập trình hoàn chỉnh trong pascal để thực hiện hiển thị các số từ 1 2 3 4 5 mỗi số cách nhau 3 khoảng cách trắng.
Var i:integer;
End.
Readln
Begin
Clrscr;
Uses crt;
For i:=1 to 5 do
Write(i:4)
Hướng dẫn:
Uses crt;
Var i:integer;
Begin
 Clrscr;
 For i:=1 to 5 do
 Write(i:4);
 readln
End.
Bài 2: Sắp xếp các lệnh sau đây để tạo thành một bài lập trình. Cho biết bài lập trình đang giải quyết bài toán nào? Phát biểu bài toán đó.
Program tinh;
Var i, s:integer;
Begin
Readln;
End.
For i:=1 to 20 do
S:=0;
S:=s+i;
Writeln(’s=’,s);
Hướng dẫn:
Program tinh;
Var i,s:integer;
Begin
 s:=0;
 For i:=1 to 20 do
 s:=s+i;
 Writeln(’s=’,s);
 Readln 
End.
Bài lập trình thực hiện tính tổng s các số trong đoạn [1..20] và cho hiển thị kết quả s ra màn hình. Phát biểu như sau:
Phát biểu bài toán: Em hãy lập trình tính tổng của các số từ 1 đến 20. Cho hiển tổng vừa tính ra màn hình.
Bài 3: Em hãy lập chương trình nhập vào một số nguyên dương n. Tính tổng các số nguyên từ 1 đến n. Cho hiển thị tổng ra màn hình.
Hướng dẫn:
Program tính_tong;
Var i,n :integer;
 s:real;
Begin
 write(‘moi nhap so nguyen duong n’);
 Readln(n);
	 s:=0;
	 For i:=1 to n do s:=s+i;
	 Writeln(’tong s=’,s);
 Readln
End.
Bài 4: Em hãy lập chương trình nhập vào một số nguyên dương n. Tính tổng s=2+4+..+2n. Cho hiển thị tổng s ra màn hình.
Hướng dẫn:
Program tính_tong;
Var i, n :integer; s:real;
Begin
 Write(’moi nhap so nguyen duong n’); Readln(n);
 s:=0;
 For i:=2 to 2*n do
 If i mod 2 = 0 then s:=s+i; {A}
 Writeln(’tong s=’,s);
 Readln
End.
Gợi ý cho bài toán: Nhập số nguyên dương n tính s=1+3++2n-1.
Ta chỉ sửa bài lập trình chỗ câu lệnh {A}: if i mod 2= 1 then s:=s+i; từ bài tập trên.
Vòng lặp For lùi. Cách làm tương tự nhưng cho chạy từ giá trị cuối và giảm dần tới giá trị đầu.
Ví dụ 1: S:=0;
For i:=100 downto 1 do S:=S+i; {tính giá trị tổng s đoạn [..100]}
Ví dụ 2: S:=0 
For i:=n downto 1 do S:=S+i; {tính giá trị tổng s đoạn [1..n]}
 2.4. Các bài tập cơ bản sử dụng câu lệnh lặp với số lần chưa biết trước:
- Để có thể giúp học sinh nắm bắt được các kiến thức câu lệnh lặp với số lần biết trước ta cần nắm vững lý thuyết sau:
While Do ;
Trong đó: 	+ While, Do là các tên dành riêng của Pascal
+ Điều kiện lag biểu thức logíc.
	+ Câu lệnh là một câu lệnh đơn hoặc ghép.
Ý nghĩa: Câu lệnh sẽ kiểm tra xem nếu Điều kiện đúng thì sẽ thực hiện câu lệnh. Sau một vòng lặp thì chúng ta phải có thao tác tăng hoặc giảm biến để cho Điều kiện sẽ bị sai sau một số vòng lặp.
Một số bài cơ bản:
Bài 1: Hãy lập chương trình nhập vào 2 số nguyên dương n và x. Tính lũy thừa Nx.
Hướng dẫn:
Program Luy_thua;
Var x,n,tich,luythua : Integer;
Begin
 Writeln(’ Nhap vao so nguyen duong N va X: ’); readln(n,x);
 tich:= 1;
luythua:= 1;
While luythua <= n do
 Begin
 tich:= tich * x;
 luythua:= luythua + 1;
 End;
Writeln(’ N luy thua x la ’,tich);
 readln
End.
3. Tác động của biện pháp:
	Trong quá trình thử nghiệm đề tài bản thân tôi cũng gặp nhiều khó khăn. Là một trường huyện xét tuyển đầu vào lớp 10 chưa thực sự cao, những lớp tôi phụ trách lực học của các em không đồng đều. Để khắc phục điều đó tôi cho các em ghi lại các công thức toán học liên quan tới lập trình giải các bài toán trong tin học, rồi hướng dẫn chuyển đổi từ biểu thức toán học sang biểu thức ngôn ngữ lập trình pascal. Ghi từng từ khóa, câu lệnh, cấu trúc giải thuật cơ 

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

  • docskkn_huong_dan_lap_trinh_giai_mot_so_dang_bai_tap_co_ban_chu.doc