1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài sáng kiến kinh nghiệm mô phỏng thuật toán

39 571 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 39
Dung lượng 10,33 MB

Nội dung

SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI TRƯỜNG TRUNG HỌC PHỔ THễNG QUỐC OAI ĐỀ TÀI SÁNG KIẾN KINH NGHIỆM Mễ PHỎNG THUẬT TOÁN Giỏo viờn thực hiện: NGUYỄN THỊ HẢI Tổ chuyờn mụn : Toỏn – Tin Chuy

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI TRƯỜNG TRUNG HỌC PHỔ THễNG QUỐC OAI

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

Mễ PHỎNG THUẬT TOÁN

Giỏo viờn thực hiện: NGUYỄN THỊ HẢI

Tổ chuyờn mụn : Toỏn – Tin

Chuyờn mụn dạy : Tin Học Trường THPT Quốc Oai

Năm học: 2010- 2011

Nhận xét của hội đồng khoa học giáo dục

Cấp cơ sở :

Trang 2

CÊp huyÖn :

LỜI NÓI ĐẦU

Tôi xin chân thành cảm ơn trường THPT Quốc Oai

và các bạn đồng nghiệp đã tạo điều kiện về thời gian và

tài liệu cần thiết giúp tôi hoàn thành đề tài với đúng

thời gian quy định

Trang 3

Tôi xin chân thành cảm ơn những người thân trong gia đình, bạn bè và những người đã luôn ủng hộ và góp

ý để nội dung đề tài được đầy đủ hơn

Xin chân thành cảm ơn tất cả những ai đã và đang quan tâm đến đề tài để đề tài có thể mang lại một cẩm

nang hữu ích cho người yêu thích môn Tin học và

ngành Công Nghệ Thông Tin nói chung

Đề tài này do phạm vi nghiên cứu còn hạn hẹp và không tránh khỏi những thiếu xót Vì vậy tôi rất mong

nhận được sự quan tâm góp ý của các cấp lãnh đạo và

các đồng nghiệp để đề tài được hoàn thiện và sử dụng

rộng rãi hơn

Xin chân thành cảm ơn tất cả

Người thực hiện

Hai

Nguyễn Thị Hải

MỤC LỤC

I SƠ YẾU LÝ LỊCH: 6

II NỘI DUNG ĐỀ TÀI: 7

1 Lý do chọn đề tài: 7

2 Phạm vi của đề tài: 9

3 Thời gian thực hiện đề tài: 10

Trang 4

III QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI: 10

1 Tình trạng thực tế khi chưa thực hiện đề tài: 10

2 Khảo sát thực tế: 11

3 Nội dung và biện pháp thực hiện đề tài: 13

3.1 Bài toán sử dụng cấu trúc điều kiện: 14

a Bài toán: Tìm UCLN của 2 số nguyên M và N 14

b Phân tích bài toán: 14

c Nhận xét: 17

d Bài tập củng cố: 17

3.2 Bài toán kiểm tra một số nguyên dương là số nguyên tố: 18

a Bài toán: 18

b Phân tích bài toán: 18

c Nhận xét: 21

d Bài tập củng cố: 21

3.3 Bài toán sắp xếp trong mảng: 21

a Bài toán: 21

b Phân tích bài toán: 22

c Nhận xét: 25

d Bài tập củng cố: 25

3.4 Bài toán tìm kiếm trong mảng: 26

a Bài toán: 26

Trang 5

b Phân tích bài toán: 26

c Nhận xét: 32

d Bài tập củng cố: 33

VI KẾT QUẢ THU ĐƯỢC: 33

V KIẾN NGHỊ, ĐỀ NGHỊ SAU KHI THỰC HIỆN ĐỀ TÀI: 35

VI TÀI LIỆU THAM KHẢO: 36

Họ và tên: NGUYỄN THỊ HẢI.

 Ngày sinh: 13/ 05/ 1985

 Năm vào ngành: 2010

 Chức vụ: Giáo viên

 Đơn vị công tác: Trường THPT Quốc Oai

 Trình độ chuyên môn: Đại học

 Hệ đào tạo: Chính quy

Trang 6

 Bộ môn giảng dạy: Tin học.

 Ngoại ngữ: B

Tên đề tài: MÔ PHỎNG THUẬT TOÁN

1 Lý do chọn đề tài:

