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

skkn đề tài “sử dụng linh hoạt bộ test trong giảng dạy cấu trúc lặp” thpt đoàn kết

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 (288.35 KB, 21 trang )

Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
MỤC LỤC
A. PHẦN I: ĐẶT VẤN ĐỀ
1. Lý do chọn đề tài 2
2. Mục đích nghiên cứu 3
3. Phạm vi đề tài 3
4. Đối tượng, kế hoạch và phạm vi nghiên cứu 3
B. PHẦN II: NỘI DUNG
CHƯƠNG I : TỔNG QUAN 4
1. Cơ sở lý luận 4
2. Cơ sở thực tiễn , 4
CHƯƠNG II : NỘI DUNG VẤN ĐỀ NGHIÊN CỨU 5
I. Giới thiệu về Pascal và cấu trúc lặp trong Pascal … 5
II. Cấu trúc chung của cấu trúc lặp trong Pascal 5
III. Tìm hiểu về bộ Test:6
IV. Một số bài toán về cấu trúc lặp…………………………………… 7
1) Bài toán 1 7
2) Bài toán 2 8
3) Bài toán 3 10
4) Bài toán 4 11
5) Bài toán 5 12
6) Bài toán 6 13
7) Bài toán 7 14
8) Bài toán 8 16
CHƯƠNG III: PHƯƠNG PHÁP VÀ KẾT QUẢ NGHIÊN CỨU 19
1) Phương pháp nghiên cứu 19
2) Kết quả nghiên cứu 19
C. PHẦN III: PHẦN KẾT THÚC
TÀI LIỆU THAM KHẢO 21
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
1


Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
A. PHẦN I: ĐẶT VẤN ĐỀ
1) Lý do chọn đề tài :
Từ năm 2006 đến nay, môn tin học đã được áp dụng cho mọi đối tượng học sinh trung
học phổ thông (THPT) không phân hóa theo chuyên ban và được dạy cho cả 3 khối lớp 10, 11,
12. Song môn tin học ở bậc Trung học cơ sở là một môn học tự chọn. Do vậy mà môn tin học ở
bậc THPT được xây dựng trên giả thiết là một môn học mới nên học sinh phải học lại từ đầu.
Vả lại môn tin học nhằm cung cấp cho học sinh những kiến thức phổ thông về ngành khoa học
tin học, hình thành và phát triển khả năng tư duy thuật toán, năng lực sử dụng các thành tựu của
ngành khoa học trong học tập và trong lĩnh vực hoạt động của mình sau này. Đặc biệt là về kiến
thức sẽ trang bị cho học sinh một cách tương đối có hệ thống các khái niệm cơ bản nhất ở mức
phổ thông về tin học, một ngành khoa học với những đặc thù riêng, các kiến thức về hệ thống,
thuật toán, cấu trúc dữ liệu, lập trình, …. Về kỹ năng thì học sinh bước đầu biết được sử dụng
máy tính, biết soạn thảo văn bản, biết sử dụng Internet, khai thác được các phần mềm thông
dụng, giải được các bài toán đơn giản bằng máy tính. Còn về thái độ thì rèn luyện cho học sinh
phong cách suy nghĩ và làm việc khoa học như sự ham hiểu biết, tìm tòi, sáng tạo, chuẩn mực
chính xác trong suy nghĩ và hành động, say mê môn học, cẩn thận trong công việc, hợp tác tốt
với bạn bè.
Tin học là một môn học mới ở các trường phổ thông nên học sinh còn nhiều bỡ ngỡ khi
tiếp cận với môn học này. Nội dung tin học lập trình lớp 11 là một nội dung mới lạ đối với đa số
học sinh với nhiều khái niệm, thuật ngữ, cấu trúc dữ liệu mà học sinh mới được tiếp xúc lần đầu.
Tuy nhiên mọi thứ điều có điểm khởi đầu của nó, với học sinh việc học ngôn ngữ lập trình
Turbo Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao, qua đó giúp các em hình
dung được sự ra đời, cấu tạo, hoạt đông cũng như ích lợi của các chương trình hoạt động trong
máy tính, các máy tự động… Qua đó giúp các em có thêm một định hướng, một niềm đam mê
về tin học, về nghề nghiệp mà các em chọn sau này.
Xuất phát từ cơ sở trên, tôi đã chọn đề tài “Sử dụng linh hoạt bộ Test trong giảng dạy cấu
trúc lặp”.
2) Mục đích nghiên cứu:
Do gặp phải những bài toán khó nên khi giải các em gặp rất nhiều khó khăn, đôi khi dẫn

