Tải bản đầy đủ (.doc) (39 trang)

đề tài sáng kiến kinh nghiệm mô phỏng thuật toá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 (6.79 MB, 39 trang )

Mụ phng thut toỏn Trng THPT Quc Oai
S GIO DC V O TO H NI
TRNG TRUNG HC PH THễNG QUC OAI

TI SNG KIN KINH NGHIM
Mễ PHNG THUT TON
Giỏo viờn thc hin: NGUYN TH HI
T chuyờn mụn : Toỏn Tin
Chuyờn mụn dy : Tin Hc
Trng THPT Quc Oai
Nm hc: 2010- 2011
Nhận xét của hội đồng khoa học giáo dục
1
Giỏo viờn: Nguyn Th Hi_ T Toỏn Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
CÊp c¬ së :









CÊp huyÖn :












2
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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.
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
3
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
I.SƠ YẾU LÝ LỊCH: 5
II.NỘI DUNG ĐỀ TÀI: 6
1.Lý do chọn đề tài: 6
2.Phạm vi của đề tài: 9
3.Thời gian thực hiện đề tài: 10
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ế: 12
3.Nội dung và biện pháp thực hiện đề tài: 14
3.1.Bài toán sử dụng cấu trúc điều kiện: 15
a.Bài toán: 15
Tìm UCLN của 2 số nguyên M và N 15
a.Phân tích bài toán: 15
b.Nhận xét: 17
c.Bài tập củng cố: 18
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: 22
d.Bài tập củng cố: 23
3.3.Bài toán sắp xếp trong mảng: 23
a.Bài toán: 23
b.Phân tích bài toán: 23
c.Nhận xét: 26
d.Bài tập củng cố: 27
3.4.Bài toán tìm kiếm trong mảng: 27

a.Bài toán: 27
4
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
b.Phân tích bài toán: 27
c.Nhận xét: 34
d.Bài tập củng cố: 34
VI. KẾT QUẢ THU ĐƯỢC: 35
V. KIẾN NGHỊ, ĐỀ NGHỊ SAU KHI THỰC HIỆN ĐỀ TÀI: 37
VI. TÀI LIỆU THAM KHẢO: 39
I. SƠ YẾU LÝ LỊCH:
 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.
 Bộ môn giảng dạy: Tin học.
5
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
 Ngoại ngữ: B
II. NỘI DUNG ĐỀ TÀI:
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ến
trên thế giới ngày càng phát triển mạnh mẽ. Đặc biệt là trong
ngành lĩnh vực Công nghệ thông tin, sự phát triển của nó đã ảnh
hưởng vô cùng lớn đến sự phát triển của một đất nước, ảnh hưởng

6
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
khô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ẫn
trong 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 theo
hướng công nghiệp hoá, hiện đại hoá đất nước, hoà cùng nhịp phát
triể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 con
người. Do đó trong nền giáo dục hiện nay cần áp dụng tin học
rộ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ăng
giú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ên
ghế nhà trường.
Hiện nay tôi đang là một giáo viên giảng dạy trong một
trườ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
cả người truyền đạt và người tiếp nhận kiến thức. Không những
7
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin

Mô phỏng thuật toán Trường THPT Quốc Oai
thế 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ếu
khô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ành
kèm theo, hay không có hình ảnh trực quan thì các em chỉ học
mang 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ết
qua thông tin đại chúng, qua báo đài. Nếu giáo viên đưa ra một vài
hình ảnh minh họa được trình chiếu trên máy tính thì chắc chắn
tiế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ầm
quan trọng của Tin học, của máy tính đối với nền giáo dục hiện
nay và với bộ môn tin học của tôi nói riêng. Tin học, một khái
niệm không quá xa lạ với chúng ta hiện nay, nhưng nhiều người
chỉ hiểu được ý nghĩa của nó là gắn liền với thông tin, với máy
tính. Nhưng hiện nay, nó đã trở thành một môn học chính trên
giả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ư duy
thuậ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
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ọc
8
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
củ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ỏng
giú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ọc
trở nên sinh động hơn, giúp học sinh có thêm lý thú khi học, say
mê học hơn.
Từ lâu mô phỏng thuật toán được coi là công cụ hỗ trợ cho việc
giảng dạy các thuật toán như sắp xếp, đệ quy. . . trên máy tính, vì
nó tạo ra một hình ảnh mô phỏng sinh động cho từng thuật toán
trong quá trình thực thi. Mặt khác, mô phỏng thuật toán còn góp
phần giúp các học sinh, sinh viên khi mới làm quen với thuật toán
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ái
niệ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ười
bắt đầu làm quen với lập trình căn bản.
9
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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ảng
dạ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 THPT
Quố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. Khi
giả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ếp
thu 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ột
thực tế hiện lên đó là các em càng học, càng có xu hướng không
hứ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ọc
sinh 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ú trong
học tập. Nguyên nhân một phần do các em không có điều kiện trong
học tập, máy tính không đủ để 1 học sinh / 1 máy tính thực hành
ngay 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ên
làm cho học thấy không hứng thú môn học. Và một nguyên nhân
nữa tôi thấy là chủ yếu, đó là sự truyền đạt kiến thức cho các em
chưa thật sự hiệu quả, chưa thật sự giúp học sinh hiểu bài nhanh.
10
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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ên
má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ặp
hay 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ài
toán trên máy tính. Đa phần các em chỉ nêu được phần xác định yêu
cầ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ọc
sinh sẽ thấy khó hiểu và khó trình bày. Vì vậy giáo viên nên hướng
dẫ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 minh
họ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án
trê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ải
mộ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ành
cho mình một khái niệm chung về thuật toán và hiểu thế nào là lập
trình. Thực tế, khi học sinh lớp 10 học về thuật toán, giáo viên nên
hướng dẫn cách xây dựng thuật toán cho học sinh hiểu, sau đó minh
họ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ây
dựng thuật toán, giáo viên nên hướng dẫn cho các em biết cách vận
dụ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ông
hứ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
11
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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 cho
giá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
và khối 11.
 Khối 10: Lớp 10A3 có 50 học sinh.

Đề bài:
1. Mô phỏng một dãy số sau bằng thuật toán sắp xếp dãy tăng
dần:
67, 7, 27, 84, 59, 28, 46, 10, 99
2. Trình bày thuật toán tìm Max của 2 số nguyên M và N.
Minh họa bằng một cặp số cụ thể trên thuật toán.
Nhận xét: Với đề bài này, tỉ lệ số học sinh làm được phần mô
phỏng là rất ít. Đa số các em sẽ thấy khó hiểu khi phải trình bày phần
mô phỏng thuật toán trên một bộ giá trị cụ thể. Vì các em chỉ hình
dung được thuật toán khi giáo viên đã hướng dẫn trên lớp và trong
sách giáo khoa. Nhưng khi áp dụng vào một giá trị cụ thể thì học sinh
lại không làm được.
Chấm bài, tôi thu được kết quả sau:
12
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
Điểm Số học sinh Tỷ lệ %
10 0 0
9 1 2
8 3 6
7 11 22
6 24 48
5 9 18
4 2 4
3 0 0
2 0 0
1 0 0
 Khối 11: Lớp 11A6 có 45 học sinh.
Đề bài:
Cho mảng gồm N phần tử kiểu nguyên a1, a2, a3,…, an (N <= 40

). Hãy lập trình:
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:
Điểm Số học sinh Tỷ lệ %
10 0 0
9 1 2
8 2 4
7 9 18
6 19 38
13
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
5 14 28
4 4 8
3 1 2
2 0 0
1 0 0
Nguyên nhân chính ở đây là do một phần ở ý thức học của học
sinh, một phần do khả năng tư duy thuật toán của các em chưa tốt nên
làm các em thấy môn học khó hiểu, một phần do sự truyền đạt nội
dung bài học chưa thật sự hiệu quả của người dạy. Nên kiểm tra chất
lượ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 đạt