Trong những năm gần đây nền khoa học kỹ thuật tiên tiếntrên thế giới ngày càng phát triển mạnh mẽ Đặc biệt là trongngành lĩnh vực Công nghệ thông tin, sự phát triển của nó đã ảnh

Trang 7

hưởng vô cùng lớn đến sự phát triển của một đất nước, ảnh hưởngkhông nhỏ đến sự tri thức hoá của con người trong xã hội đó Bởi

vì sự phổ dụng hoá tin học trong mọi lĩnh vực trong sản xuất lẫntrong sinh hoạt hàng ngày đã trở nên phổ biến Sự phát triển đóđòi hỏi con người phải có đầy đủ khả năng về tri thức để làm chủđất nước, làm chủ chính mình, nhằm đưa đất nước đi lên theohướng công nghiệp hoá, hiện đại hoá đất nước, hoà cùng nhịp pháttriển mạnh mẽ của thế giới

Cùng hoà nhịp với các lĩnh vực khác, nền giáo dục cũngđang từng bước đổi mới cả về phương thức, nội dung, hình thức

và phương tiện dạy học nhằm đáp ứng nhu cầu cần thiết của xãhội về trình độ nhân lực, phát triển mức tối đa tư duy của conngười Do đó trong nền giáo dục hiện nay cần áp dụng tin họcrộng rãi cả trong việc dạy và học, giúp cho học sinh chiếm lĩnhđược tri thức, tư duy sáng tạo và năng lực giải quyết các vấn đề đểphù hợp với nhu cầu và hoàn cảnh mới Và người có khả nănggiúp cho nền giáo dục tiếp cận nhiều với Công nghệ thông tin(CNTT) chính là những người truyền đạt kiến thức cho người học,không ai khác là những người thầy, người cô đang giảng dạy trênghế nhà trường

Hiện nay tôi đang là một giáo viên giảng dạy trong mộttrường phổ thông, tôi cũng đã trải qua nhiều năm ngồi trên ghếnhà trường và tôi rút ra được một điều rằng học mà chỉ có lýthuyết, có ghi chép không, không có thực hành đi kèm, hay không

có thực tế mô phỏng thì thật sự việc học trở nên rất khó khăn cho

Trang 8

cả người truyền đạt và người tiếp nhận kiến thức Không nhữngthế nó còn làm hạn chế tư duy sáng tạo của người học do không cóthực tế mô phỏng nên họ chỉ học mang tính tư duy trừu tượng.

Học sinh hiện nay càng có xu hướng học thự động nếukhông được tự thực hành hay tự đi tìm hiểu một nội dung nào đó.Điều đó khiến cho việc chỉ có lý thuyết mà không có thực hànhkèm theo, hay không có hình ảnh trực quan thì các em chỉ họcmang tính hình thức Ví dụ, khi học một bài về các hiện tượng tựnhiên như động đất, song thần, núi lửa, lũ lụt… thì học sinh sẽ biếtqua thông tin đại chúng, qua báo đài Nếu giáo viên đưa ra một vàihình ảnh minh họa được trình chiếu trên máy tính thì chắc chắntiết học đó sẽ sinh động và gây hứng thú cho học sinh rất nhiều.Vậy, với vai trò là một giáo viên dạy Tin học, tôi hiểu rất rõ tầmquan trọng của Tin học, của máy tính đối với nền giáo dục hiệnnay và với bộ môn tin học của tôi nói riêng Tin học, một kháiniệm không quá xa lạ với chúng ta hiện nay, nhưng nhiều ngườichỉ hiểu được ý nghĩa của nó là gắn liền với thông tin, với máytính Nhưng hiện nay, nó đã trở thành một môn học chính trêngiảng đường phổ thông, thì học sinh mới hiểu được phần nào được

ý nghĩa của nó, hiểu được những khía cạnh khác của bộ môn này

Đó là việc giải quyết các bài toán trên máy tính Một nội dungđược coi là khá khó đối với những ai mới và chưa thật sự hứng thúvới môn học Nó đòi hỏi học sinh phải có một khả năng tư duythuật toán khá tốt, biết vận dụng trong một ngôn ngữ lập trình nào

đó Và mục tiêu của tôi khi viết đề tài này là giúp các em có cái

Trang 9

nhìn sâu hơn với môn học và tạo sự hứng thú, yêu thích môn họccủa các em.

Chính điều đó tôi thấy mình nên tìm hiểu mảng nội dung

