Tạo hứng thú học tập khi vận dụng cấu trúc rẽ nhánh, cấu trúc lặp để giải một số bài tập cơ bản về toán tin - Pdf 57

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ

TRƯỜNG THPT NGA SƠN

SÁNG KIẾN KINH NGHIỆM

TẠO HỨNG THÚ HỌC TẬP KHI VẬN DỤNG CẤU TRÚC RẼ
NHÁNH, CẤU TRÚC LẶP ĐỂ GIẢI MỘT SỐ BÀI TẬP CƠ
BẢN VỀ TOÁN-TIN

Người thực hiện: Nguyễn Thị Thoan
Chức vụ:
Giáo viên
SKKN thuộc lĩnh vực môn: Tin Học

THANH HOÁ NĂM 2018


MỤC LỤC
NỘI DUNG
1. Mở đầu.............................................................................................
1.1 Lí do chọn đề tài......................................................................
1.2 Mục đích nghiên cứu...............................................................
1.3 Đối tượng nghiên cứu.............................................................
1.4 Phương pháp nghiên cứu........................................................
2. Nội dung của sáng kiến kinh nghiệm..........................................
2.1 Cơ sở lý luận của sáng kiến kinh nghiệm.................................
a. Cấu trúc rẽ nhánh dạng thiếu.....................................................
b. Câu lệnh ghép.............................................................................
c. Cấu trúc lặp với số lần biết trước...............................................
d. Cấu trúc lặp với số lần chưa biết trước......................................


1.Mở đầu
1.1. Lí do chọn đề tài.
Sự phát triển của khoa học công nghệ hiện đại đã đặt giáo dục vào thử thách
mới, đó là nhằm đào tạo ra thế hệ tương lai vừa có phẩm chất, vừa phải có năng lực
tiếp cận khoa học hiện đại để hội nhập với xu thế chung của xã hội. Do vậy giáo
dục phổ thông nước ta đang thực hiện bước chuyển từ chương trình giáo dục tiếp
cận nội dung sang tiếp cận năng lực người học, nghĩa là từ chỗ quan tâm đến việc
học sinh học được cái gì đến chỗ quan tâm học sinh làm được cái gì qua việc học.
Để đảm bảo điều đó, nhất định phải thực hiện thành công việc chuyển từ phương
pháp dạy nặng về truyền thụ kiến thức sang dạy cách học, cách vận dụng kiến thức,
rèn luyện kĩ năng, hình thành năng lực phẩm chất, đồng thời phải chuyển cách đánh
giá kết quả giáo dục từ nặng về kiểm tra trí nhớ sang kiểm tra, đánh giá năng lực
vận dụng kiến thức giải quyết vấn đề kịp thời nhằm nâng cao chất lượng của các
hoạt động dạy học và giáo dục.
Bộ môn tin học THPT thường ít được quan tâm, yêu thích vì nó không thuộc tổ
hợp môn thi đại học nào. Tin học đối với học sinh là môn khó đặc biệt là chương
trình tin 11 vì kiến thức lập trình đối với đa số học sinh là khó tiếp cận. Trong
nhiều năm giảng dạy tôi thấy việc tạo hứng thú cho học sinh yêu thích môn lập
trình Pascal trong chương trình tin học 11 là một việc làm rất cần thiết và cần đầu
tư. Thực tế các em thường yêu thích môn toán vì môn toán nằm trong nhiều tổ hợp
thi đại học do vậy tôi đưa ra sang kiến vận dụng ngôn ngữ lập trình Pascal giải các
bài toán mà các em yêu thích. Sáng kiến kinh nghiệm “Tạo hứng thú học tập khi
vận dụng cấu trúc rẽ nhánh, cấu trúc lặp để giải một số bài tập cơ bản về ToánTin” minh chứng cho ứng dụng của ngôn ngữ lập trình Pascal mà học sinh có thể
nhìn thấy và nhận ra ngay đồng thời tôi muốn gửi tới các bạn đồng nghiệp một chút
kinh nghiệm của bản thân để học sinh thật sự yêu thích môn tin học mà cụ thể là
ngôn ngữ lập trình Pascal.
1



