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

Phương pháp giải các bài toán bằng ngôn ngữ lập trình Pascal

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 (198.08 KB, 19 trang )

DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT
- THCS: Trung học cơ sở
- THPT: Trung học phổ thông
- PTDTBT: Phổ thông Dân tộc bán trú
- GD&ĐT: Giáo dục và Đào tạo
- HS: học sinh
- SL: số lượng
-TB: Trung bình

1


MỞ ĐẦU
1. Lí do chọn đề tài
Giáo dục và Đào tạo đóng một vai trị rất quan trọng trong chiến lược
phát triển của mỗi quốc gia. Đối với giáo dục thì Đảng và Nhà nước ta đã xác
định “Mục tiêu giáo dục là đào tạo con người Việt Nam phát triển tồn diện,
có đạo đức, tri thức, sức khoẻ, thẩm mỹ và nghề nghiệp, trung thành với lý
tưởng độc lập dân tộc và chủ nghĩa xã hội; hình thành và bồi dưỡng nhân
cách, phẩm chất và năng lực của công dân, đáp ứng yêu cầu của sự nghiệp
xây dựng và bảo vệ Tổ quốc” (Điều 2. Luật Giáo dục năm 2005). Như vậy
chúng ta phải chuẩn bị cho thế hệ học sinh hơm nay những gì đó chính là
những điều mà tất cả chúng ta đều phải quan tâm, vậy điều quan tâm trước
nhất là chất lượng dạy và học trong mỗi nhà trường, mỗi địa phương.
Lịch sử nhân loại đã chứng kiến những cuộc cách mạng về công nghệ
thông tin với sự trợ giúp của máy tính và hệ thống máy tính, con người đã
nâng cao năng suất và tự động hóa ngày một hiệu quả hơn và một trong
những ứng dụng khơng thể khơng nhắc đến đó là những ứng dụng phần mềm
của máy tính với nền cơng nghệ thơng tin hiện nay. Phần mềm máy tính ngày
một phát triển với những ngơn ngữ lập trình khác nhau và cụ thể là ngơn ngữ
lập trình Pascal. Pascal là một ngơn ngữ lập trình có cú pháp chặt chẽ, đơn


giản và dễ hiểu. Do vậy, Việt Nam nói chung và ngành Giáo dục Đào tạo nói
riêng phải đầu tư phát triển về mọi mặt. Đặc biệt là nguồn nhân lực tri thức tức
là phải đào tạo ra một thế hệ trẻ năng động, thông minh, độc lập, sáng tạo, nắm
vững tri thức khoa học công nghệ để làm chủ trong mọi hồn cảnh cơng tác và
hoạt động xã hội nhằm đáp ứng được nhu cầu trong thời kì cơng nghiệp hố,
hiện đại hố đất nước.
Đặc trưng của mơn Tin học lớp 8 là kiến thức về lập trình. Ngơn ngữ lập
trình dường như rất xa lạ vì đây là kiến thức đầu tiên trong lập trình mà các
em được học.
Qua giảng dạy môn Tin học ở trường PTDTBT THCS Pa Nang, bản thân
tôi nhận thấy rằng nhiều học sinh lớp 8 thấy mơn lập trình Pascal khó, khơ
khan. Mới đầu các em cũng rất sợ vì khi thấy giải một bài tốn ở ngồi thì
đơn giản và chỉ trong vịng vài giây có thể nhẩm ra kết quả cịn ở trong lập
trình cũng bài tốn đó mà phải làm đến hàng chục phút mà có thể cho kết quả
sai. Pascal trở nên quá xa lạ và khó khăn đối với người sử dụng và nhất là đối
với học sinh THCS là những người đang trực tiếp ứng dụng ngôn ngữ lập
trình này.
Xét ở một góc độ nào đó lập trình cũng là một mơn học khó đối với học
sinh THCS. Khó ở đây khơng phải do tính phức tạp của môn học hay phạm vi
2


kiến thức quá rộng lớn. Nếu đem so sánh môn học lập trình và các phân mơn
Tốn học ở trường THCS thì Lập trình Pascal gọn nhỏ hơn nhiều lần.
Lập trình Pascal "khó" đối với học sinh THCS ở chỗ: mơi trường lập
trình Pascal có giao diện và các từ khóa đều bằng tiếng Anh, các dịng thơng
báo hay trợ giúp cũng vậy. Nhìn chung học sinh các trường miền núi, học sinh
dân tộc thiểu số vốn tiếng Anh không nhiều, đa số các em còn yếu về tiếng
Anh. Lấy đơn vị lớp để tính thì mỗi lớp chỉ có một vài em được gọi là "thông
thạo" tiếng Anh qua các bài học. Hầu hết số còn lại nằm trong trạng thái "mù