mô phỏng thuật toán, nhằm đi xây dựng các hình ảnh mô phỏnggiúp cho người học có các giao diện hình ảnh thực tế khi học vềmột thuật toán nào đó hay nghiên cứu một bài toán cụ thể Nhưvậy việc đi kèm là hình ảnh mô phỏng sẽ làm cho sự dạy và họctrở nên sinh động hơn, giúp học sinh có thêm lý thú khi học, say

dễ dàng hơn Tôi xin trình bày đề tài

MÔ PHỎNG THUẬT TOÁN

2 Phạm vi của đề tài:

Là giáo viên giảng dạy trên trường phổ thông nên đối tượng màtôi nghiên cứu chính là những học sinh bắt đầu làm quen với kháiniệm thuật toán, giải bài toán trên máy tính và khái niệm ngôn ngữlập trình Nội dung đề tài cũng có thể được áp dụng đối với ngườibắt đầu làm quen với lập trình căn bản

Trang 10

3 Thời gian thực hiện đề tài:

Đề tài được thực hiện song song đồng thời với quá trình giảngdạy theo quy định và phân phối do Bộ GD ban hành Ý tưởng của đềtài cũng đã được tôi tìm hiểu và cân nhắc nội dung từ lâu

III QUÁ TRÌNH THỰC HIỆN ĐỀ TÀI:

1 Tình trạng thực tế khi chưa thực hiện đề tài:

Tôi đã có 3 năm kinh nghiệm trong giảng dạy (dạy thêm, hợpđồng và tập sự Hiện tại tôi đang là giáo viên tập sự tại trường THPTQuốc Oai), đã tiếp xúc với nhiều học sinh khác nhau Và cách các

em học và hiểu bộ môn này cũng theo các cách khác nhau Khigiảng ngoài giờ, các em có điều kiện thực hành nhiều và có nhiều cơhội hỏi giáo viên những gì mà các em thắc mắc, tôi thấy các em tiếpthu bài khá tốt Khi giảng dạy trên một tập thể học sinh, tôi thấy mộtthực tế hiện lên đó là các em càng học, càng có xu hướng khônghứng thú và yêu thích môn học Một tiết học giảng dạy, tôi thấy họcsinh có cảm giác không hiểu bài, kêu khó và ngại suy nghĩ Điều này

sẽ làm cho các em có cảm giác sợ môn học và không hứng thú tronghọc tập Nguyên nhân một phần do các em không có điều kiện tronghọc tập, máy tính không đủ để 1 học sinh / 1 máy tính thực hànhngay nội dung kiến thức vừa học Một phần do các em phải học quánhiều môn học phụ bên cạnh những môn học mà các em cho làchính, phục vụ cho việc thi tốt nghiệp và đại học sau này, cho nênlàm cho học thấy không hứng thú môn học Và một nguyên nhânnữa tôi thấy là chủ yếu, đó là sự truyền đạt kiến thức cho các emchưa thật sự hiệu quả, chưa thật sự giúp học sinh hiểu bài nhanh

Trang 11

Một nội dung không hiểu sẽ kéo theo nhiều nội dung khác khó hiểu.Đặc biệt là nội dung phần viết thuật toán và viết chương trình trênmáy tính

Ví dụ: Khi dạy một bài toán lập trình về cấu trúc điều kiện( lặphay rẽ nhánh) Giáo viên yêu cầu học sinh nêu các bước giải một bàitoán trên máy tính Đa phần các em chỉ nêu được phần xác định yêucầu bài toán Phần viết thuật toán hay lập trình trên máy tính thì họcsinh sẽ thấy khó hiểu và khó trình bày Vì vậy giáo viên nên hướngdẫn kỹ hơn cho học sinh về phần nội dung trình bày thuật toán, môphỏng thông qua một ví dụ cụ thể và sau đó là chương trình minhhọa Hiện tại tôi đang giảng dạy khối 10 và khối 11 Khối 10, các emđược tìm hiểu sâu về cách xây dựng các thuật toán cho một bài toántrên máy tính Khối 11 là nội dung kiến thức về lập trình và cách giảimột bài toán trên một ngôn ngữ lập trình cụ thể Ví dụ, ngôn ngữPascal các em đang học Vì vậy tôi nghĩ các em cũng đã hình thànhcho mình một khái niệm chung về thuật toán và hiểu thế nào là lậptrình Thực tế, khi học sinh lớp 10 học về thuật toán, giáo viên nênhướng dẫn cách xây dựng thuật toán cho học sinh hiểu, sau đó minhhọa thuật toán đó trên một ví dụ cụ thể để học sinh nhanh hiểu vànhớ thuật toán hơn Còn khối 11, các em đã có kiến thức về xâydựng thuật toán, giáo viên nên hướng dẫn cho các em biết cách vậndụng thuật toán trên ngôn ngữ lập trình cụ thể

