1. Trang chủ
  2. » Ngoại Ngữ

Rèn 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

17 5K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 291,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 toán của một bài toán.. Kết quả kiểm tra khi không áp dụng kinh nghiệm như

Trang 1

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 TOÁ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

Đơ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

Trang 2

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 quá trình giảng dạy môn Tin học 10, khi dạy Bài 4 “BÀI TOÁN

VÀ THUẬT TOÁ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 toán của một bài toá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 toá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

bvới a, b bất kỳ, b 0” 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 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 toán để giải nó

Đối với Bài 2, Bài 3 học sinh chưa mô phỏng được thuật toán bằng sơ đồ khối

Trang 3

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 hoá – 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à toà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ủ hoá” 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 toán dễ dàng, khắc phục tình trạng cảm thấy mơ hồ khi học về thuật toá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 toá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 ngoài sách giáo khoa nhưng gần gũi với các em

5 CẤU TRÚC ĐỀ TÀI

Phần I Mở đầu

1 Lí do

Trang 4

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

Trang 5

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 toán kiểm tra tính nguyên 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 toá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 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ố nguyên 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 toán trong Toá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 toá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 toán

Sau đó giáo viên yêu cầu học sinh tìm lại Input và Output của 2 ví dụ trên

Trang 6

 Như vậy, khái niệm bài toán không chỉ bó hẹp trong phạm vi môn toá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 toá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 Toá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 toán tổng quát

và máy tính sẽ giải cho ta một lớp các bài toán đồng dạng

Ví dụ: Bài toán giải phương trình bậc 2 với 3 hệ số a,b,c bất kỳ, bài toá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ố nguyên bất kỳ, bài toán quản lý học sinh …

Bước 2: Giáo viên đưa ra khái niệm thuật toá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 toá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 toán:

- Tính dừng: thuật toá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 toá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 toán: Là đi tìm Input và Output của bài toán

Tìm ý tưởng để giải bài toán

Viết thuật toán bằng phương pháp liệt kê hay sơ đồ khối

Trang 7

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 toá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 toá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 toá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 toán tìm nghiệm phương trình bậc 2

ax 2 +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 ax 2 +bx+c=0

Ý tưởng của bài toá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 toán của bài toá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ố = b 2 - 4ac

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

Trang 8

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

2a

rồi kết thúc.

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

2a

   , rồi kết thúc.

- Bước 7: Kết thúc.

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

Bài tập 2 Viết thuật toán cho bài toá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

= 0

Đúng

Sai

Đúng Phương trình vô nghiệm

Phương trình có nghiệm kép x= -b/2a

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

x1,x2=(-b)/2a

Bắt đầu

Nhập a,b,c

Tính = b2- 4ac

< 0

Kết thúc

Sai

Trang 9

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

Ý tưởng của bài toá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 toá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

Bài tập 3 Viết thuật toá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 :

Phương trình

vô nghiệm

Nhp a,b

a 0

Phương trình có nghiệm x=-b/a

b 0

Phương trình có

vô số nghiệm

Kết thúc

Đúng

Sai

Đúng

Sai

Trang 10

+ Input : Nhập N

+ Output : Tổng S

Ý tưởng của bài toán:Ta thấy việc tính tổng của bài toá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 toá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

Bài 4 : Cho N và dăy a 1 ,…,a N , 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 :

i <=N

Đ

Nhập N

S 0; i0

KQ :S

S S+1/N

ii+1

S

Trang 11

+ Input : Nhập N và dăy a 1 ,…,a N

+ Output : Giá trị nhỏ nhất (Min) của dăy số

Học sinh có thể dựa vào bài toán t́ìm Max đã học của dăy, để nêu ý tưởng giải bài toán tìm Min.

Ý tưởng của bài toán: - Khởi tạo giá trị Min =a 1

- Lần lược với i chạy từ 2 đến N, so sánh giá trị số hạng

a i với giá trị Min, nếu a i < Min th́ì Min sẽ nhận giá trị mới là a i.

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 a 1 ,…,a N

- Bước 2 Min a 1 , i2

- 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 a i <Min th́ Mina i ; 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

Đúng Sai

Nhập N và dăy a 1 ,…,a N

Min a 1 , i2

i >N

a i <Min Mina i

i i+1

Đưa ra giá trị Minkết thúc

Đúng

Sai

Trang 12

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 – Quách Tuấn Ngọc)

Lời giải:

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: 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 hoá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:

B1:

B3:

B4:

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

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

(Giá trị A và C lúc nhập ban đầu )

Trang 13

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

Bài 6 : Viết thuật toán đếm các số âm trong dăy số A={ a 1 ,a 2 ,…a N } 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 toán

Xác định bài toán :

+ Input : Nhập N và dăy a 1 ,…,a N

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

Nhập A và C

B A

AC

CB

Đưa ra gía trị mới của A và C

rồi kết thúc

Trang 14

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ố a 1 ,…,a N;

- B2: i1; Dem 0;

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

- B4 Nếu a i <0 th́ Dem Dem +1;

- B5 ii+1, rồi quay lại B3

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

Bài 7 : Viết thuật toá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={ a 1 ,a 2 ,…a N } 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 a 1 ,…,a N

+ Output : Tổng các số lớn hơn 0 trong dăy

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

S

S

a i <0

Nhập số nguyên dương N

và n số a 1 ,…,a N;

i1; Dem 0

i > N

ii+1

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

Dem Dem +1

Đ

Đ

Trang 15

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

- Lần lược với i chạy từ 1 đến N, nếu a i 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ố a 1 ,…,a N;

B2: i1; Sum 0;

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

B4 Nếu a i >0 th́ì Sum Sum +1;

B5 ii+1, rồi quay lại B3

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

S

S

a i >0

Nhập số nguyên dương

N và n số a 1 ,…,a N;

i1; Sum 0

i > N

ii+1

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

Sum Sum +1

Đ

Đ

Trang 16

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:

Trang 17

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 toán và thuật toá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 toá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 quý 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 (Quách Tuấn Ngọc)

Ngày đăng: 17/10/2017, 10:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w