tịt". Đây là một khó khăn cho việc dạy và học lập trình Pascal.
Một vấn đề nữa cũng là rào cản đối với việc các học sinh THCS tiếp cận
với lập trình Pascal đó là: tư duy Tốn của các em dừng lại ở mức độ sách
giáo khoa Tốn THCS do đó kỹ năng phân tích, tổng hợp, xây dựng thuật toán
cho mỗi bài toán hay vấn đề cần lập trình chưa tốt. Các em vẫn thụ động
trong việc tiếp cận bài toán, sắp xếp tư duy, xây dựng thuật giải.
Từ thực tế trên, trong quá trình dạy học tôi luôn băn khoăn trăn trở làm
thế nào nâng cao chất lượng kỹ năng lập trình cho học sinh lớp 8. Việc tiếp
cận với mơn học rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều
tiết các em mới hiểu việc nhập và xuất dữ liệu. Do đó sẽ rất khó khăn để các
em hình thành kỹ năng viết chương trình. Nhất là những năm gần đây Ngành
giáo dục luôn thành lập đội tuyển tham dự kì thi Tin học trẻ, học sinh giỏi
mơn Tin học lớp 8, 9,…. Điều đó đã thúc đẩy tơi trong q trình giảng dạy
phải nghiên cứu tìm tịi biện pháp, kinh nghiệm để giúp cho các em có sự đam
mê học tập về lập trình, giúp các em biết được quy trình lập trình như thế nào
và định hướng cho học sinh cách để trở thành một lập trình viên thì cần phải
biết những “Kĩ năng giải các bài tốn trên máy tính bằng ngơn ngữ lập trình
Pascal”.
2. Mục đích nghiên cứu và nhiệm vụ nghiên cứu
2.1. Mục đích nghiên cứu
Tìm hiểu thực trạng của việc ứng dụng phần mềm Turbo Pascal vào việc
giải các bài tốn trong chương trình lớp 8 để đề xuất các biện pháp phù hợp
góp phần vào việc nâng cao chất lượng, hiệu quả công tác giảng dạy ngơn ngữ
lập trình Pascal trong chương trình Tin học lớp 8.
3.2. Nhiệm vụ nghiên cứu
- Hệ thống hóa những vấn đề lí luận liên quan tới vấn đề ứng dụng phần
mềm Pascal để giải các bài toán trong chương trình lớp 8.
- Mơ tả thực trạng của việc dạy học ngơn ngữ lập trình Pascal trong
chương trình Tin học lớp 8 – THCS;
3



- Đề xuất các biện pháp, giải pháp, khuyến nghị trong việc ứng dụng
phần mềm Pascal để giải các bài tốn trong chương trình lớp 8.
3. Đối tượng nghiên cứu
Trong phạm vi đề tài này tôi nghiên cứu các kĩ năng để giải các bài tốn
trong chương trình lớp 8 bằng ngơn ngữ lập trình Pascal tại trường PTDTBT
THCS Pa Nang, huyện Đakrông, tỉnh Quảng Trị.
4. Đối tượng khảo sát thực nghiệm
Học sinh lớp 8, trường PTDTBT THCS Pa Nang, huyện Đakrông, tỉnh
Quảng Trị.
5. Phương pháp nghiên cứu
- Nghiên cứu các tài liệu có liên quan đến ngơn ngữ lập trình Pascal.
- Phương pháp quan sát.
- Phương pháp thống kê.
- Phương pháp phỏng vấn, trắc nghiệm.
- Nghiên cứu các phương pháp dạy học tích cực.
- Đối chiếu các kết quả bài kiểm tra của học sinh.
6. Phạm vi và kế hoạch nghiên cứu
6.1. Phạm vi nghiên cứu: Tại trường PTDTBT THCS Pa Nang, huyện
Đakrông.
6.2. Kế hoạch nghiên cứu: Năm học 2019 - 2020 (từ tháng 10 năm 2019
đến tháng 6 năm 2020).
Thời gian
Nội dung cơng việc
Ghi chú
Tháng 10/2019