Vậy thực tế cho thấy, học sinh thì ngày càng không hiểu và khônghứng thú với môn học Gây cảm giác nhàm chán và sợ môn học.Còn giáo viên, khi thấy học sinh không chú ý nhiều vào bài, nội

Trang 12

dung kiên thức càng khó truyền đạt khi mà học sinh không nắmđược nội dung chính bài cũ Vì vậy tạo cảm giác ức chế dạy chogiáo viên Kết quả thu được là không cao.

2 Khảo sát thực tế:

Để chứng minh cho tình trạng thực tế trên, tôi xin đưa ra một ví

dụ cụ thể để nói lên hiện trạng thực tế hiện nay của học sinh phổthông học bộ môn tin học Để thấy được tình trạng thực tế đang diễn

ra ở đa số học sinh tiếp cận với bộ môn tin học phổ thông

Giáo viên đưa ra một đề bài kiểm tra 1 tiết cho học sinh khối 10

Chấm bài, tôi thu được kết quả sau:

Trang 13

a Sắp xếp dãy số trên tăng dần Minh họa thông qua một bộ giá trị

cụ thể và cho biết kết quả cuối cùng

b Tính tổng số phần tử là số nguyên tố

Nhận xét: Dạng bài toán này có sử dụng một số kiến thức cũ liên quan đến thuật toán sắp xếp dãy tăng dần và kiểm tra một số là số nguyên tố Chính vì vậy học sinh sẽ thấy khó khăn trong khi áp dụng thuật toán vào lập trình Thực tế, sau khi chấm một lớp với nội dung này, các em cũng thu được kết quả không cao như sau:

Trang 14

2 0 0

Nguyên nhân chính ở đây là do một phần ở ý thức học của họcsinh, một phần do khả năng tư duy thuật toán của các em chưa tốt nênlàm các em thấy môn học khó hiểu, một phần do sự truyền đạt nộidung bài học chưa thật sự hiệu quả của người dạy Nên kiểm tra chấtlượng, không thu được kết quả tốt

3 Nội dung và biện pháp thực hiện đề tài:

Để giải quyết một số thiếu sót còn tồn tại trong quá trình truyền đạtbài học, giúp học sinh có hứng thú và ý thức học môn học cao hơn,tạo khả năng tư duy logic, vận dung thuật toán trong lập trình

Sau đây tôi xin trình bày một số dạng bài thường gặp trong giảng dạytin học phổ thông bao gồm:

- Bài toán sử dụng cấu trúc điều kiện

- Bài toán kiểm tra một số nguyên là số nguyên tố

- Bài toán sắp xếp trong mảng

- Bài toán tìm kiếm trong mảng

3.1 Bài toán sử dụng cấu trúc điều kiện:

a Bài toán:

Tìm UCLN của 2 số nguyên M và N

a Phân tích bài toán:

- Xác định yêu cầu bài toán:

 Input: M, N nguyên

Trang 15

 Output: UCLN của M và N.

- Thuật toán:

 Dạng liệt kê:

Thuật toán Euclide tìm UCLN (M, N)+ Nếu M = N thì UCLN = M ( hoặc N)

+ Nếu M >N thì UNLN (M, N) = UNLN (M – N, N)

+ Nếu M < N thì UNLN (M, N) = UNLN (M, N - M)

 Dạng sơ đồ khối:

- Mô phỏng thuật toán:

Mô phỏng thuật toán với bộ giá trị M = 9, N = 6 Ta thu đượckết quả sau

Trang 17

- Chương trình:

b Nhận xét:

Cấu trúc điều kiện là cấu trúc có sử dụng các điều kiện đểchạy vòng lặp Nếu thỏa mãn điều kiện thì vòng lặp thực hiện,nếu không thì thoát khỏi vòng lặp và đưa ra kết quả Các dạngcấu trúc điều kiện thường gặp là: If – then, For – to – do, While

Trang 18

– do, Repeat – until, Case – of ,… Điều kiện ở đây là các biểuthức logic