đến nản chí, do đó khi cho các em lập trình giải các bài toán bằng máy tính, sẽ gây được hứng
thú tìm tòi và học tập. Vì vậy trong nội dung đề tài này tôi giới thiệu việc lập trình giải một vài
bài toán toán học để giúp cho học sinh lớp 11.
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
2
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
Tuy vậy, đối với đối tượng học sinh khá giỏi, đa phần các em rất hào hứng với việc học
lập trình, cụ thể là ngôn ngữ lập trình Turbo Pascal. Do đó, đề tài này giúp học sinh có thêm kĩ
năng lập trình Pascal thông qua một số ví dụ từ cơ bản đến nâng cao thích hơn với mọi đối
tượng học sinh.
3) Phạm vi đề tài:
Khi dạy ngôn ngữ lập trình nói chung, ngôn ngữ lập trình Turbo Pascal nói riêng là rất
nhiều, rất phong phú với các bộ Test khác nhau. Tuy nhiên trong phạm vi sáng kiến kinh nghiệm
này tôi chỉ trình bày một số kinh nghiệm của cá nhân tôi qua một số bài tập cụ thể.
4) Đối tượng, kế hoạch và phạm vi nghiên cứu:
Đối tượng nghiên cứu: học sinh các lớp 11B6, 11B7, 11B8, 11B9 trường THPT Tôn Đức
Thắng năm học 2013-2014.
Kế hoạch nghiên cứu: ở các tiếp bài tập và thực hành.
Phạm vi nghiên cứu: phần cấu trúc lặp ở chương trình tin học lớp 11.
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
3
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
B. PHẦN II: NỘI DUNG
CHƯƠNG I
TỔNG QUAN
1. Cơ sở lí luận:
Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy
học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập. Chỉ thị số
55/2008/CT- BGTĐT ngày 30/9/2008 của Bộ trưởng Bộ GD& ĐT về tăng cường giảng dạy, đào
tạo và ứng dụng công nghệ thông tin trong ngành giáo dục giai đoạn 2008-2011. Điều 24.2 của

Luật giáo dục đã nêu rõ : “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác,
chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng
phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình
cảm, đem lại niềm vui, hứng thú học tập cho học sinh”. Như vậy, chúng ta có thể thấy định
hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận. Cốt
lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng tới việc
học tập chủ động, chống lại thói quen học tập thụ động. Với một số nội dung trong đề tài này,
học sinh có thể tự học, tự rèn luyện thông qua một số bài tập, dạng bài tập cụ thể.
2. Cơ sở thực tiễn:
Thực tế giảng dạy ở trường THPT Tôn Đức Thắng cho thấy: lập trình Pascal là phần học
khó nhất trong 3 năm. Học sinh tiếp thu kiến thức mơ hồ, máy móc. Ảnh hưởng từ môn học
Toán đến phần học này cũng khá nhiều, thực tế đã chứng minh nếu không có nền tảng kiến thức
toán học tốt thì không thể học Pascal.
Tuy vậy, Pascal vẫn gây được hứng thú khi giải quyết được các bài toán toán học bằng
máy tính với nhiều bộ Test khác nhau. Trước khi cho chạy chương trình bằng phần mềm tương
ứng, tôi đã hướng dẫn các em sử dụng các bộ dữ liệu chạy thử bằng “tay” để kiểm tra tính đúng
đắn của đoạn code đó. Với sự chạy “tay” này đã giúp các em phần nào hiểu rõ hơn về thuật toán
của bài toán. Từ đó sẽ hăng say lập trình giải quyết các bải toán khó hơn. Bằng cách này sẽ giúp
phần nào cho các em trong việc giải quyết các bài toán trong môn học toán, một môn khá khó.
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
4
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
CHƯƠNG II:
NỘI DUNG VẤN ĐỀ NGHIÊN CỨU
I. GIỚI THIỆU VỀ PASCAL VÀ CẤU TRÚC LẶP TRONG PASCAL:
Pascal là ngôn ngữ lập trình bậc cao do giáo sư Niklaus Wirth (trường đại học mỹ thuật,
Zurich, Thụy Sĩ) sáng tác và công bố vào đầu những năm 1970, với tên Pascal để kỷ niệm nhà
toán học người Pháp Blaise Pascal, thế kỷ 17. Lúc đầu, Pascal được sáng tác ra với mục đích
làm một ngôn ngữ máy tính để dạy học cho sinh viên ở các trường đại học: nó giúp cho sinh
viên cũng như những người mới học lập trình có được thói quen viết một chương trình có cấu