Đăng kí đề tài, lập kế hoạch nghiên cứu


Tháng 11/2019

Khảo sát thực trạng của đề tài, nghiên cứu
các phương pháp nghiên cứu liên quan đến
đề tài

Tháng 12/2019
– tháng 5/2020

- Sử dụng các phương pháp để áp dụng
việc thực nghiệm đề tài.
- Thu thập, phân tích kết quả nghiên cứu
- Viết báo cáo đề tài

Tháng 6/2020

Hoàn thiện đề tài

4


NỘI DUNG
CHƯƠNG 1. CƠ SỞ LÍ LUẬN
Mục tiêu của giáo dục phổ thơng là giúp học sinh phát triển tồn diện
về đạo đức, trí tuệ, thể chất, thẩm mỹ và các kỹ năng cơ bản, phát triển năng
lực cá nhân, tính năng động và sáng tạo, hình thành nhân cách con người Việt
Nam xã hội chủ nghĩa, xây dựng tư cách và trách nhiệm công dân; chuẩn bị
cho học sinh tiếp tục học lên hoặc đi vào cuộc sống lao động, tham gia xây
dựng và bảo vệ Tổ quốc. (Khoản 1, Điều 27. Luật Giáo dục 2005)
Giáo dục trung học cơ sở nhằm giúp học sinh củng cố và phát triển

những kết quả của giáo dục tiểu học; có học vấn phổ thơng ở trình độ cơ sở
và những hiểu biết ban đầu về kỹ thuật và hướng nghiệp để tiếp tục học trung
học phổ thông, trung cấp, học nghề hoặc đi vào cuộc sống lao động. (Khoản
3, Điều 27. Luật Giáo dục 2005)
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, khả năng làm việc theo nhóm; 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. (Khoản 2, Điều 28. Luật Giáo dục
2005)
Turbo 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ỉ XVII. 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 các trường
THCS, THPT, Cao đẳng, Đại học,… 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 THCS, ở lớp 8 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 tốn trong chương trình THCS đồng
5


thời trong 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 tốn đó.
Trong q trình giảng dạy, tơi nhận thấy mơn tin học nói chung và ngơn
ngữ lập trình Pascal nói riêng là một mơn học mới, khó đối với các em học
sinh lớp 8 tại trường PTDTBT THCS Pa Nang, vì các em chưa từng biết đến,
chưa hình dung được mình học cái gì, học như thế nào,….
Từ thực tế đó tơi khơng ngừng học hỏi để tìm ra biện pháp khắc phục.
Bằng kinh nghiệm dạy học trong những năm qua, tôi đã đưa ra một số phương
pháp để hình thành các kĩ năng giải các bài tốn trên máy tính bằng ngơn ngữ
lập trình Pascal
CHƯƠNG 2. THỰC TRẠNG VẤN ĐỀ NGHIÊN CỨU
2.1. Thực trạng dạy học môn Tin học ở trường THCS
Hiện nay, hầu hết tất cả các trường THCS đều đã đưa môn Tin học vào
giảng dạy, đối với học sinh lớp 8 các em bắt đầu làm quen với khái niệm ngơn
ngữ lập trình nên còn mới mẻ, bở ngỡ. Nhưng hầu hết tất cả các giáo viên đều
bám sát theo sách giáo khoa và yêu cầu học sinh phải học thuộc các khái
niệm, các câu lệnh hay từ khóa điều này khiến cho học sinh khó nhớ dẫn đến
việc tiếp thu, lĩnh hội kiến thức cũng rất khó khăn. Đặc biệt, đối với những
học sinh yếu kém lại càng khó hơn.
Trường PTDTBT THCS Pa Nang được sự quan tâm hỗ trợ tích cực của
các cấp lãnh đạo, các tổ chức đến nay nhà trường có phịng phịng máy vi tính
gồm gần 30 máy vi tính nhưng vẫn chưa đáp ứng được nhu cầu do sĩ số học
sinh đông (34-40 em/lớp) nên các tiết thực hành phải dùng chung 2 đến 3
em/máy.
2.2. Thực trạng dạy học môn Tin học tại Trường PTDTBT THCS Pa Nang
2.2.1. Thuận lợi