Bài toán trên có sử dụng cấu trúc điều kiện là cấu trúcWhile - do Đây là dạng bài thường gặp trong lập trình

b Phân tích bài toán:

- Xác định yêu cầu bài toán:

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

+ Output: N là số nguyên tố hay không là số nguyên tố

- Thuật toán:

Trang 19

- Mô phỏng thuật toán:

Dựa vào thuật toán, ta kiểm tra xem số 15 có là số nguyên tốkhông?

Sơ đồ khối

Trang 20

Số 15 nhập vào:

Thuật toán chạy như sau:

chia hết cho 2 nên

tăng i = 3 quay lại

bước 5

Trang 22

c Nhận xét:

Số nguyên tố là số chia hết cho 1 và chính nó

Bài toán gặp nhiều ở những dạng đề kiểm tra số nguyên tố hayđếm xem trong một dãy số có bao nhiêu số nguyên tố

Dạng bài toán này đòi hỏi học sinh phải biết sử dụng các cấutrúc điều kiện và biến kiểm tra để kiểm tra xem phần tử đó có lànguyên tố không

Khi gặp bài toán này, giáo viên nên giải thích rõ cho học sinh tạisao phải chia làm 3 trường hợp là nhỏ hơn 1; lớn hơn 1 nhỏ hơn

4 và lớn hơn hoặc bằng 4 Giải thích cho học sinh tiếp tại saokiểm tra N có chia hết cho phần nguyên căn bậc 2 của N không?Bài toán này có nội dung ý tưởng thuật toán không quá khónhưng khi lập trình, nhiều học sinh sẽ khó đưa ra được thôngbáo là nguyên tố hay không nếu học sinh không hiểu và khôngbiết sử dụng một biến kiểm tra kiểu Boolean Vậy khi đưa ra

Trang 23

chương trình, giáo viên nên nói rõ về việc sử dụng biến kiểm tratrong chương trình là để làm gì

d Bài tập củng cố:

Kiểm tra số 78 và 113 có là số nguyên tố không?

3.3 Bài toán sắp xếp trong mảng:

a Bài toán:

Cho dãy số nguyên a1, a2, …, an gồm N phần tử kiểu nguyên.Hãy sắp xếp dãy tăng dần

b Phân tích bài toán:

- Xác định yêu cầu bài toán:

+ Input: Dãy số nguyên a1, a2, …, an

+ Output: Dãy đã được sắp xếp tăng dần

- Thuật toán:

Trang 24

- Mô phỏng thuật toán:

Với input là bộ giá trị: 100, 19, 1, 98, 56, 43, 65, 72, 24, 35.

Trang 27

Bài toán đặt ra là sắp xếp dãy theo thứ tự tăng dần của giátrị trong mảng Có rất nhiều thuật toán sắp xếp được đưa ra nhưsắp xếp chọn, sắp xếp tuần tự, sắp xếp chèn… Nhưng ở đây tôiđưa ra thuật toán sắp xếp đổi chỗ hay gọi là sắp xếp nổibọt( bublesort) Tức là: Các phần tử được duyệt từng cặp phần

tử một Cứ 2 phần tử gần nhau, nếu phần tử trước lớn hơn phần

tử sau thì ta sẽ đổi chỗ 2 phần tử đó cho nhau( vì ta đang sắp xếptăng dần) Quá trính này được lặp đi lặp lại đến khi dãy đượcsắp xếp và cặp so sánh cuối cùng là cặp giá trị 2 phần tử đầu

d Bài tập củng cố:

Cho dãy số sau: 89, 67, -8, 37, -99

Hãy mô phỏng giải thuật sắp xếp dãy số sau giảm dần

3.4 Bài toán tìm kiếm trong mảng:

a Bài toán:

Cho dãy số gồm N phần tử kiểu nguyên Tìm kiếm phần tử K cótrong dãy không? Nếu có đưa ra vị trí và kết thúc chương trình

b Phân tích bài toán:

- Xác định yêu cầu bài toán:

+ Input: Dãy số gồm N phần tử kiểu nguyên và số nguyênK(khóa)

+ Output: Thông báo có xuất hiện k và đưa ra vị trí hoặckhông tìm thấy k trong dãy

- Thuật toán:

Đề bài đưa ra có thể xảy ra 2 trường hợp:

Ngày đăng: 23/04/2015, 07:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w