học được xem là yêu cầu bắt buộc đối với bất cứ ai làm công tác giảng dạy, đối với
bất cứ môn học nào
2.1 .Cơ sở lí luận
Theo định lí Bohn Jacopini (Bon Ja_co_pi_ni)1: Mọi quá trình tính toán đều có
thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản là cấu trúc tuần tự, cấu trúc rẽ
nhánh và cấu trúc lặp. Do vậy học sinh cần nắm được các cấu trúc sau:
a1. Cấu trúc rẽ nhánh.
 Cấu trúc rẽ nhánh dạng thiếu:
if <điều kiện> then <câu lệnh>;
 Cấu trúc rẽ nhánh dạng đủ:
if <điều kiện> then <câu lệnh> else <câu lệnh2>;
Trong đó:
- Điều kiện là biểu thức logic, nhận giá trị TRUE hoặc FALSE
- Câu lệnh, câu lệnh1, câu lệnh 2 là một câu lệnh của Pascal .
b1. Câu lệnh ghép
Begin
< các câu lệnh>;
End;
Câu lệnh, câu lệnh 1, câu lệnh 2 trong các câu lệnh if …then ở trên có thể là câu
lệnh ghép.
c1. Cấu trúc lặp với số lần biết trước và câu lệnh for-do
 Dạng lặp tiến:
For<biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
 Dạng lặp lùi:
For<biến đếm>:=< giá trị cuối> downto<giá trị đầu>do<câu lệnh>;

3


Trong mục 2.1 Định lí Bohn Jacopini, cấu trúc rẽ nhánh, câu lệnh ghép, cấu trúc lặp với số lần

Cấu trúc lặp với số lần chưa biết trước và câu lệnh While –do được tham khảo từ TLTK số 1

a. Một số bài tập vận dụng cấu trúc rẽ nhánh:
Bài toán 16: Lập trình giải phương trình bậc 2: ax2+bx+c=0 (a �0).
Tôi đưa ra bài toán giải phương trình bậc 2 vì với các em thuật toán này khá
quen thuộc bước đầu các em dễ dàng vận dụng cấu trúc rẽ nhánh để viết chương
trình.
Xác định bài toán:
Input: Nhập các hệ số a,b,c (a �0);
Output: Thông báo nghiệm của phương trình.
Ý tưởng:
 b2-4ac
Sai

Đúng
kiểm tra
r>=0

Thông báo vô
nghiệm

Tính và đưa ra
nghiệm phương
trình

Kết thúc
Vận dụng cấu trúc if…then đưa ra chương trình:
Program ptbac2;
Uses crt;
Var a,b,c,delta, x1,x2: real;

toán học các em dễ dàng vận dụng nó trong lập trình. Nếu một tọa độ điểm (x,y)
thỏa mãn phương trình hàm số đã cho thì thông báo điểm đó thuộc đồ thị còn
6


không thông báo điểm đó không thuộc đồ thị.
Bài toán 2 được tham khảo từ TLTK số 6

Chương trình:
Program Hamso;
Var y,x:real;
Begin
Writeln('Nhap vao toa do diem can kiem tra');
Write(' nhap x,y '); read(x,y);
If y=3*sqr(x)-2*x +1 then
Write('Diem co toa do (',x,',',y,') thuoc do thi ham so')
Else Write('Diem co toa do (',x,',',y,') khong thuoc do thi ham so');
Readln;
End.
Thông qua chương trình này giáo viên có thể phát triển cho học sinh nhìn thấy
ứng dụng của tin học trong môn toán. Đối với các hàm số bất kì khác ta đều kiểm
tra được một điểm có thuộc đồ thị đã cho hay không?
Bài toán 36: Giải hệ phương trình:
a1x  b1y  c1