Được sự quan tâm của Ngành giáo dục trong công cuộc đổi mới phương
pháp dạy học.
Được sự quan tâm của BGH nhà trường trong việc đầu tư cơ sở vật chất,
trang thiết bị dạy học tương đối đầy đủ đảm bảo phục vụ giảng dạy bộ môn
Tin học.
Giáo viên giảng dạy được đào tạo theo đúng chuyên ngành và được bồi
dưỡng chun mơn hàng năm.
Đa số học sinh có sự say mê, hăng say trong học tập.
2.2.2. Khó khăn

6


Vẫn còn một số em học sinh tiếp thu kiến thức còn chậm, đặc biệt là kĩ
năng cơ bản để giải bài tốn trên máy tính bằng ngơn ngữ lập trình Pascal bởi
đây là một mơn học mới (một mơn ngoại ngữ mới).
Một số phụ huynh chưa thực sự quan tâm đến việc học của con em
mình.
Tài liệu học tập, cơ sở vật chất cịn thiếu.
Học sinh ít được tiếp xúc với máy vi tính do gia đình học sinh chưa có
điều kiện để sắm máy tính cho con học tập.
Qua điều tra những tiết học đầu tiên về cả lý thuyết và thực hành tôi tiến
hành tổng hợp và đã thu được kết quả như sau:
Lớp
8A
8B
8C
Cộng

Giỏi

Tổng
số
SL
%
36
35
34
105

Khá

TB

Yếu

Kém

SL

%

SL

%

SL

%

SL


%

2

5,56

11

30,5
6

9

25,0
0

14

38,8
9

0

0

5

14,2
9


11

31,4
3

17

48,5
7

2

5,71

0

0

6

17,6
5

5

14,7
1

16


47,0
6

6

17,6
5

1

2,94

13

12,3
8

27

25,7
1

42

40,0
0

22


20,9
5

1

0,95

Qua kết quả trên thì đa phần các em nắm kiến thức lý thuyết còn yếu,
các em hay quên và chưa vận dụng vào thực hành được nếu khơng có sự
hướng dẫn của giáo viên. Từ thực tế trên và bản thân tôi là một giáo viên dạy
bộ môn Tin học luôn suy nghĩ phải đưa ra những giải pháp như thế nào để các
em nắm lý thuyết chắc hơn nhớ lâu hơn và vận dụng vào thực hành tốt hơn.
Sau một thời gian suy nghĩ tiến hành thực nghiệm tôi đã thu được những kết
quả rất tốt sau đây tôi xin đề ra một số giải pháp giúp học sinh hình thành kĩ
năng giải các bài tốn bằng ngơn ngữ lập trình Pascal.

7


CHƯƠNG 3. CÁC GIẢI PHÁP VÀ KẾT QUẢ THỰC HIỆN
3.1. Các giải pháp
3.1.1. Cấu trúc chung của chương trình Pascal
Cấu trúc chung, tổng quát nhất của một chương trình Pascal gồm hai phần:
- Phần khai báo dữ liệu hằng, biến, mơ tả kiểu dữ liệu, khai báo chương
trình con.
- Phần thân chương trình chứa các lệnh để máy tính thực hiện.
Cụ thể:
+ Phần khai báo
PROGRAM...;


{khai báo tên chương trình}

LABEL ... ;

{khai báo nhãn}

USES ... ;

{khai báo sử dụng các Unit}

CONST... ;

{khai báo các hằng}

TYPE ... ;

{khai báo kiểu dữ liệu mới}

VAR ... ;

{khai báo các biến}

PROCEDURE ... ; {khai báo các chương trình con là thủ tục}
FUNCTION... ;

{khai báo các chương trình con là hàm}

+) Phần thân chương trình chứa các lệnh để máy tính thực hiện
BEGIN
...


{các lệnh của chương trình}

END.
3.1.2. Quy trình giải một bài tốn bằng ngơn ngữ lập trình Pascal:
Bước 1. Xác định bài tốn
Trong q trình học người học sinh hay bất kỳ một cá nhân nào ln
phải liên tục giải quyết các bài tốn. Trong cuộc sống là một chuỗi các bài
toán mà ta phải đối đầu giải quyết không một chút đơn giản mà nhiều lúc phải
bực mình. Song đối với học sinh lớp 8 do chương trình học tốn của các chỉ
mới đến giải phương trình bậc nhất nên việc đưa các lớp bài tốn vào giải cho
các em đang cịn một phần nào bị hạn chế. Nhưng bất kỳ một bài toán nào thì
chúng ta cũng đọc đề rồi xác định nó: A  B.
Trong đó:
- A là giải thiết: điều kiện ban đầu hoặc cái đã cho khi bắt đầu giải bài toán.
- B là kết luận: Mục tiêu cần đạt được hay cái phải tìm, phải làm ra khi
kết thúc bài toán.