trúc sáng sủa, rõ ràng, dễ hiểu và dễ đọc cho các đối tượng khác nhau. Trước khi có Pascal, các
sinh viên đều được học ngôn ngữ lập trình Fortran, một ngôn ngữ lâu đời nhất và là một ngôn
ngữ không có cấu trúc. Giáo sư Wirth thấy rằng có thể tránh được rất nhiều
Pascal là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, là ngôn ngữ đặc
biệt thích hợp cho kiểu lập trình có cấu trúc.Pascal dựa trên ngôn ngữ lập trình Algol. Cho đến
nay Pascal vẫn được dùng để giảng dạy về lập trình trong nhiều trường trung học và đại học trên
thế giới, và nhiều thế hệ sinh viên đã "vào đời" thông qua việc học Pascal như ngôn ngữ vỡ lòng
trong các chương trình học đại cương. Nhiều biến thể của Pascal ngày nay vẫn còn được sử
dụng khá phổ biến, cả trong giảng dạy lẫn trong công nghiệp phát triển phần mềm.Phần lớn hệ
điều hành Macintosh được viết bằng Pascal. Hệ sắp chữ TeX được Donald Knuth viết bằng
ngôn ngữ mang nhiều yếu tố của Pascal.Trong chương trình Tin học cấp trung học phổ thông, ở
lớp 11 phần lập trình đơn giản, học sinh được học ngôn ngữ lập trình Pascal để lập trình giải các
bài toán trong chương trình trung học và cũng như nội dung thi học sinh giỏi môn Tin học đều
sử dụng ngôn ngữ lập trình Pascal để giải các bài toán đó.
Cấu trúc lặp trong Pascal là một dạng bài tập ít nhiều gây khó khăn cho học sinh lớp 11.
Lặp là một việc gì đó có sự giống nhau về cả tính chất lẫn số lượng.
II. CẤU TRÚC CHUNG CỦA CẤU TRÚC LẶP TRONG CHƯƠNG TRÌNH PASCAL:
Trong chương trình tin học lớp 11 chỉ tìm hiểu 2 loại lặp: Lặp với số lần lặp biết trước và
lặp với số lần lặp chưa biết trước.
1. Lặp với số lần lặp biết trước và câu lệnh For…Do:
* Lặp tiến:
For Biến_đếm: = Giá_trị_đầu TO Giá_trị_cuối DO câu lệnh;
* Lặp lùi:
For Biến_đếm: = Giá_trị_cuối DOWNTO Giá_trị_đầu DO câu_lệnh;
Trong đó:
Biến_đếm là biến đơn, thường có kiểu nguyên.
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
5
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
Giá_trị_đầu, Giá_trị_cuối là các biểu thức cùng kiểu với Biến_đếm và Giá_trị_đầu <

Giá_trị_cuối. Nếu Giá_trị_đầu > Giá_trị_cuối thì vòng lặp không được thực hiện.
Lưu đồ vòng lặp xác định FOR…TO….DO
2. Lặp với số lần lặp chưa biết trước và câu lệnh While…Do:
While <điều kiện> do <câu lệnh>;
Trong đó:
Điều kiện: biểu thức logic
Câu lệnh: là một câu lệnh hoặc câu lệnh ghép.
Sai
Đúng
III. TÌM HIỀU VỀ BỘ TEST:
Testing hay còn gọi là kiểm thử là một công đoạn được thực thi nhằm mục đích đánh giá
một sản phẩm nào đó. Testinh là một trong những công đoạn quan trọng nhất trong vòng đời của
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
6
Begin
Biến_đếm:= Giá_trị_đầu
Biến_đếm >
Giá_trị_cuối
DO Câu lệnh
Biến_đếm:= Succ (Biến_đếm)
Điều kiện
Câu lệnh
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
một sản phẩm, không những giúp bạn đánh giá chất lượng sản phẩm mà còn đóng vai trò như
một công cụ giúp bạn biết được tiến độ thi hành sản phẩm đó tới đâu, còn thiếu sót gỉ?
Để dễ dàng hình dung được quá trình testing, chúng ta xét một bài toán tin học đơn giản
như sau: Hãy lập chương trình xác định một số nguyên là số chẵn hay số lẻ. Giả sử bạn viết
xong chương trình giải bài toán này, điểu bạn cần làm tiếp theo là kiểm tra chương trình ấy đúng
hay sai. Các thao tác để kiểm thử có thể được làm như sau:
Bước 1: Chạy chương trình.