a2x  b2y  c2
Xác định bài toán:
Input: Nhập các hệ số của hệ phương trình a1,a2,b1,b2,c1,c2
Output: Nghiệm của hệ phương trình
Để lập trình giải được bài toán hệ phương trình hai ẩn yêu cầu học sinh nhớ lại

writeln('he co nghiem duy nhat');
writeln('x=', dx/d:4:2, 'va y=', dy/d:4:2);
8


end;
readln;
end.
Thông qua chương trình này học sinh sẽ được khắc sâu và hiểu rõ hơn về
cấu trúc If .. Then .. Else cũng như sự hoạt động tuần tự của máy tính khi thực
hiện chương trình.
Bài toán 43: Bài 3/18 Sách bài tập tin 11.
Cho ba số nguyên m, n, k. Nếu ba số này theo thứ tự nhập vào tạo thành một cấp số
cộng thì tăng gấp đôi mỗi số, trong trường hợp ngược lại thì giảm mỗi số một đơn
vị. Viết chương trình thực hiện yêu cầu trên
Xác định bài toán:
Input: m,n,k là các số nguyên
Output: Kết luận m,n,k có là cấp số cộng hay không?
Với bài tập này học sinh được luyện cấu trúc rẽ nhánh đủ dựa trên nền tảng kiến
thức toán học về cấp số cộng. Giáo viên hỏi học sinh về tính chất của cấp số cộng.
Nếu 3 số m, n, k theo thứ tự tạo thành một cấp số cộng thì ta có điều gì? Học sinh
trả lời 2*n=(m-k); áp dụng để viết chương trình
Chương trình:
Program bai3_18sachbttin;
Var m,n,k: integer;
Begin
Write('nhan m,n,k');
Read(m,n,k);
If 2*n=(m+k) then
Begin

- Trường hợp tìm giao với trục hoành gán x=0 ta dễ dàng tính được y
- Trường hợp giao với trục tung tức y=0. Tương đương với việc giải một phương
trình bậc hai tìm nghiệm x. Nếu phương trình không có nghiệm thì hàm số
không giao với trục hoành. Nếu phương trình có 1 nghiệm hoặc 2 nghiệm phân
10


biệt thì phương trình giao với trục hoành tại một điểm hoặc tại hai điểm.
Bài toán 5 được tham khảo từ TLTK số 6

Chương trình:
Program Bai1_49 SGK đai 10;
Var y,x,x1,x2,a,b,c,d:real;
Begin
Write('Nhap vao he so a,b,c cua ham so can kiem tra'); read(a,b,c)
d:=sqr(b)-4a*c;

x:=-b/2*a;

y:=-d/4*a;