8


- → Là suy luận: giải pháp cần xác định hay một chuối thao tác thực
hiện từ A đến B.
Bước 2. Mơ tả thuật tốn
Thuật tố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 theo đó từ Input của bài tốn sẽ tìm ra được Output
bài tốn.
INPUT

ALGORITHM


OUTPUT

Một phương pháp mơ tả thuật toán một cách khoa học để học sinh nhận
biết được quy trình làm việc của máy vi tính (Ngơn ngữ lập trình) làm việc
như thế nào. Mơ tả thuật toán là bước quan trọng nhất đối với người lập trình,
nếu người lập trình mơ tả thuật tốn sai hoặc dài dịng thì dẫn đến khi viết
chương trình sẽ khó khăn hoặc sẽ cho kết quả sai. Ở bước này địi hỏi người
lập trình cần có những hiểu biết cơ bản về tốn học thì khả năng biểu diễn
thuật toán sẽ trở nên đơn giản hơn và sẽ thấy bài tốn trở nên gần gủi. Vì vậy
trong phần này tôi sẽ đã đưa ra hai phương pháp mô tả thuật toán một cách rõ
ràng và khoa học nhất để các em dễ dàng mơ tả thuật tốn đúng theo ý tưởng
của mình.
Ví dụ: Tìm ước số chung lớn nhất của 2 số nguyên dương a, b ta có thể
giải bằng các cách trên
Cách 1: Các bước xác định bài toán bằng lời:
- Bước 1: Nhập 2 số nguyên dương là a, b
- Bước 2: So sánh giá trị a và b. Nếu a bằng b thì sang bước 3, ngược
lại a khác b thì sang bước 4
- Bước 3: Tìm được ước số chung là a và kết thúc chương trình
- Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là a và quay trở lại
bước 2. Ngược lại ước số chung là b và quay trở lại bước 2
Cách 2: Giải bài toán bằng sơ đồ
- Có hình thoi thể hiện các thao tác so sánh
- Hình chữ nhật thể hiện các phép tính tốn, các câu lệnh
- Hình ơvan thể hiện bắt đầu và kết thúc
- Các mũi tên quy định trình tự các thao tác

9



Begin

a, b

a=b

đúng

UCLN là a

sai
EN
D

đúng

sai

a<>b

b:= b - a

a:= b - a

Cách 3: Dùng ngơn ngữ mơ phỏng chương trình
Bắt đầu
Nhập a, b
While a khác b
IF a>b then thay a :=a -b

Else thay b:=b-a;
Kết thúc in ra USCLN (a,b).
Cách 4: Viết chương trình hồn chỉnh (dùng ngơn ngữ pascal)
PROGRAM Tim_UCLN;
Uses CRT;
VAR a,b, : integer;
BEGIN
CLRSCR;
WRITE('nhap 2 gia tri m, n='); READLN(a,b);
WHILE m<>n DO
10