Bước 2: Nhập số 2 cho chương trình đọc ( bạn mong chờ chương trình thông báo kết quả
là số chẵn).
Bước 3: Chương trình in kết quả. Bạn ghi lại kết quả này.
Bước 4: So sánh kết quả với kết quả mong đợi xem có khớp nhau hay không. Nếu kết
quả khớp nhau, chương trình của bạn đã chạy đúng trong trường hợp cần xét số 2 chuyển qua
bước 6. Nếu kết quả không khớp, chương trình của bạn bị sai bạn cần chuyển sang bước 5.
Bước 5: Sửa lại chương trình. Sau khi sửa xong quay lại bước 1.
Bước 6: Lập lại bước 1 với dữ liệu nhập vào là một số khác cho đến khi nào cảm thấy
không cần kiểm thử nữa.
Đó chính là công đoạn testing. Công đoạn này nhằm đảm bảo xem bạn đã giải quyết
được bài toán hay chưa, nếu giải quyết ở mức độ nào.
Vậy: test là một bộ dữ liệu, bao gồm input đưa vào chương trình và output dự kiến
chương trình đưa ra, phục vụ cho công đoạn testing.
IV. MỘT SỐ BÀI TOÁN VỀ CẤU TRÚC LẶP:
1. BÀI TOÁN 1: Với a là số nguyên và a > 2, tính tổng:
S =
1
a
+
1
1a +
+
1
2a +
+….+
1
100a +
a. Chương trình:
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
7

Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
b. Chạy Test bằng tay:
Ở bài toán này, cần giúp học sinh biết được số lần lặp không thay đổi khi a thay đổi. Tôi
hướng dẫn học sinh thay lần lượt 4 giá trị 10, 100, 200, 1000 của a vào để kiểm tra sự lặp.
Nếu a = 10 lúc này tổng S =
1 1 1 1

10 10 1 10 2 100
+ + + +
+ +
 lặp 100 lần.
a = 100 lúc này tổng S =
1 1 1 1

100 100 1 100 2 100 100
+ + + +
+ + +
 lặp 100 lần.
Tương tự cho 2 giá trị 200 và 1000.
a 10 100 200 1000
Số lần lặp 100 100 100 100
c. Chạy chương trình bằng Turbo Pascal:
2. BÀI TOÁN 2: : Viết chương trình nhập từ bàn phím 2 số nguyên dương M, N (M < N),
tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi tử M, N
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
8
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
a. Chương trình:

b. Chạy Test bằng tay:

 Nhập M = 1 và N = 10
Lúc này i sẽ chạy lần lượt từ 1 đến 10, kiểm tra từng i xem có chia hết cho 3 hoặc 5
không, nếu có sẽ tiến hành cộng dồn và xuất ra T cuối cùng.
i 1 2 3 4 5 6 7 8 9 10
T 0 0 3 3 8 14 14 14 23 33
 Nhập M = 35 và N = 44
i 35 36 37 38 39 40 41 42 43 44
T 35 71 71 71 110 150 150 192 192 192
c. Chạy chương trình bằng Turbo Pascal:

Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
9
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
3. BÀI TOÁN 3: Cho đoạn chương trình sau:
Var i, S: integer;
Begin
Clrscr;
S: = 0;
For i:= 5 downto 1 do S:= S + I;
Writeln(‘Tong la:’, S);
End.
a. Chương trình:
b. Chạy Test bằng tay:
I 5 4 3 2 1
S 0 + 5 5+ 4 9 + 3 12 + 2 14+ 1  Tong la: 15

c. Chạy chương trình bằng Turbo Pascal
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
10
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”

4. BÀI TOÁN 4: Tính N!
a. Chương trình:
b. Chạy Test bằng tay:
Nhập N = 7
Lúc này i sẽ chạy từ 1 đến 7
i 1 2 3 4 5 6 7
GT 1 2 6 24 120 720 5040
c. Chạy chương trình bằng Turbo Pascal:

Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
11
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
5. BÀI TOÁN 5: Giải bài toán cổ:
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu con
Một trăm chân chẵn
Hỏi có bao nhiêu con gà, bao nhiêu con chó?
a. Chương trình:


b. Chạy Test bằng tay:
Cho biến Cho chạy từ 1 đến 24. biến Ga = 24 - Cho
Kiểm tra xem cho*2 + ga = 50 hay không
Cho 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Ga 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20

Số chân 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 51


Cho 17 18 19 20 21 22 23 24

