Tải bản đầy đủ
b. Một số bài tập áp dụng câu lệnh If – Then.

b. Một số bài tập áp dụng câu lệnh If – Then.

Tải bản đầy đủ

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
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

11

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¹m Anh Tïng – Trêng THPT Lª V¨n Hu

12

+ 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 (b<>0) then
writeln(’phuong trinh bac nhat vo nghiem’);
If a<>0 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:
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

13

+ 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.

Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

14

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;

Clrscr;

End.

Uses crt;

Readln

For i:=1 to 5 do

Begin

Write(i:4)

Hướng dẫn:
Uses crt;
Var i:integer;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

15

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;

For i:=1 to 20 do

Var i, s:integer;

S:=0;

Begin

S:=s+i;

Readln;

Writeln(’s=’,s);

End.
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.
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

16

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.

Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

17

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 <Điều kiện> 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;
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

18

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ơ bản của từng
bài tập theo từng chương cụ thể. Cho các em lập chương trình nhiều lần với bài
tập dễ. Khi thành thạo sẽ hướng dẫn các em lập trình giải các bài toán khó hơn.
Với cách làm trên tôi đã hướng dẫn được hầu hết các em thành thạo được
phương pháp lập trình của các dạng toán đơn giản nhất trong chương trình tin
học 11 phần chương II, III.
4. Kết quả đạt được:
Trong học kỳ 1 được phân công giảng dạy các lớp 11B1, 11B3. Trong quá
trình giảng dạy, tôi đã tiến hành thưc nghiệm ở lớp 11B3 và lớp đối chứng là
lớp 11B1. Kết quả xếp loại môn Tin học trong học kì 1 năm học 2015 - 2016
giữa 2 lớp 11 có kết quả như sau :
Số HS
được
đánh
giá

SL

11B1

37

8

11B3

38

Lớp

Giỏi
TL

Trung
bình

Khá
SL

TL

Yếu

Kém

SL

TL

SL

TL

SL TL

21,62% 25 67,57%

4

10,81%

0

0%

0

0%

10 26,32% 21 55,26%

7

18,42%

0

0%

0

0%

C. KẾT LUẬN:
Trên đây là một số biện pháp lập trình chương trình mà tôi đã tiến hành
thực hiện tại tại một số lớp tôi phụ trách, kết quả bước đầu có nhiều khả quan,
đa số các em đã biết phương pháp lập trình và vận dụng vào giải các bài tập
Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

19

khác nhau. Điều quan trọng, hầu hết các em hứng thú với bộ môn và có thái độ
nghiêm túc khi thực hành. Do thời gian hạn chế, trong sáng kiến kinh nghiệm
này không tránh khỏi những sai sót về chính tả, rất mong đồng nghiệp góp ý để
bài sáng kiến kinh nghiệm hoàn thiện hơn. Đồng thời tôi mong rằng với chút ít
kinh nghiệm của mình có thể góp phần nhỏ trong việc giảng dạy để nâng cao
chất lượng bộ môn. Tôi xin chân thành cảm ơn!
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ

Thiệu Hóa, ngày 19 tháng 5 năm 2016
CAM KẾT KHÔNG COPY

Phạm Anh Tùng

TÀI LIỆU THAM KHẢO
-------1. Sách giáo khoa tin học 11 - Nhà xuất bản Bộ giáo dục - tác giả Hồ Sĩ Đàm
(chủ biên).
2. Giới thiệu giáo án tin học 11 - Nhà xuất bản Hà Nội 2007 - tác giả Nguyễn
Hải Châu, Quách Tấn Kiên (chủ biên).
3. Giải bài tập tin học 11 - Nhà xuất bản Hải Phòng. Tác giả Nguyễn Công
Tuấn.

Ph¹m Anh Tïng – Trêng THPT Lª V¨n Hu

20