IF a>b THEN a:=a –b
ELSE b:=b-a;
WRITELN('uoc so chung lon nhat cua 2 so’,a:5);
READLN
END.
Bước 3. Viết chương trình
Lập trình là dùng ngơn ngữ máy vi tính cụ thể nào (ví dụ ngơn ngữ lập
trình Pascal) để diễn tả thuật tốn, cấu trúc dữ liệu thành câu lệnh để máy tính
có thể thực hiện được và giải quyết đúng bài toán mà người lập trình mong
muốn.
* Kỹ năng lập trình
- Rèn luyện được cho học sinh kỹ năng cài đặt thành công các thuật
tốn bằng một ngơn ngữ lập trình.
- Đã gọi là kỹ năng thì chỉ có thể có được thơng qua rèn luyện tích cực.
- Kinh nghiệm cho thấy một thuật tốn do cài đặt vụng về, lộn xộn thì
khi chạy trên máy tính có thể cho kết quả tồi tệ.
* Phát triển chương trình bằng cách tinh chế từng bước

Một bài tốn ta có thể đưa ra nhiều cách giải khác nhau, song là một
giáo viên thì chúng ta cần giúp học sinh viết chương trình làm sao người xem
nhìn vào có thể dễ hiểu được bài tốn đó là gì? Do đó việc tinh chỉnh các
bước cho bài tốn trong máy tính là phương pháp khoa học, có hệ thống giúp
ta phân tích các thuật tốn và cấu trúc dữ liệu từ đó thành một chương trình.
Muốn lập trình giỏi khơng phải chỉ cần nắm ngơn ngữ lập trình là đủ. Mà vấn
đề cốt yếu là biết phương pháp phát triển dần dần để chuyển các ý tưởng ra
thành chương trình hồn chỉnh.
* Phương pháp tinh chế từng bước
Một chương trình bắt đầu được viết bằng lời tự nhiên (tiếng Việt) thể
hiện sự phân tích tổng thể của người lập trình được thể hiện
Ở từng bước sau các câu lệnh được phân tích chi tiết hơn, bằng những
lời khác nhau tương ứng với sự phân tích cơng việc thành các việc nhỏ chi tiết
hơn dễ hiểu và chỉnh xác hơn. Song ngơn ngữ lập rình pascal người lập trình
có thể đưa ra phương pháp tinh chỉnh từng bước là thể hiện tư duy giải quyết
vấn đề bài toán từ trên xuống trong đó các bước là hướng về ngơn ngữ lập
trình làm sao cho bài tốn đa ra được phương pháp lập trình tối ưu, sáng sửa.
11


Ví dụ: Tìm tất cả các số ngun tố trong các số nguyên N được nhập
vào từ bàn phím
a. Tinh chế lần 1
- Lấy 2 tập
NT= [ ] (để chứa các số nguyên tố tìm được)
S = [2,..N] (tập các số cần xét )
- Tìm số đầu tiên trong S đưa vào tập NT
- Loại bỏ khỏi S các bội số của số nguyên tố vừa tìm được
- Số đầu tiên còn lại của S là số nguyên tố. Tiếp tục quá trình cho đến
khi S=[]

- Xuất NT
b. Tinh chế lần 2
Bắt đầu
NT: = [ ]
S = [2,..N]
Repeat Tìm số đầu tiên trong S
NT:= NT+ [S0]
Loại khỏi S các bội số của S0
Until S=[ ];
Xuất NT;
Kết thúc;
c. Tinh chế lấn 3 (chương trình hồn chỉnh)
Program nguyen_to;
Const N=100;
Type nguyen=1..N;
Var NT, S:set of nguyen;
s0, I: integer;
BEGIN
NT:=[]; S:=[2..N]; S0:=2;
repeat
while not (S0 in S) do
12


S0:=S0+1; NT:=NT+[S0];I:=S0;
While I<=N do
Begin
s:=S-[i];
I:=I+S0;
End;

Until S=[];
For I:= 1 to n do
If I in NT then Write(I:4);
Readln
END.
d. Tinh chế lần 4. Rõ ràng cấu trúc dữ liệu tập hợp Set of nguyen tuy
dễ hiểu nhưng rất cồng kềnh và làm máy chạy chậm chạp, ta có thể dùng
mảng Boolean linh hoạt hơn như sau:
Program nguyen_to;
Const N=100;
Var a: array[1..N] of boolean;
i, j: integer;
BEGIN
a[1]:=false;
for i:=2 to N do a[i]:=true;
for i:= 2 to N div 2 do
for j:= 2 to N div i do
a[i*j]:=false;
for i:= 1 to N do
if a[i] then write(i:3);
Readln
END.
e. Tinh chế lần 5
Trong ngơn ngữ lập trình Pascal nếu dùng mảng Boolean thì ta bị giới
hạn N<10000. Để có thể chạy với số lớn hơn ta không dùng mảng, tập hợp mà
dùng như sau:
Program nguyen_to;
13



uses crt;
var i, j, k, n: Integer;
BEGIN
Repeat Write('nhap n='); readln(n);
Until n>= 2;
for i:= 2 to n do
Begin
k:=0;
for j:= 2 to trunc(sqrt(i)) do
if i mod j=0 then k:= 1;
if k=0 then write(i:3);
End;
Readln
END.
Vậy đó là kỹ năng lập trình người lập trình có thể tinh chỉnh chương
trình từng bước làm sao đưa ra một phương án tối ưu cho người đọc dễ tiếp
thu cũng như tiết kiệm tối đa bộ nhớ của máy tính.
Bước 4. Chạy thử, sửa đổi chương trình
Chạy thử và tìm lỗi và cơng việc mà người lập trình cần phải làm khi
viết xong chương trình để kiểm tra chương trình của mình. Chương trình là do
con người viết ra, cho nên khó có thể tránh khỏi sự nhầm lẫn. Một chương
trình viết xong chưa chắc đã chạy được ngay trên máy tính để cho ra kết quả
mong muốn. Kỹ năng tìm lỗi, sửa lỗi, điều chỉnh lại chương trình cũng là một
kỹ năng quan trọng của người lập trình. Kỹ năng này có được bằng kinh
nghiệm tìm và sửa lỗi của chính mình.
Có 2 loại lỗi cơ bản thường gặp khi lập trình:
+ Lỗi thuật tốn: Lỗi này ít gặp nhất nhưng nguy hiểm nhất. Nếu nhẹ
thì phải điều chỉnh lại thuật tốn, nếu nặng thì có khi phải viết lại một thuật
toán mới từ đầu.
+ Lỗi cú pháp: lỗi này hay gặp nhưng cũng là lỗi dễ sửa nhất. Chỉ cần

nắm vững ngơn ngữ lập trình là đủ. Một người được coi là khơng biết lập trình
nếu không biết sửa lỗi cú pháp. Và đây là lỗi thường gặp nhất đối với học sinh
bắt đầu học lập trình.
14


3.1.3. Giới thiệu một số bài toán được giải bằng phần mềm Pascal
Bài tốn 1. Viết chương trình nhập vào bán kính đường trịn, tính chu
vi và diện tích đường trị đó và in kết quả ra màn hình.

Bài tốn 2. Viết chương trình Pascal tính chỉ số khối cơ thể BMI theo
cơng thức BMI=

, trong đó W là cân nặng của một người (tính bằng

kilơgam) H là chiều cao của người đó (tính bằng mét). Giá trị W, H được
nhập từ bàn phím.
Từ kết quả tính được, hãy xác định người đó gầy (chỉ số BMI < 18.5),
bình thường (18.5 BMI < 25), béo (BMI 25).

15


Bài tốn 3. Viết chương trình “Tìm phần tử lớn nhất của dãy số
nguyên”.
Bước 1: Xác định bài toán :
- Input: Số nguyên dương N (<=250) và dãy N số nguyên dương A 1, …
AN. mỗi số đều không vượt quá 500.
- Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho
(nếu có nhiều phần tử lớn nhất chỉ cần đưa ra một trong số chúng)

Bước 2: Xây dựng thuật toán
- Bước 1: Nhập N và dãy A1, … AN ;
- Bước 2: Max  A1 ; i 2 ;
- Bước 3: Nếu i>N thì đưa ra giá trị Max rồi kết thúc ;
- Bước 4: Nếu Ai > Max thì Max  Ai ;
ii+1 ; rồi quay lại bước 3.
Bước 3 : Viết chương trình
Program TimMax;
Uses crt;
Const Nmax = 250;
Type arrInt = array[1.. Nmax] of integer ;
Var N, i , Max , csmax : integer ;
A : arrInt ;
BEGIN
Clrscr ;
Write (‘Nhap so luong phan tu cua day so, N =’) ; Readln (N) ;
For i:= 1 to N do
Begin
Write (‘phan tu thu ‘, i,’=’) ;
Readln(A[i]) ;
16


End ;
Max:= A[1] ; Csmax := 1 ;
For i:=2 to N do
If A[i] > Max then
Begin
Max:= A[i] ;
Csmax:=i ;

End;
Writeln (‘gia tri cua phan tu Max:’ , Max) ;
Writeln (‘chi so cua phan tu Max:’ , csmax) ;
Readln
END.
3.2. Kết quả thực hiện
Qua thời gian triển khai và áp dụng phương pháp, tơi nhận thấy giờ học
lập trình bằng ngơn ngữ lập trình Pascal thực sự thu hút các đối tượng học
sinh hơn chứ khơng cịn là giờ học của các đối tượng học sinh khá giỏi. Học
sinh hoạt động tích cực hơn, khả năng phân tích, tư duy tốn học trở nên nhạy
bén phát huy tính tích cực, sáng tạo và tạo niềm đam mê bộ môn Tin học. Các
đối tượng học sinh hỗ trợ được cho nhau để cùng học, cùng tiến bộ. Học sinh
mạnh dạn hơn trong học lập trình. Đặc biệt là học sinh ở trường đã tiến bộ rõ
rệt ở bộ mơn tốn và hứng thú học tốn hơn nhiều. Kỹ năng lập trình của các
em khơng còn lúng túng mà trở nên chuyên nghiệp hơn. Qua đó nhiều em đã
định hướng cho cơng việc của mình trong tương lai và có tác động tích cực
đến nhận thức của các em. Tạo cho các em ngày càng yêu, đam mê công nghệ
phần mềm và giúp các em có được nền tảng cơ bản nhất để tiếp cận bất kỳ
ngơn ngữ lập trình khác.
Qua kiểm tra đánh giá tôi thu được kết quả như sau:

Lớp
8A
8B

Giỏi
Tổng
số
SL
%

36
35

8C

34

Cộng

105

Khá

TB

Yếu

Kém

SL

%

SL

%

SL

%


SL

%

4

11,1
1

13

36,1
1

18

50,0
0

1

2,78

0

0

5


14,2
9

11

31,4
3

19

54,2
9

0

0,00

0

0

3

8,82

0

0

4


3,81

0

0

6
15

17,6
5
14,29

7
31

20,5
9
29,52
17

18
55

52,9
4
52,38



KẾT LUẬN VÀ KIẾN NGHỊ
1. Kết luận
Tin học là môn học mới đối với học sinh phổ thông. Để tạo hứng thú
học tập cho học sinh và từng bước nâng cao chất lượng bộ mơn địi hỏi người
giáo viên phải tìm tịi, đổi mới phương pháp dạy học phù hợp, hiệu quả. Ứng
dụng các phần mềm hỗ trợ một cách linh hoạt nhằm tăng thêm sự hứng thú,
tạo niềm tin và niềm đam mê với bộ mơn Tin học nói chung và các kĩ năng
lập trình nói riêng.
Trong q trình dạy học sinh lập trình, vận dụng những kỹ năng cơ bản
để giải bài tốn trên máy tính bằng ngơn ngữ lập trình Pascal bước đầu tơi đã
tạo cho học sinh niềm đam mê, hứng thú, sáng tạo và đặc biệt các giờ học
khơng cịn là nỗi ám ảnh của học sinh nữa và các em ở trường đã tiến bộ rõ
rệt về kỹ năng lập trình từ những bài toán đơn giản đến một số dạng nâng cao.
2. Kiến nghị
- Các cấp quản lí Giáo dục cần mở các chuyên đề bồi dưỡng cho giáo
viên học tập và rút kinh nghiệm.
- Cần cung cấp trang thiết bị dạy học tài liệu tham khảo kịp thời để dạy
học cho tốt.
- Mở nhiều chuyên đề hoặc hình thức sinh hoạt câu lạc bộ thực hành tin
học để giáo viên tham gia và học hỏi lẫn nhau.
Trên đây là một số kinh nghiệm của bản thân rút ra được trong quá
trình hướng dẫn dạy học sinh những kỹ năng cơ bản về lập trình. Rất mong
nhận được sự góp ý của q thầy cơ, bạn bè đồng nghiệp để tơi có thể hồn
chỉnh hơn kinh nghiệm này, góp phần nâng cao kỹ năng và chất lượng dạy
học lập trình cho học sinh lớp 8.

18


TÀI LIỆU THAM KHẢO

1. Trần Đức Huyên (2003) – Phương pháp giải các bài toán trong Tin
học, Nhà xuất bản Giáo dục, Hà Nội.
2. Phạm Thế Long, Bùi Việt Hà, Bùi Văn Thanh (2017) – Tin học dành
cho Trung học cơ sở - Quyển 3, Nhà xuất bản Giáo dục Việt Nam, Hà Nội.
3. Quách Tuấn Ngọc (2001), Ngôn ngữ lập trình Pascal, Nhà xuất bản
Thống kê, Hà Nội.
4. Quách Tuấn Ngọc (2001), Bài tập ngơn ngữ lập trình Pascal, Nhà
xuất bản Thống kê, Hà Nội.
5. Bùi Văn Thanh, Nguyễn Chí Trung, Ngơ Ánh Tuyết (2008) – Bài tập
Tin học dành cho THCS - Quyển 3, Nhà xuất bản Giáo dục, Hà Nội.
6. Luật Giáo dục 2005 (Số: 38/2005/QH11 ngày 14/6/2005)

19



×