Ga 19 18 17 16 15 14 13 12
Số chân 53 54 55 56 57 58 59 60
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
12
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
c. Chạy chương trình bằng Turbo Pascal:

6. BÀI TOÁN 6: Nhập từ bàn phím tuổi của cha và con ( hiện tại tuổi cha lớn hơn hai lần
tuổi con và tuổi cha hơn tuổi con ít nhất là 25). Đưa ra màn hình câu trả lời cho câu hỏi:
“Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?
a. Chương trình:


Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
13
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
b. Chạy Test bằng tay:

Tuổi cha 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Tuổi con 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Năm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Tuổi cha 42 43 44 45 46 47 48 49 50
Tuổi con 17 18 19 20 21 22 23 24 25
Năm 15 16 17 18 19 20 21 22 23
c. Chạy chương trình bằng Turbo Pascal:

7. BÀI TOÁN 7: Với a là số nguyên và a > 2, tính tổng:
S =

1
a
+
1
1a +
+
1
2a +
+….+
1
a N+
+… cho đến khi
1
a N+
< 0,0001
a. Chương trình:
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
14
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
b. Chạy Test bằng tay: Với bài toán này, không thể xác định lặp bao nhiêu lần mà phải
phụ thuộc vào giá trị của a và điều kiện
1
0,0001
a N
<
+
 Nếu a = 10 lúc này tổng S =
1 1 1 1

10 10 1 10 2 10 N

+ + + + +
+ + +
Cho đến khi
1
10 N+
< 0, 0001 (=
1
10000
)  N = 9991  lặp 9991 lần
 Nếu a = 100 lúc này tổng S =
1 1 1 1

100 100 1 100 2 100 N
+ + + + +
+ + +

Cho đến khi
1
100 N+
< 0,0001 (=
1
10000
)  N = 9901  lặp 9901 lần
a 10 100 200 1000
Số lần lặp 9991 9901 9801 9001
c. Chạy chương trình bằng Turbo Pascal:

Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
15
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”

8. BÀI TOÁN 8: Bài toán tháp Hà Nội của các nhà sư.
Tương truyền rằng ở một ngôi đền lớn tại Bénarès (Ấn Độ) có một tấm đế bằng đồng,
trên đó có 3 cái cọc bằng kim loại, trong đó Thượng đế khi khai sinh ra thế giới đã xếp 64 cái
đĩa bằng vàng trên một cái cọc khác với nguyên tắc sau:
 Mỗi lần chỉ được dịch chuyển một đĩa.
 Một đĩa có thể được chuyển từ một cọc này sang cọc khác bất kỳ.
 Không được để một đĩa trên một đĩa khác có đường kính nhỏ hơn.
Và ngày tận thế sẽ đến khi 64 chiếc đĩa vàng được dịch chuyển và để làm việc này phải
mất trên 58 tỉ năm!
Ý tưởng:
Đánh số 3 cọc là C1, C2, C3. Giả sử có N đĩa với đường kính giảm dần và lúc đầu được
xếp vào cọc 1 như hình vẽ.
Cọc 1 Cọc 2 Cọc 3
Thí dụ với N = 2 (2 đĩa), ta thấy ngay cách làm: chuyển đĩa bé nhất (đĩa 1) sang cọc 3,
chuyển đĩa 2 sang cọc 2, chuyển đĩa 1 từ cọc 3 sang cọc 2.
Thí dụ với N = 3 (3 đĩa) ta làm lần lượt như sau với giả thiết đã biết cách làm với N – 1
đĩa (2 đĩa trong ví dụ N = 3): chuyển đĩa 1 và 2 sang cọc 3 theo cách làm đã nói trên, chuyển đĩa
3 sang cọc 2, chuyển 2 đĩa 1 và 2 từ cọc 3 sang cọc 2.
Chúng ta có thể tổng quát hóa thuật toán chuyển như sau: lập một chương trình con
DICH_CHUYEN N đĩa từ cọc này tới cọc khác thông qua cọc trung gian (là cọc thứ ba còn lại).
DICH_CHUYEN(N_Dia, TuCoc, ToiCoc, CocTrungGian);
Với N = 2 công việc được diễn tả lại như sau:
DICH_CHUYEN(1, C1, C3, C2);
DICH_CHUYEN(1, C1, C2, C3);
DICH_CHUYEN(1, C3, C2, C1);
Với N = 3 công việc được diễn tả lại thông qua DICH_CHUYEn 2 đĩa:
DICH_CHUYEN(2, C1, C3, C2);
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
16
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”

