Tải bản đầy đủ (.pdf) (17 trang)

SKKN Nâng cao kỹ năng viết thuật toán cho học sinh thông qua một số bài tập cơ bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (282.12 KB, 17 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA
TRƯỜNG THPT HOẰNG HÓA II

SÁNG KIẾN KINH NGHIỆM
ĐỀ TÀI:

NÂNG CAO KỸ NĂNG VIẾT THUẬT TỐN
CHO HỌC SINH THƠNG QUA MỘT SỐ BÀI TẬP CƠ BẢN

Người thực hiện : LÊ THI HOÀI THU
Chức vụ

: Giáo viên

Đơn vị cơng tác : THPT HOẰNG HĨA 2
SKKN thuộc lĩnh vực mơn: TIN HỌC

THANH HĨA NĂM 2017

SangKienKinhNghiem.net


PHẦN I. MỞ ĐẦU
1. LÝ DO
Năm học 2016 -2017 là năm tôi được tổ chuyên môn phân công dạy Tin học
10. Đứng trước nhiệm vụ của năm học này, tôi đã lên kế hoạch và mục tiêu dạy học
cho mình nhằm đạt hiệu quả dạy học được tốt nhất cũng như sẽ đạt được chỉ tiêu
đăng kí. Trong q trình giảng dạy môn Tin học 10, khi dạy Bài 4 “BÀI TỐN
VÀ THUẬT TỐN ” tơi nhận thấy đây là nội dung khó và mới đối với các em
nhưng khi các em hiểu được thì vơ cùng lý thú. Với các ví dụ được trình bày trong
kinh nghiệm của mình sẽ giúp cho học sinh nắm bắt tốt hơn về cách viết thuật tốn


của một bài tốn.
 Khảo sát tình trạng:
Giáo viên đưa ra đề kiểm tra 1 tiết đối với lớp 10A2 (40 học sinh) như
sau:
Bài 1: Xác định Input và Output của bài tốn sau:
“Tính tổng các bình phương các chữ số của 1 số tự nhiên bất kỳ có 4 chữ số

Bài 2: Liệt kê các bước của thuật toán để giải bài toán sau :
“Rút gọn phân số

a
với a, b bất kỳ, b  0 ”
b

Bài 3: Viết thuật toán để sắp xếp 1 dãy số nguyên bất kỳ nhập từ bàn phím theo thứ
tự giảm dần.
Kết quả kiểm tra khi không áp dụng kinh nghiệm như sau:
Lớp 10A2 có 40 học sinh:
Điểm

Số học sinh

Tỉ lệ

3

9

23 %


4

10

25 %

5

11

28 %

6

5

13 %

7

5

13 %

-2SangKienKinhNghiem.net


Đối với Bài 1, hầu như học sinh chỉ tìm được Input và Output của bài toán mà chưa
viết được đầy đủ thuật tốn để giải nó.
Đối với Bài 2, Bài 3 học sinh chưa mơ phỏng được thuật tốn bằng sơ đồ khối

2. MỤC TIÊU NGHIÊN CỨU
Trong dự thảo báo cáo chính trị về phát triển văn hố – giáo dục – đào tạo của báo
Nhân dân ra ngày 3.2.2001 có đề cập: “Đổi mới căn bản và tồn diện nội dung,
phương pháp dạy và học, hệ thống trường lớp và hệ thống quản lí giáo dục theo
hướng chuẩn hoá, hiện đại hoá, xã hội hoá và dân chủ hố”. Trên cơ sở đó, mục
tiêu của đề tài nhằm:
-

Giúp học sinh hiểu rõ khái niệm Thuật toán

-

Giúp học sinh viết thuật tốn dễ dàng, khắc phục tình trạng cảm thấy mơ hồ

khi học về thuật tốn.
-

Khuyến khích học sinh biểu diễn thuật toán bằng sơ đồ khối.

-

Là cơ sở để phát hiện và bồi dưỡng học sinh giỏi tin học và để học tiếp kiến

thức viết chương trình trong năm sau của học sinh.
3. ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU
- Nội dung bài 4 Bài toán và thuật toán nằm trong chương trình Tin học 10,
gồm 6 tiết (5 tiết lý thuyết và 1 tiết bài tập) , tôi đã áp dụng đề tài lồng
ghép trong cả giờ lý thuyết và giờ bài tập.
- Đối tượng là học sinh các lớp 10 mà tôi đã dạy.
4. PHƯƠNG PHÁP NGHIÊN CỨU CHUNG

- Đứng trước một vấn đề còn mới và trừu tượng đối với học sinh, việc xây
dựng các bài tập ví dụ là hết sức quan trọng. Học sinh học thơng qua ví
dụ sẽ hiểu rõ và cụ thể hơn về thuật tốn.
- Vì vậy, trước hết, tơi phải giúp học sinh giải quyết các bài tập trong sách
giáo khoa và sách bài tập, sau đó, tơi có thể đưa ra một số ví dụ khác
ngồi sách giáo khoa nhưng gần gũi với các em.

-3SangKienKinhNghiem.net


5. CẤU TRÚC ĐỀ TÀI
Phần I. Mở đầu
1. Lí do
2. Mục tiêu nghiên cứu
3. Đối tượng phạm vi nghiên cứu
4. Phương pháp nghiên cứu chung
5. Cấu trúc đề tài
Phần II. Nội dung
1.

Giúp học sinh hiểu rõ khái niệm “Bài toán” trong tin học

2.

Giúp học sinh hiểu rõ khái niệm “Thuật toán” trong tin học

3.

Một số bài tập


4.

Đánh giá

Phần III. Kết luận

-4SangKienKinhNghiem.net


PHẦN II. NỘI DUNG
1. Giúp học sinh hiểu rõ khái niệm "Bài toán" trong Tin học:
Giáo viên đặt vấn đề bằng cách đưa ra các ví dụ để học sinh quan sát:
Ví dụ 1: Giải phương trình bậc 2 tổng quát: ax2+ bx+ c= 0 (a  0).
Ví dụ 2: Bài tốn kiểm tra tính ngun tố của một số nguyên dương N
Phát vấn học sinh: Em hãy xác định INPUT(thơng tin ban đầu) và
Output(kết quả) của mỗi bài tốn sẽ có dạng gì ? (Dạng số, hình ảnh, hay văn bản
?)
Học sinh trả lời:

ở ví dụ 1

Dữ kiện

Kết quả

Các hệ số a, b, c bất kỳ

Nghiệm của phương trình
(nếu có) có dạng số ngun
hoặc số thực.


ở ví dụ 2

Số nguyên dương N

N là số nguyên tố hoặc N
không phải là số nguyên tố

Lâu nay, học sinh mới chỉ tiếp xúc và quen với khái niệm bài toán trong
Toán học. Vì vậy, giáo viên nên đưa ra câu hỏi so sánh sự giống và khác nhau giữa
bài toán trong Tin học và bài tốn trong Tốn học?
Giáo viên giải thích: Bài toán trong Toán học yêu cầu chúng ta giải cụ thể để
tìm ra kết quả, cịn bài tốn trong Tin học yêu cầu máy tính giải và đưa ra kết quả
cho chúng ta.
Từ đây giáo viên trình chiếu khái niệm Bài toán trong Tin học : Là một việc
nào đó mà ta muốn máy tính thực hiện để từ thơng tin đưa vào máy tính cho ta kết
quả mong muốn.
- Những dữ kiện của bài toán được gọi là Input.
- Kết quả máy tính trả ra được gọi là Output của bài tốn.
Sau đó giáo viên u cầu học sinh tìm lại Input và Output của 2 ví dụ trên.

-5SangKienKinhNghiem.net


 Như vậy, khái niệm bài tốn khơng chỉ bó hẹp trong phạm vi mơn tốn, mà phải
được hiểu như là một vấn đề cần giải quyết trong thực tế, để từ những thơng tin đã
cho máy tính tìm ra kết quả cho chúng ta.
2. Giúp học sinh hiểu rõ khái niệm "Thuật toán" trong Tin học:
Bước 1: Giáo viên nêu tình huống để giúp học sinh t́ìm Input và Output
Làm thế nào để từ Input của bài toán, máy tính tìm cho ta Output ?

Ta cần tìm cách giải bài tốn và làm cho máy tính hiểu được cách giải đó.
Giáo viên giải thích: Nếu như trong Tốn học chúng ta phải giải trực tiếp
từng bài để lấy kết quả, thì ở đây, chúng ta chỉ cần tìm cách giải bài tốn tổng qt
và máy tính sẽ giải cho ta một lớp các bài tốn đồng dạng.
Ví dụ: Bài tốn giải phương trình bậc 2 với 3 hệ số a,b,c bất kỳ, bài tốn tìm
diện tích tam giác với độ dài 3 cạnh được nhập bất kỳ, bài toán tìm UCLN của 2 số
ngun bất kỳ, bài tốn quản lý học sinh …
Bước 2: Giáo viên đưa ra khái niệm thuật tốn và phân tích, nhấn mạnh các tính
chất của một thuật toán:
 Khái niệm: “Thuật toán để giải một bài toán là một dãy hữu hạn các thao
tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy các thao
tác ấy, từ thơng tin đầu vào (Input) của bài tốn ta nhận được kết quả (Output) cần
tìm”.
 Các tính chất của một thuật tốn:
- Tính dừng: thuật tốn phải kết thúc sau một số hữu hạn các thao tác.
- Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật tốn kết
thúc, hoặc là có đúng một thao tác xác định để thực hiện bước tiếp theo.
- Tính đúng đắn: Sau khi thuật toán kết thúc, ta nhận được kết quả cần tìm.
 Các bước tiến hành khi viết thuật toán của một bài toán :
 Xác định bài tốn: Là đi tìm Input và Output của bài tốn .
 Tìm ý tưởng để giải bài tốn
 Viết thuật toán bằng phương pháp liệt kê hay sơ đồ khối

-6SangKienKinhNghiem.net


Bước 3: Giới thiệu cho học sinh 2 cách biểu diễn một thuật toán
- Cách l: Liệt kê các bước: Chính là dùng ngơn ngữ tự nhiên để diễn tả các bước

cần làm khi giải một bài toán bằng máy tính.

- Cách 2: Dùng sơ đồ khối.
Quy ước :
 Hình thoi

thể hiện thao tác so sánh

 Hình chữ nhật

thể hiện các phép tính tốn

 Hình ơ van

thể hiện thao tác nhập, xuất dữ liệu

 Các mũi tên

trình tự thực hiện các thao tác.

Giáo viên lưu ý học sinh phải nhớ các quy ước trên để biểu diễn thuật tốn được
chính xác. Các quy ước trên có thể hiểu như là ngơn ngữ của thuật tốn, Vì vậy,
giáo viên khuyến khích học sinh biểu diễn thuật toán bằng sơ đồ khối. Ưu điểm của
sơ đồ khối là tránh được việc mô tả thừa câu chữ như cách biểu diễn liệt kê, người
đọc thấy trực quan hơn trong từng bước của thuật toán.
3. Một số bài tập

Bài tập 1 .Viết thuật toán cho bài tốn tìm nghiệm phương trình bậc 2 ax2+bx+c=0
(SGK Tin học 10, trang 44)
Lời giải :



Xác định bài toán :
+Input : Cho ba số thực a, b, c
+ Output : Nghiệm của phương trình ax2+bx+c=0



Ý tưởng của bài tốn: Để tìm nghiệm phương trình bậc 2 ta cần tính  và dựa
vào kết quả của  mà suy ra nghiệm của phương trình.
Thuật tốn của bài tốn:
Cách 1: Liệt kê từng bước

-

Bước 1: Bắt đầu

-

Bước 2: Nhập 3 hệ số a,b,c.

-

Bước 3: Tính biệt số  = b2- 4ac

-

Bước 4: Nếu  < 0 thơng báo phương trình vơ nghiệm rồi kết thúc.
-7SangKienKinhNghiem.net


Bước 5: Nếu  = 0 thơng báo phương trình có nghiệm kép x 


-

b
rồi kết
2a

thúc.
-

Bước 6: Nếu  > 0 thơng báo phương trình có 2 nghiệm x1,x2=

b  
, rồi
2a

kết thúc.
-

Bước 7: Kết thúc.
Cách 2: Biểu diễn thuật tốn bằng sơ đồ khối

Bắt đầu
Nhập a,b,c

Tính  = b2- 4ac

<0

Đúng


Phương trình vơ nghiệm

Sai

 =0

Đúng

Phương trình có nghiệm kép

Sai

Kết thúc

x= -b/2a

Phương trình có 2 nghiệm
 

Bài tập 2 .Viết thuật tốn cho bài tốn tìm nghiệm phương trình bậc nhất ax +b =0
Lời giải :


Xác định bài toán :
+Input : Cho hai số thực a, b
-8SangKienKinhNghiem.net


+ Output : Nghiệm của phương trình ax+ b=0

Ý tưởng của bài tốn: Để tìm nghiệm phương trình bậc nhất ta giải và biện



luận phương trình dựa vào hệ số a, b và suy ra nghiệm của phương trình
Thuật tốn của bài toán:



Cách 1: Liệt kê từng bước

-

B1: Nhập a, b

-

B2 : Nếu a <> 0 thì phương trình có nghiệm x=-b/2a =>B4

-

B3 : Nếu a=0

-

B3.1 Nếu b=0 thì kết luận phương trình cú vơ số nghiệm => B4

-

B3.2 Nếu b< > 0 thì kết luận phương trình Vơ nghiệm => B4


-

B4: Kết thúc
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối

Nhp a,b
Đúng

Phương

a 0

trình



nghiệm x=-b/a
Sai

Phương trình

b 0

vơ nghiệm

Đúng

Kết thúc


Sai

Phương trình có
vơ số nghiệm

Bài tập 3 Viết thuật tốn tính tổng sau:
S=1/2+1/3+1/4+…+1/N
Lời giải :


Xác định bài toán :
-9SangKienKinhNghiem.net


+ Input : Nhập N
+ Output : Tổng S


Ý tưởng của bài tốn:Ta thấy việc tính tổng của bài tốn này được lặp đi lặp
lại nhiều lần với tổng sau bằng tổng trước cộng i với i chạy từ 1 cho đến N và khi i
>N thì thuật tốn dừng lại và xuất tổng S



Thuật toán của bài toán:
Cách 1: Liệt kê từng bước
B1: Nhập số N
B2: S  0; i  0;
B3 : Nếu i >N thì đưa ra tổng S rồi kết thúc
B4: S  S+ 1/i,i  i+1

B5 : Kết thúc thuật toán
Yêu cầu học sinh chuyển từ cách viết thuật toán bằng phương pháp liệt kê sang sơ
đồ khối.
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Nhập N
S 0; i0
S
KQ :S

i <=N
Đ
S S+1/N
ii+1

Bài 4 : Cho N và dăy a1,…,aN, hăy t́ìm giá trị nhỏ nhất (Min) của dăy đó .(SGK Tin
học 10 trang 44)
Lời giải:


Xác định bài toán :
- 10 SangKienKinhNghiem.net


+ Input : Nhập N và dăy a1,…,aN
+ Output : Giá trị nhỏ nhất (Min) của dăy số
Học sinh có thể dựa vào bài tốn t́ìm Max đã học của dăy, để nêu ý tưởng giải bài
tốn tìm Min.
Ý tưởng của bài toán: - Khởi tạo giá trị Min =a1
- Lần lược với i chạy từ 2 đến N, so sánh giá trị số hạng
ai với giá trị Min, nếu ai< Min th́ì Min sẽ nhận giá trị mới là ai.

Thuật toán của bài toán:



Cách 1: Liệt kê từng bước
-

Bước 1. Nhập N và dăy a1,…,aN

-

Bước 2. Min  a1, i  2

-

Bước 3. Nếu i >N th́ì đưa ra giá trị Min rồi kết thúc

-

Bước 4
Bước 4.1 Nếu ai Bước 4.2 i  i+1 rồi quay lại Bước 3
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Nhập N và dăy a1,…,aN
Min  a1, i  2
Đúng

i >N

Đưa ra giá trị Min  kết thúc


Sai
Sai

ai Đúng

Min  ai
i  i+1

- 11 SangKienKinhNghiem.net


Bài 5:Viết thuật toán hoán đổi giá trị của hai biến số thực A và C dùng biến trung
gian B (Sách Bài tập Tin học 10 và Sách bài tập Ngơn ngữ lập trình Pascal –
Qch Tuấn Ngọc)
Lời giải:
u cầu học sinh t́ìm Input và Output của bài tốn


Xác định bài toán :
Input: Hai số thực A và C
Output: Hai số thực C và A
Giỏo viờn nêu lên ví dụ :”Có 1 cái lu đựng gạo và 1 cái thùng đựng muối, cơ muốn
hốn đổi số lượng gạo trong lu phải được đựng vào thùng và số lượng muối ở
trong thùng phải được chuyển sang đựng trong lu” để làm được điều đó em nào có
thể nêu cách làm ?
Học sinh trả lời

-


B1: Em đổ gạo ở trong lu sang một chậu (ban đầu chậu khơng đựng gì cả)

-

B2: Đổ lượng muối ở trong thùng sang lu

-

B3: Em lấy gạo ở trong chậu đổ vào thùng

-

B4: Kếp quả là em được lu thì đựng muối, thùng thì đựng gạo
Từ ví dụ trên giáo viên hình thành ý tưởng giải bài toán



ý tưởng của bài toán:Việc hoán đổi giá trị của hai biến A và C được làm theo
các bước sau:
(Giá trị A và C lúc nhập ban đầu)

B1:
B2:

A

B

C ( B lấy giá trị của biến A)


B3:

( A lấy giá trị của C )

B4:

(C lấy giá trị của B)

- 12 SangKienKinhNghiem.net




Thuật toán của bài toán:
Cách 1: Liệt kê từng bước
B1 : Nhập giá trị A, C
B2 : B  A
B3 : A  C ;
B4 : C  B
B5 : Đưa ra gía trị mới của A và C rồi kết thúc
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Nhập A và C
B A
AC
CB

Đưa ra gía trị mới của A và C
rồi kết thúc


Bài 6 : Viết thuật toán đếm các số âm trong dăy số A={ a1,a2,…aN } cho
trước.(Sách Bài tập Tin học 10, trang 21)
Lời giải:
Yêu cầu học sinh t́ìm Input và Output của bài tốn


Xác định bài toán :
+ Input : Nhập N và dăy a1,…,aN
+ Output : Số lượng các số âm trong dăy số



Ý tưởng của bài toán:

-

Khởi tạo giá trị Dem =0

-

Lần lược với i chạy từ 1 đến N, nếu ai nhỏ hơn 0 th́ì tăng biến Dem lên 1
đơn vị cho đến khi i >N th́ì dừng lại và xuất giá trị biến Dem.

- 13 SangKienKinhNghiem.net




Thuật toán của bài toán:
Cách 1: Liệt kê từng bước


-

B1: Nhập số nguyên dương N và n số a1,…,aN;

-

B2: i  1; Dem  0;

-

B3 Nếu i > N đưa ra giá trị Dem rồi kết thúc ;

-

B4 Nếu ai <0 th́ Dem  Dem +1;

-

B5 i  i+1, rồi quay lại B3
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Nhập số nguyên dương N
và n số a1,…,aN;

i  1; Dem  0
Đ

i>N

Đưa ra giá trị Dem

rồi kết thúc

S
Đ

ai <0

Dem  Dem +1

S

i  i+1
Bài 7 : Viết thuật tốn tính và hiển thị tổng các số dương trong dăy số (Sách Bài
tập tin học 10, trang 21)
A={ a1,a2,…aN } cho trước.
Yêu cầu học sinh t́ìm Input và Output của bài toán


Xác định bài toán :
+ Input : Nhập N và dăy a1,…,aN
+ Output : Tổng các số lớn hơn 0 trong dăy



í tưởng của bài tốn:
- 14 SangKienKinhNghiem.net


- Khởi tạo giá trị Sum =0
- Lần lược với i chạy từ 1 đến N, nếu ai lớn hơn 0 thì tăng biến Sum lên 1 đơn vị

cho đến khi i>N th́ì dừng lại và xuất giá trị biến Sum


Thuật toán của bài toán:
Cách 1: Liệt kê từng bước
B1: Nhập số nguyên dương N và n số a1,…,aN;
B2: i  1; Sum  0;
B3 Nếu i > N đưa ra giá trị Sum rồi kết thúc ;
B4 Nếu ai >0 th́ì Sum  Sum +1;
B5 i  i+1, rồi quay lại B3
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Nhập số nguyên dương
N và n số a1,…,aN;

i  1; Sum  0
Đ

i>N

Đưa ra giá trị Sum
rồi kết thúc

S

ai >0

Đ

Sum  Sum +1


S

i  i+1

- 15 SangKienKinhNghiem.net


4. ĐÁNH GIÁ
Kết quả kiểm tra học sinh lớp 10A1(42 học sinh) với đề kiểm tra giống lớp
10A2 (ở trên) sau khi thực hiện đề tài như sau:
Lớp 10A1:
Điểm

Số học sinh

Tỉ lệ

3

0

4

0

5

6

14%


6

10

24%

7

10

24%

8

9

21%

9

7

17%

- 16 SangKienKinhNghiem.net


PHẦN III. KẾT LUẬN
Với việc xây dựng các thuật toán minh họa như trên, trong quá tŕnh giảng dạy

Tin học 10, bản thân tôi thấy rằng các tiết học về bài tốn và thuật tốn khơng c̣ịn
nhàm chán, khơ cứng nữa mà trở nên sôi nổi hơn và học sinh cũng có thể hiểu các
thuật tốn một cách dễ dàng hơn.
Đề tài này ra đời từ kinh nghiệm của bản thân trong quá tŕnh giảng dạy và từ
những kiến thức mà tôi đă tham khảo với đồng nghiệp. Tôi rất mong sự góp ý chân
thành của q thầy cơ để tơi có một sáng kiến kinh nghiệm tốt hơn nữa.
Xin chân thành cảm ơn!
THANH HÓA, ngày 25 tháng 05 năm 2017
Giáo viên thực hiện:

Lê Thị Hoài Thu

ZZZZZZZ
Tài liệu tham khảo:
-

Sách giáo khoa, sách bài tập và sách giáo viên Tin học 10

-

Tài liệu bồi dưỡng giáo viên Tin học 10

-

Bài tập Ngơn ngữ lập trình pascal (Qch Tuấn Ngọc)

- 17 SangKienKinhNghiem.net




×