bà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ạy
tin 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.
14
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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.
• 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:
15
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
Mô phỏng thuật toán với bộ giá trị M = 9, N = 6. Ta thu được

kết quả sau.
16
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
- 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ạng
cấu trúc điều kiện thường gặp là: If – then, For – to – do, While
17
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
– do, Repeat – until, Case – of ,… Điều kiện ở đây là các biểu
thức logic.
Bài toán trên có sử dụng cấu trúc điều kiện là cấu trúc
While - do. Đây là dạng bài thường gặp trong lập trình.
Cấu trúc:
While < điều kiện > do < Câu lệnh>;
c. Bài tập củng cố:
Hãy mô phỏng thuật toán tính biểu thức sau:
4 5
1
x
s
x

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

a. Bài toán:
Cho một số nguyên dương N. Kiểm tra xem số đó có là số
nguyên tố không?
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:
18
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
- 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?
19
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Sơ đồ khối
Liệt kê các bước
Mô phỏng thuật toán Trường THPT Quốc Oai
Số 15 nhập vào:
Thuật toán chạy như sau:
Bước thực hiện Mô phỏng
- B1: Nhập 15
- B2: 15 < 1 : sai
- B3: 15< 4: sai
- B4: i = 2> 3: Sai
chuyển sang b6.
- B6: 15 không
chia hết cho 2 nên
tăng i = 3 quay lại

bước 5.
20
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
- B5: i = 3, kiểm
tra 15 chia cho 3
không?: Đúng
 Thông báo 15
không là số
nguyên tố.
File mô phỏng: songuyento.exe
- Chương trình:
21
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
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ấu
trú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ại
sao 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 sao
kiể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ông
báo là nguyên tố hay không nếu học sinh không hiểu và không
biết sử dụng một biến kiểm tra kiểu Boolean. Vậy khi đưa ra

22
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
chương trình, giáo viên nên nói rõ về việc sử dụng biến kiểm tra
trong 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:
23
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
- Mô phỏng thuật toán:
Với input là bộ giá trị: 100, 19, 1, 98, 56, 43, 65, 72, 24, 35.
Ta có hình ảnh mô phỏng sau:
Dãy số:
Lần 1: M = N = 10 → i chạy từ 1 đến M – 1 = 9. Ta có:
Bước thực hiện Mô phỏng
i = 1:
a[1] = 100 > a[2] = 19 
Đổi chỗ cho nhau.
i = 2:
a[2] = 100 > a[3] = 1  Đổi

chỗ cho nhau.
i = 3:
a[3] = 100 > a[4] = 98 Đổi
chỗ cho nhau.
i = 4:
a[4] = 100 > a[5] = 56 Đổi
chỗ cho nhau.
i = 5:
a[5] = 100 > a[6] = 43 Đổi
chỗ cho nhau.
24
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin
Mô phỏng thuật toán Trường THPT Quốc Oai
i = 6:
a[6] = 100 > a[7] = 65 Đổi
chỗ cho nhau.
i = 7:
a[7] = 100 > a[8] = 72 
Đổi chỗ cho nhau.
i = 8:
a[8] = 100 > a9] = 24  Đổi
chỗ cho nhau.
i = 9:
a[9] = 100 > a[10] = 35
Đổi chỗ cho nhau.
Kêt thúc vòng lặp M = 10
ta có phần tử 100 đã được
sắp xếp.
Tương tự, M giảm dần xuống 2 và mỗi lần M giảm thì biến i
chạy từ 1 đến M – 1. Ta thu được kết quả như sau:

Bước thực hiện Mô phỏng kết quả
Lần 2: M= 8; i: 1→ 7
Lần 3: M= 7; i: 1→ 6
Lần 4: M= 6; i: 1→ 5
Lần 5: M= 5; i: 1→ 4
Lần 6: M= 4; i: 1→ 3
Lần 7: M= 3; i: 1→ 2
Lần 8: M= 2; i: 1→ 1
25
Giáo viên: Nguyễn Thị Hải_ Tổ Toán Tin

×