Writeln('Toa do dinh cua ham so la: (',x,',',y,')' );
X:=0; y:=a*sqr(x)+b*x+c;
Writeln(‘Toa do diem giao voi truc hoanh la: (',x,',',y,')' );
Y:=0;
If d
Begin
Clrscr;
//so trau dung tu 1 den 20
For dung:=1 to 20 do //so trau nam tu 1 dem 33
For nam:=1 to 33 do
Begin
Gia:=100-dung-nam;
If gia mod 3=0 then
If dung *5 +nam*3+ (gia div 3) = 100 then
Writeln('dung:',dung:4,'nam',nam:4,'gia',gia:4);
End;
Readln;
End.
12


Trong phần 2.3.b Bài toán 1 được tham khảo từ TLTK số 6

Bài toán 26: Tính n!.
Xác định bài toán:
Input: Nhập n
Output: gt
N!=1.2….n (Tích các số tự nhiên từ 1 đến n). Không có công thức để tính n! nhưng
ta có công thức truy hồi sau
0!=1

n!=n(n-1)!
Vận dụng công thức truy hồi trên và cấu trúc rẽ nhánh, cấu trúc lặp ta có chương
trình giải bài toán sau:
Chương trình:

Writenl(' tinh x luy thua n');
Writeln('nhap n, x='); Readln(n,x);
If (n=0) and( x0) then writeln(' lt =', 1);
Lt:=1;
For i:=1 to n do
Lt:=lt*x;
Writeln('x luy thua n=', lt:4:2);
Readln;
End.
Bài toán 4: Bài 2/92 SGK Đại số 11
Cho dãy số (Un) biết U1=-1, Un+1=Un+3 với n >=1. Viết chương trình in ra 5 số
hạng đầu của dãy số.
Xác định bài toán:
Input: Số hạng đầu u1:=-1
Output: 5 số hạng đầu của dãy
Với việc giới thiệu bài toán này, học sinh vừa được tiếp cận khái niệm, tính
Bài toán 3, bài toán 4 được tham khảo từ TLTK số 6

14


chất của dãy số trong toán học nên các em dễ dàng hiểu được yêu cầu của bài
toán. Từ kiến thức các em đã biết tôi hướng các em đến câu hỏi. Trong Tin học
máy tính giải bài toán này như thế nào?
Đề bài đã cho biết số hạng đầu của dãy số và công thức tính Un. Ta sẽ dùng
vòng lặp For hoặc While để tính số hạng tiếp theo của dãy số thông qua công
thức tính Un+1=Un+3. Sau mỗi lần lặp ta sẽ tính và in ra được một số hạng tiếp
theo của dãy số đã cho. Đề bài yêu cầu in ra 5 số hạng đầu tiên nên ta dùng vòng
For duyệt từ 2 đến 5 vì số hạng đầu đã biết, chỉ tính từ số hạng thứ 2 trở đi.


Begin
U:=u+3;

U:=u+3; n:=n+1;

Write(u:5);

Write(u:5);

End;

End;

Readln;

Readln;

End.

End.
n

6

Bài toán 5 : Tính tổng

i
s= �X
i 1


tranh luận. Đồng thời tiết học trở nên sinh động hơn và giáo viên không đóng vai
trò là người xây dựng lý luận mà học sinh là người chủ động để giải quyết các vấn
đề.

16


Tiến hành trong giảng dạy ở các lớp, tôi nhận thấy sau khi được hướng dẫn học
sinh đã biết làm bài tập. Từ đó, kết quả kiểm tra, đánh giá đã có sự thay đổi theo
hướng tích cực, kết quả cụ thể ở các lớp 11E và 11D của hai năm học như sau:
Tỉ lệ (%)\Lớp
Giỏi
Khá
Trung bình
Yếu
Kém

11E
(2017-2018)
28
42
30
0
0

11E

11D

11D

liệu để có nguồn tri thức phong phú, là điều kiện để tôi nâng cao tính tự học, nâng
cao kiến thức. Đồng thời tôi mong muốn được phát triển thêm sang kiến kinh
nghiệm của mình đó là vận dụng ngôn ngữ lập trình Pascal để giải các bài tích hợp
liên môn với các môn khác như lý, hóa, sinh, tiếng anh…để tạo hứng thú trong học
tập cho học sinh
3.2. Kiến nghị
- Đối với đồng nghiệp, cần tăng cường hướng nghiên cứu đổi mới phương pháp
theo hướng nghiên cứu bài học, tích hợp, liên môn…nhằm tạo hứng thú yêu thích
môn học. Tăng cường các biện pháp kiểm tra đánh giá và đồng bộ ngôn ngữ lập
trình.
17


- Đối với nhà trường, quan tâm; xây dựng cơ sở vật chất đạt chuẩn để việc giảng
dạy tin học, đặc biệt là các giờ thực hành được thuận lợi.
- Đối với Sở Giáo dục, cần mở thêm các lớp tập huấn, tài liệu để nâng cao phương
pháp giảng dạy của giaó viên.
XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ

Thanh Hóa, ngày 25 tháng 5 năm 2018
Tôi xin cam đoan đây là SKKN của
mình viết, không sao chép nội dung của
người khác.

Nguyễn Thị Thoan

18


19


[6]. Một số bài tập tham khảo trên Internet.

chủ biên




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status