DICH_CHUYEN(1, C1, C2, C3);
DICH_CHUYEN(2, C3, C2, C1);
Với N tổng quát, ta có:
DICH_CHUYEN(N-1, C1, C3, C2);
DICH_CHUYEN(1, C1, C2, C3);
DICH_CHUYEN(N-1, C3, C2, C1);
Và khởi đầu với N = 1, ta chỉ việc di chuyển từ cọc tới cọc, cọc trung gian không cần
nữa.
a. Chương trình:
b. Chạy Test bằng tay:
Bộ test N = 4
+ DICH_CHUYEN(4, 1, 2, 3)
DICH_CHUYEN(3, 1, 3, 2): Di chuyển cột 1 sang cột 3
DICH_CHUYEN(1, 1, 2, 3) Di chuyển cột 1 sang 2
DICH_CHUYEN(3, 3, 2 ,1) Di chuyển cột 3 sang cột 2
+ DICH_CHUYEN (3, 1, 3, 2)
DICH_CHUYEN (2, 1, 2 ,3) Di chuyển cột 1 sang cột 3
DICH_CHUYEN(1, 1, 3 ,2) Di chuyển cột 2 sang cột 1
DICH_CHUYEN(2, 2, 3, 1) Di chuyển cột 2 sang cột 3
+ DICH_CHUYEN (2, 1, 2, 3)
DICH_CHUYEN(1, 1, 3, 2) Di chuyển cột 1 sang cột 3
DICH_CHUYEN(1, 1, 2, 3) Di chuyển cột 1 sang cột 2
DICH_CHUYEN(1, 3, 2, 1) Di chuyển cột 3 sang cột 2
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
17
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
+ DICH_CHUYEN(1, 1, 3, 2)
DICH_CHUYEN(1, 2, 3)
c. Chạy chương trình bằng Turbo Pascal:


Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
18
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
CHƯƠNG III:
PHƯƠNG PHÁP VÀ KẾT QUẢ NGHIÊN CỨU
1) Phương pháp nghiên cứu:
Sáng kiến kinh nghiệm đang trình bày của tôi dựa theo các luận cứ khoa học hướng đối
tượng, cụ thể: thuyết trình, quan sát, điều tra cơ bản, phân tích kết quả thực nghiệm sư
phạm,v.v… phù hợp với bài học và môn học.
2) Kết quả nghiên cứu:
- Bảng số liệu kết quả đạt được của học sinh lớp 11 năm học 2012-2013 khi chưa thực hiện đề
tài:
STT Lớp Sĩ số Đạt yêu cầu Không đạt yêu cầu
1 11B6 37 90% 10%
2 11B7 32 80% 20%
3 11B8 35 85% 15%
4 11B9 36 90% 10%
- Bảng số liệu kết quả đạt được của học sinh lớp 11 năm học 2013-2014 sau khi thực hiện đề
tài:
Lớp Số học sinh
Kết quả từ TB trở lên
Đầu năm Học kì I Cuối năm
11B6 37 29 32 37
11B7 32 28 28 32
11B8 35 30 33 35
11B9 36 30 31 36
C. PHẦN III: PHẦN KẾT THÚC
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
19
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”

Trong nội dung của đề tài này, với mong muốn giúp cho việc dạy và học ngôn ngữ lập
trình nói chung và Pascal nói riêng của giáo viên và học sinh được tốt hơn.
Trên đây là kinh nghiệm của tôi dạy ở khối lớp 11 cũng như tham khảo qua nhiều nguồn
thông tin, tư liệu khác nhau, rất mong được sự đóng góp của các đồng nghiệp nhằm giúp đề tài
của tôi được hoàn thiện thêm.
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
20
Đề tài: “Sử dụng linh hoạt bộ Test trong giảng dạy cấu trúc lặp”
TÀI LIỆU THAM KHẢO
1) Tài liệu nghiên cứu khoa học sư phạm ứng dụng
2) Tạp chí “Tin học và nhà trường”
3) Hồ Sĩ Đàm (chủ biên) - Sách giáo khoa, sách giáo viên tin học lớp 11.
4) GS - TS Hoàng Kiếm - “Giải một bài toán trên máy tính như thế nào”
5) Quách Tuấn Ngọc - Ngôn ngữ lập trình Pascal
6) Các bài tập tham khảo ở đĩa CD “100 bài toán - tin”
Trường THPT Tôn Đức Thắng Giáo viên thực hiện: Nguyễn Thị Thơm
21

×