Tải bản đầy đủ (.pdf) (25 trang)

Skkn một số giải pháp rèn kỹ năng viết chương trình để giải các bài toán bằng ngôn ngữ lập trình pascal của học sinh lớp 8 trường thcs nga phượng 2

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 (627.03 KB, 25 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HĨA
PHỊNG GIÁO DỤC VÀ ĐÀO TẠO NGA SƠN

SÁNG KIẾN KINH NGHIỆM

GIẢI PHÁP RÈN KĨ NĂNG VIẾT CHƯƠNG TRÌNH ĐỂ GIẢI
CÁC BÀI TỐN BẰNG NGƠN NGỮ LẬP TRÌNH PASCAL CHO
HỌC SINH LỚP 8 TRƯỜNG THCS NGA PHƯỢNG 2

Người thực hiện: Đỗ Thị Hà
Chức vụ: Giáo viên
Đơn vị công tác: Trường THCS Nga Phượng 2
SKKN thuộc mơn: Tin học

THANH HĨA NĂM 2022

skkn


MỤC LỤC
1. MỞ ĐẦU:………………………………………………………………...
1.1. Lý do chọn đề tài: ......................................................................................
1.2. Mục đích nghiên cứu: ...............................................................................
1.3. Đối tượng nghiên cứu: ............................................................................ 2
1.4. Phương pháp nghiên cứu: ...................................................................... 2
1.5. Giới hạn phạm vi nghiên cứu: ............................................................... 2
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM: …………………………....3
2.1. Cơ sở lý luận của vấn đề: .................................................................... 3
2.2. Thực trạng của vấn đề: ........................................................................ 4
2.3. Giải pháp đã tiến hành giải quyết vấn đề: ......................................... 5
2.3.1. Các yêu cầu cơ bản của giáo viên: .................................................... 5


2.3.2. Các yêu cầu cơ bản của học sinh: ...................................................... 5
2.3.3. Giải pháp tiến hành: ............................................................................. 6
2.4. Hiệu quả của SKKN: ......................................................................... 17
2.4.1. Kết quả đạt được: ............................................................................. 17
2.4.2. Bài học kinh nghiệm:........................................................................ 18
3. KẾT LUẬN : .......................................................................................... …18
TÀI LIỆU THAM KHẢO: ...............................................................................

skkn


DANH MỤC VIẾT TẮT
Tên viết tắt
SKKN
THCS
Gv, GV
Hs, HS

Chi tiết
Sáng kiến kinh nghiệm
Trung học cơ sở
Giáo viên
Học sinh

skkn


1. MỞ ĐẦU
1.1. Lý do chọn đề tài:
Với xu thế ngày càng phát triển về công nghệ thông tin và ứng dụng công

nghệ thông tin trong cuộc sống hàng ngày là rất lớn, nên Đảng, Nhà nước đã xác
định rõ ý nghĩa tầm quan trọng của tin học và công nghệ thông tin, truyền thông
cũng như những yêu cầu đẩy mạnh của ứng dụng công nghệ thông tin, đào tạo
nguồn nhân lực đáp ứng u cầu cơng nghiệp hố, hiện đại hoá, mở cửa và hội
nhập, hướng tới nền kinh tế tri thức của nước ta nói riêng - thế giới nói chung.
Trong những năm gần đây Sở giáo dục và đào tạo tỉnh Thanh Hố nói
chung và của phịng giáo dục và đào tạo huyện Nga Sơn nói riêng đã phát động
phong trào “Ứng dụng công nghệ thông tin trong quản lý và dạy học" và tôi
cũng đã xem đây là giải pháp đột phá giúp tơi có thể ứng dụng nâng cao chất
lượng giáo dục và dạy học của mình.
Để đáp ứng nhu cầu giảng dạy bộ mơn tin học ở nhà trường, phòng giáo
dục và đào tạo cũng như địa phương và nhà trường đã rất quan tâm đầu tư trang
thiết bị phục vụ cho việc dạy học của giáo viên và học sinh. Vì vậy cơ sở vật
chất của các nhà trường đã từng bước được bổ sung về hệ thống máy vi tính và
các điều kiện khác để phục vụ tốt cho công tác dạy và học mơn tin học.
Mơn Tin học này cịn mới mẻ nên học sinh rất hưng phấn u thích mơn
học, tuy nhiên các em vẫn còn lúng túng chưa biết, chưa hiểu nhiều và kỹ năng
lập trình chưa được tốt và chưa thể tự viết chương trình hồn chỉnh cho bài tốn
được trên máy tính được.
Từ những vấn đề trên, tôi rất trăn trở và suy nghĩ làm thế nào để giúp học
sinh có thể từ một bài tốn cụ thể đó các em có thể áp dụng cấu trúc chung của
một chương trình Pascal và các quy tắc trong viết chương trình, cú pháp khai
báo biến, cú pháp các câu lệnh,… và từ đó các em có thể phát triển tư duy khả
lực tự học, tự giải quyết các bài tốn bằng ngơn ngữ lập trình Pascal các em có
thể tự viết được chương trình hồn chỉnh trên máy tính. Nên tơi đã đưa ra “Giải
pháp rèn kỹ năng viết chương trình để giải các bài tốn bằng ngơn ngữ lập
trình pascal cho học sinh lớp 8 trường THCS Nga Phượng 2”.
1.2. Mục đích nghiên cứu:
Từ thực tế trên, trong q trình dạy học tơi ln băn khoăn 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.
Lập trình Pascal "khó" đối với học sinh THCS vì 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 THCS vốn tiếng Anh không nhiều,
nhiều em còn yếu về tiếng Anh. Hơn nữa, 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 học của các em còn hạn
chế phụ thuộc còn vào Sách Giáo khoa do đó kỹ năng phân tích, tổng hợp, xây

skkn


2
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.
Là giáo viên trực tiếp giảng dạy môn tin học tơi xác định mục tiêu chính
là giúp học sinh khơng chỉ biết soạn thảo thơng thường mà cịn phải có khả
năng phân tích, tổng hợp, khái qt hố vấn đề và đặc biệt là phát triển tư duy,
sáng tạo trong phương pháp lập trình. Qua kinh nghiệm nhiều năm giảng dạy về
ngơn ngữ lập trình Pascal cùng với nhiều đối tượng học sinh khác nhau trong
trường, tôi nhận thấy học sinh còn lúng túng nhất ở khâu vận dụng xây dựng
chương trình cụ thể, khơng biết làm thế nào? bắt đầu từ đâu? Do đó tơi đã tích
luỹ được một vài kinh nghiệm về “Giải pháp rèn kỹ năng viết chương trình
để giải các bài tốn bằng ngơn ngữ lập trình pascal cho học sinh lớp 8
trường THCS Nga Phượng 2”. Giúp các em hiểu, yêu thích lập trình và học
lập trình trong sự hứng thú, phấn khởi.
1.3. Đối tượng nghiên cứu:
Trong chương trình lớp 8, các em làm quen với 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[1].
Qua giảng dạy mơn Tin học ở trường THCS Nga Phượng 2, 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 và
cực kỳ phức tạp. 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, đưa ra thuật tốn mà
có thể cho kết quả sai. Tâm lý một số em đều cho rằng môn Tin học không phải
là môn học chính. Do đó khơng cần phải để tâm đến.
1.4. Phương pháp nghiên cứu:
Các phương pháp giúp tôi tập trung vào nghiên cứu đó là: phương pháp
điều tra, phương pháp quan sát, phương pháp phân tích, tổng hợp, phương pháp
thống kê để từ đó có biện pháp điều chỉnh chun mơn giảng dạy cho phù hợp
với các đối tượng học sinh;
Vận dụng linh hoạt, sáng tạo các phương pháp dạy học theo cách phát
huy yếu tố tích cực và những ưu điểm của phương pháp dạy học truyền thống
cùng phương pháp dạy học hiện đại nhằm tăng cường tính tích cực của học sinh
trong tiếp nhận kiến thức, hình thành kỹ năng sử dụng máy tính, sử dụng thành
thạo phần mềm Turbo Pascal để phục vụ cho học tập và bước đầu vận dụng vào
cuộc sống. Từ đó, tơi ln tạo điều kiện tối ưu để học sinh bồi dưỡng kỹ năng tự
học. Vận dụng linh hoạt, sáng tạo các hình thức tổ chức học tập kết hợp giữa học
tập cá thể với học tập hợp tác; giữa hình thức học cá nhân với hình thức học theo
nhóm.
1.5. Phạm vi nghiên cứu:
Phạm vi nghiên cứu theo như mục tiêu đã đề ra, sáng kiến tập trung xem
xét, phân tích, đánh giá các yếu tố nằm trong phạm vi sau:

skkn


3

Địa điểm nghiên cứu: Lớp 8 Trường THCS Nga Phượng 2, huyện Nga Sơn,
tỉnh Thanh Hoá.
Hoạt động được nghiên cứu: tập trung nghiên cứu tình hình hoạt động trong
kiến thức lập trình ở chương trình tin học lớp 8.
Thời gian nghiên cứu: Qua việc giảng dạy môn tin học lớp 8 năm học 20202021 tại Trường THCS Nga Phượng 2, huyện Nga Sơn, tỉnh Thanh Hoá.
2. NỘI DUNG SÁNG KIẾN KINH NGHIỆM:
2.1. Cơ sở lý luận của vấn đề:
Vận dụng linh hoạt, sáng tạo các phương pháp dạy học theo cách phát
huy yếu tố tích cực và những ưu điểm của phương pháp dạy học truyền thống
cùng phương pháp dạy học hiện đại nhằm tăng cường tính tích cực của học sinh
trong tiếp nhận kiến thức, hình thành kỹ năng sử dụng máy tính, sử dụng thành
thạo phần mềm Turbo Pascal để phục vụ cho học tập và bước đầu vận dụng vào
cuộc sống. Từ đó, tơi ln tạo điều kiện tối ưu để học sinh bồi dưỡng kỹ năng tự
học. Vận dụng linh hoạt, sáng tạo các hình thức tổ chức học tập kết hợp giữa học
tập cá thể với học tập hợp tác; giữa hình thức học cá nhân với hình thức học theo
nhóm.
Tơi ln chủ động sáng tạo thiết kế các dạng bài tập căn cứ vào mục tiêu
cụ thể của bài học, khơng gị bó theo một quy trình cứng nhắc những bước đi bắt
buộc. Tăng cường kiểm tra đánh giá bằng nhiều hình thức khác nhau theo chuẩn
kiến thức kỹ năng, yêu cầu học sinh tự viết các chương trình hồn chỉnh đó là
một biện pháp kích thích hứng thú học tập. Với phương pháp dạy và học hiện
nay đang có xu hướng thay đổi một cách tích cực. Phương pháp mới hướng tới
lấy học sinh làm trung tâm, học sinh khơng cịn đóng vai trò tiếp thu một cách
thụ động những kiến thức do giáo viên truyền đạt. Giáo viên trở thành người
hướng dẫn, giúp đỡ học sinh. Học sinh hướng tới việc học tập chủ động, biết tự
thích nghi. Kiến thức được cá nhân học sinh tự tìm tịi, phát hiện một cách tích
cực dưới sự hướng dẫn của giáo viên. Ngồi ra, cách tổ chức học theo nhóm làm
tăng thêm khả năng cộng tác, khả năng làm việc tập thể. Tin học là mơn học có
nhiều điều kiện thuận lợi để thực hiện các phương pháp dạy và học mới này.
Cũng như những môn học khác, việc rèn luyện kỹ năng lập trình trong bộ

mơn tin học cần được thực hiện trong hoạt động và bằng hoạt động tự giác, tích
cực, chủ động và sáng tạo của học sinh. Khi cần dạy một nội dung tin học cho
học sinh, người giáo viên phải biết phân tích nội dung đó liên quan đến những
hoạt động nào. Và một số hoạt động trong đó lại được phân tích thành những
hoạt động thành phần. Căn cứ vào mục tiêu tiết học, trình độ học sinh, trang
thiết bị hiện có mà tơi đã lựa chọn cho học sinh tập luyện và thực hiện một số
những hoạt động tiềm tàng trong nội dung cần dạy. Để học sinh có ý thức về ý
nghĩa của những hoạt động, cần tạo động cơ học tập cho học sinh, để học sinh
học bằng sự hứng thú thực sự, nó được nảy sinh từ việc ý thức sâu sắc ý nghĩa
nội dung bài học, học bằng tất cả tính tích cực, độc lập và trách nhiệm cao nhất
của học sinh.

skkn


4
Để thưc hiện được các mục đích trên cần phải đặt học sinh vào tình huống
có vấn đề để hướng đích cho học sinh, tập luyện cho học sinh những hoạt
động ăn khớp với tri thức phương pháp. Phân bậc hoạt động để nâng cao yêu
cầu khi học sinh gặp khó khăn. Hệ thống các bài tập để học sinh luyện tập tại
lớp hoặc làm ở nhà.
2.2. Thực trạng của vấn đề:
Ngơn ngữ lập trình Turbo Pascal cho học sinh lớp 8 này là ngơn ngữ có cú
pháp sảng sủa, dễ hiểu và thường được dạy trong nhà trường và dành cho những
người mới học lập trình. Chính vì thế Pascal thường được gọi là "Ngơn ngữ lập
trình của học đường". Hai mơi trường lập trình trên ngơn ngữ này đang được sử
dụng phổ biến hiện nay ở Việt Nam là Turbo Pascal và Free Pascal [1], [3].
Lập trình Turbo Pascal và Free 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, ngơn ngữ lập trình Pascal đang được giảng dạy cho
học sinh lớp 8. Turbo Pascal là ngôn ngữ cơ sở để giới thiệu cho học sinh làm

quen với kỹ thuật xây dựng chương trình. Quan điểm của tác giả viết ngơn ngữ
lập trình là chương trình máy tính được viết để giải quyết các bài tốn trong đời
sống. Bằng cách đó học sinh sẽ dễ thấy hơn mối liên hệ chặt chẽ lập trình và
cuộc sống, cũng như lợi ích của việc lập trình để giải quyết các bài tốn bằng
máy tính.
Ngồi ra, nó cũng được dùng để trình bày nhiều chuyên đề khác nữa của
tin học trong những năm học tiếp theo. Mỗi học sinh đến với bộ môn tin học ở
cấp trung học sơ sở thường cảm thấy khó khăn trong kiến thức lập trình ở
chương trình tin học lớp 8.
Qua khảo sát đầu năm 2020 khi chưa áp dụng sáng kiến:
Điểm

Đầu năm 2020 – 2021 (Chưa áp dụng SKKN)

Số em

Tỷ lệ %

Giỏi

4

13,3%

Khá

8

26,7%


Trung bình

11

36,7%

Yếu

7

23,3%

Tuy nhiên, cịn một số học sinh chưa coi trọng môn học này, xem đây là
một mơn phụ nên chưa có sự đầu tư thời gian cho việc học mơn Tin học, một số
em cịn sử dụng máy vi tính khơng đúng mục đích của mơn học. Một số em tiếp
thu kiến thức còn chậm, đặc biệt là kỹ năng đọc hiểu chương trình vì đa phần
dùng ngôn ngữ Tiếng Anh.
Đa phần phụ huynh học sinh nhà nông nên sự quan tâm đến việc học của
con em cịn hạn chế, ít có điều kiện chăm sóc, giáo dục và định hướng cho con
em trong việc học tập.

skkn


5
Ngồi ra, ở chương trình Tin học 8, các em phải làm quen, tiếp cận với
ngơn ngữ lập trình Pascal là một phần mềm có cấu trúc phức tạp, ngơn ngữ lập
trình bằng tiếng anh. Mặt khác để thực hiện được một chương trình thì các em
phải có một kiến thức toán học nhất định.
2.3 Giải pháp tiến hành để giải quyết vấn đề.

2.3.1. Các yêu cầu cơ bản của giáo viên:
Nghiên cứu tài liệu các kỹ năng lập trình trong việc nghiên cứu chuyên
môn, tiến hành tham gia dự giờ các đồng nghiệp và trao đổi kinh nghiệm giảng
dạy với các đồng nghiệp trong nhà trường hay các đơn vị bạn, đồng thời rút kinh
nghiệm bản thân qua các tiết dạy lý thuyết và thực hành trên phòng máy tính;
Tham khảo các giáo trình, sách báo và tìm hiểu ngơn ngữ lập trình
Pascal qua mạng internet, các tài liệu và tích lũy kinh nghiệm giảng dạy. Giới
thiệu tạo những hứng thú cho học sinh bằng việc đưa nhiều hình ảnh có liên
quan bài học, bài tập để khi tiến hành làm thực hành các em học sinh dễ dàng
khắc sâu các kiến thức bài học đồng thời áp dụng cho những bài tập có liên quan
đến những bài học sau, bài học mới.
Giáo viên cần phải nắm vững các phương pháp dạy học Tin học (theo sự
đổi mới: kết hợp giữa “ôn cũ giảng mới”, trong tiết dạy cần kết hợp phương
pháp dạy “vừa lý thuyết, vừa thực hành”...) nhằm phát huy tính tích cực, chủ
động của học sinh trong học tập. Để nâng cao chất lượng dạy học môn tin học,
giáo viên phải tiếp cận nội dung bài và lựa chọn các phương pháp, xây dựng hệ
thống các dạng bài tập lập trình phù hợp với ba đối tượng: giỏi- khá, trung bình,
yếu- kém. Từ đó dẫn dắt học sinh tự khám phá kiến thức, không thụ động ghi
nhận kiến thức giáo viên cung cấp, phải có sự phối hợp giữa hoạt động dạy và
hoạt động học trên cơ sở lấy học sinh làm trung tâm. Để kích thích hứng thú học
tập và hoạt động tích cực chủ động của học sinh, giáo viên phải phối hợp nhuần
nhuyễn, phù hợp các phương pháp dạy học đồng thời giáo viên phải tác động
cho học sinh thấy được môn tin học là cần thiết cho bản thân các em sau này.
2.3.2. Các yêu cầu cơ bản của học sinh:
Học sinh phải xác định được sách giáo khoa là phương tiện chủ yếu để học sinh
học tập. Bên cạnh đó, học sinh phải biết chọn lọc những tài liệu tham khảo phù
hợp để học tốt môn tin học. Học sinh phải tích cực chủ động học tập, thực
hiện các yêu cầu của giáo viên và chuẩn bị chu đáo ở nhà trước khi đến lớp.
Mục tiêu:
Rèn luyện cho học sinh những kỹ năng đọc hiểu được bài toán, các bước

giải quyết vấn đề, các bước mơ tả thuật tốn và viết chương trình giải các bài
tốn trên máy tính một cách lơgic và khoa học;
Rèn luyện kỹ năng lập trình cho học sinh đồng thời phát huy tính tích cực,
sáng tạo, khả năng tư duy của học sinh trong giờ học lập trình đặc biệt là trong
giờ học thực hành để đề xuất những giải pháp nâng cao chất lượng học tập bộ
môn của học sinh.

skkn


6
Trong quá trình học tập, các em phải tư duy theo sự hướng dẫn gợi mở
của giáo viên, phải chủ động quan sát vấn đề, hiện tượng, phối hợp giải quyết,
khám phá và tổng hợp nội dung kiến thức bài học để thực hành vận dụng vào đạt
hiệu quả cao.
Học thì phải hành. Thực hành là thước đo đánh giá tiếp nhận và vận
dụng kiến thức. Thực hành thông thường là áp dụng bài tập trên lớp và ở nhà. Vì
vậy học sinh phải biết kết hợp lý thuyết với thực hành vận dụng một cách thành
thạo và nhuần nhuyễn.
2.1.1. Giải pháp tiến hành:
A. MỘT SỐ GIẢI PHÁP HƯỚNG DẪN HỌC SINH NẮM ĐƯỢC NHỮNG
KIẾN THỨC THỰC HIỆN ĐỂ GIẢI CÁC BÀI TỐN BẰNG NGƠN NGỮ LẬP
TRÌNH PASCAL:

Pascal là một ngơn ngữ lập trình cấp cao sớm xuất hiện và phần nào thể hiện
được ưu điểm của nó trong việc ứng dụng để giải quyết các bài tốn trên máy
tính. Ở trường phổ thông chúng ta không chú trọng học chun sâu về ngơn ngữ
lập trình để tạo ra các phần mềm máy tính mà tập trung rèn luyện kĩ năng tư duy
logic, tư duy hệ thống và sáng tạo không chỉ để giải quyết những vấn đề trong
tin học mà đây cịn là những kĩ năng vơ cùng quan trọng để giải quyết nhiều vấn

đề trong cuộc sống;
Phương pháp tổng qt để giải các bài tốn trên máy tính bằng ngơn ngữ
Pascal thì cần thực hiện được các bước cụ thể như sau:
Bước 1. Xác định bài toán.
Bước 2. Tìm thuật tốn.
Bước 3. Viết chương trình
Việc giải quyết các bài tốn trên máy tính thật sự khơng đơn giản đối với
các em học sinh. Trước tiên các em phải nắm vững lý thuyết về Xác định bài
tốn, mơ tả thuật tốn, viết chương trình dựa vào cấu trúc chung của một chương
trình Pascal, cú pháp câu lệnh, và tính nguyên tắc và logic của bài lập trình.
* Các bước tiến hành để giải các bài tốn bằng ngơn ngữ lập trình:
Bước 1- Xác định bài tốn.
Giáo viên u cầu học sinh nắm được khái niệm và cách xác định bài tốn:
- Khái niệm bài tốn: Là một cơng việc hay một nhiệm vụ cần phải giải quyết.
- Xác định bài toán: Để giải một bài toán cụ thể ta phải đọc kỹ đề trước khi
giải và xác định bài tốn đó đã cho biết những gì và cần phải làm những bước
tiếp theo như thế nào để giải ra kết quả cho bài tốn đó.
Hay nói cách khác:
-

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

skkn


7
+ Xác định rõ các điều kiện cho trước(Input).
+ Kết quả cần thu được(Output).
- Xác định bài toán: Là xác định rõ 2 thành phần Input và Output và mối quan
hệ giữa chúng để có thể lựa chọn thuật tốn và ngơn ngữ lập trình thích hợp.

Ví dụ: Giải phương trình bậc nhất dạng tổng quát bx + c =0 (SGK)
-

Giáo viên yêu cầu học sinh nêu Các bước xác định bài toán:
+ Input : Nhập các số b và c
+ Output: Nghiệm của phương trình bậc nhất

Ví dụ : Lần lượt đưa giá trị b, c vào

( b : = 5 ; c : = - 7)



Áp b = 0 và c = 0 thì phương trình có vơ số nghiệm



Nếu b = 0 và c ≠ 0 thì phương trình vơ nghiệm



Nếu b ≠ 0 thì phương trình có nghiệm x : = -c/b;
Kết quả in ra là x : = 7/5 ;

Bước 2- Mơ tả thuật tốn
Giáo viên yêu cầu học sinh hiểu được thuật toán là gì và cách mơ tả thuật tốn.
• Thuật tốn: Là một quá trình gồm một dãy hữu hạn các thao tác đơn giản
được sắp xếp theo một trình tự xác định, sao cho từ cách xác định bài toán ta
sẽ mơ tả được thuật tốn bằng các bước tuần tự của bài tốn đó.
* Có 4 cách thể hiện tìm thuật toán:

Cách 1: Các bước xác định bằng lời.
Cách 2: Lập sơ đồ khối.
Cách 3: Ngôn ngữ mô phỏng.
Cách 4: Dựng ngơn ngữ lập trình (Pascal).
Ví dụ: Thuật tốn tìm nghiệm của phương trình bậc nhất a*x + b = 0
• Mơ tả thuật tốn: Bằng dãy hữu hạn các bước để giải bài tốn đó.
- Giáo viên hướng dẫn học sinh cách mơ tả thuật tốn dựa vào các bước.
* Thơng thường người lập trình hay sử dụng cách 4.
Bước 1: Nhập a, b.
Bước 2: Nếu a = 0 thì
Bước 2.1 . Nếu b = 0 thì phương trình vơ số nghiệm.
Bước 2.2. Nếu b ≠ 0 thì phương trình vơ nghiệm

skkn


8
Bước 3. Nếu a ≠ 0 thì phương trình có nghiệm x= - b/a.
Bước 4. Đưa ra giá trị nghiệm x.
Bước 5. Kết thúc.
Bước 3. Viết chương trình:
1. Cấu trúc chung của một chương trình Pascal:
Về mặt lý thuyết giáo viên cung cấp chắc chắn cho học sinh cấu trúc
chung của một bài lập trình theo cú pháp như sau:
PROGRAM <Tên chương trình>;
[<Phần khai báo>];
BEGIN
<Phần thân chương trình>;
READLN;
END.

Bên cạnh đó, cũng cần lưu ý học sinh cách đặt tên chương trình đúng quy
tắc, đảm bảo khơng sai cú pháp khi đặt tên chương trình, tên chương trình khơng
được trùng với các từ khóa: PROGRAM, BEGIN, USES, VAR, END,..., dùng
dấu gạch nối xen giữa nếu tên dài quá 8 ký tự và phải đảm bảo tên không dài
quá 127 ký tự, tên chương trình phải được đặt bằng tiếng việt khơng dấu, không
sử dụng dấu cách;
Các biến ở phần khai báo phải đảm bảo phù hợp với bài toán và phù hợp
với kiểu dữ liệu cần nhập.
+ Cú pháp khai báo tên thư viện: <Từ khóa> <Tên các thư viện>;
Ví dụ khai báo thư viện Crt, Graph... là: USES CRT,GRAPH;
+ Cú pháp khai báo tên hằng: <Const> <Tên hằng> = <Giá trị>;
Ví dụ khai báo tên biến Pi khi tính diện tích hình trịn là:Const Pi=3.14;
+ Cú pháp khai báo biến: <Var> <Tên các biến>: <Kiểu dữ liệu>;
Ví dụ khai báo các biến a, b khi thực hiện bài tốn tính tổng hai số tự
nhiên a và b biết rằng a, b là 2 ký tự được nhập vào từ bàn phím là các số
nguyên: Var a,b:Integer;
+ Câu lệnh nhập dữ liệu vào từ bàn phím: Read(<Danh sách biến vào>);
hoặc Readln(<Danh sách biến vào>); Ví dụ: Readln(CD,CR);
+ Câu lệnh cho phép xuất dữ liệu hoặc kết quả ra màn hình, câu lệnh này
thường sử dụng khá nhiều trong thực tế: Write(<Danh sách kết quả ra>); hoặc
Writeln(<Danh sách kết quả ra>); Ví dụ xuất ra màn hình kết quả dịng chữ
Xin chao Toi la Turbo Pascal ta có thể viết như sau: Writeln(‘Xin chao Toi la
Turbo Pascal’);

skkn


9
+ Câu lệnh gán được dùng để tính tốn giá trị của biểu thức bên phải được
kết quả cuối cùng thì gán cho tên biến phía bên trái là: <Tên biến>:=

thức>; Ví dụ: S:=a+b; hoặc CV:=(a+b)*2; ,…
Các phép tốn số học, các hàm tính tốn cơ bản trong Pascal: Phép cộng
(+), phép trừ (-), phép nhân (*), phép chia (/), chia lấy phần nguyên (DIV), chia
lấy phần dư (MOD), hàm tính giá trị tuyệt đối cho số thực hoặc số ngun
ABS(x), hàm tính bình phương cho số thực hoặc số nguyên SQR(x), hàm tính
căn bậc hai cho số thực hoặc số nguyên SQRT(x), …
2. Cấu trúc câu lệnh điều kiện IF...THEN:
Trong Pascal để mô tả cấu trúc rẽ nhánh ta thường dùng câu lệnh
IF...THEN với hai trường hợp thiếu và đủ:
+ Trường hợp 1 câu lệnh cấu trúc rẽ nhánh dạng thiếu có cú pháp đầy đủ
như sau: IF <Điều kiện> THEN <Câu lệnh>; Nếu điều kiện có giá trị đúng thì
câu lệnh sau từ khóa then được thực hiện, nếu điều kiện có giá trị sai thì câu lệnh
sau từ khóa then sẽ khơng được thực hiện và bị bỏ qua.
Ví dụ: IF A=10 THEN WRITELN(‘bai lam cua ban rat xuat sac’);
+ Trường hợp 2 câu lệnh cấu trúc rẽ nhánh dạng đầy đủ có cú pháp như
sau:
IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
Nếu điều kiện cho giá trị đúng câu lệnh 1 sau từ khóa then được thực hiện
và bỏ qua câu lệnh 2, nếu điều kiện cho giá trị sai thì câu lệnh 2 sau từ khóa Else
được thực hiện và bỏ qua câu lệnh 1;
Ví dụ:
IF 9<3 THEN WRITELN(‘ban nen hoc boi duong Toan’)
ELSE WRITELN(‘ban nen hoc boi duong Tin hoc’);
Trong quá trình cho học sinh thực hành tơi đã hết sức lưu ý cho học sinh
các quy tắc khi sử dụng các câu lệnh cấu trúc rẻ nhánh như dấu chấm phẩy được
đặt sau dịng lệnh của từ khóa Else, hoặc trong quá trình sử dụng lệnh rẻ nhánh
cũng cần lưu ý có thể sử dụng câu lệnh ghép sau từ khóa Else thì phải đặt giữa
hai từ khóa BEGIN và END;
Bên cạnh đó, tơi cũng đã lưu ý học sinh cách đặt tên chương trình đúng
quy tắc, đảm bảo khơng sai cú pháp khi đặt tên chương trình, tên chương trình

khơng được trùng với các từ khóa: PROGRAM, BEGIN, USES, VAR,
END,..., dùng dấu gạch nối xen giữa nếu tên dài quá 8 ký tự và phải đảm bảo tên
không dài quá 127 ký tự, tên chương trình phải được đặt bằng tiếng việt không
dấu, không sử dụng dấu cách;
Các biến ở phần khai báo phải đảm bảo phù hợp với bài toán và phù hợp
với kiểu dữ liệu cần nhập.
3. Cấu trúc câu lệnh lặp với số lần biết trước: FOR...DO

skkn


10
FOR <Biến đếm>:=<Giá trị đầu> TO <Giá trị cuối> DO <Câu lệnh>;
Ví dụ: FOR i:=1 TO 5 DO WRITE(i:4);
4. Cấu trúc câu lệnh lặp với số lần chưa biết trước: WHILE...DO
Để thực hành tốt các dạng bài tập câu lệnh lặp với số lần chưa biết trước
học sinh cần thiết nắm vững kiến thức lý thuyết thông qua cú pháp:
While <Điều kiện> do <Câu lệnh>;
Với cú pháp này câu lệnh có ý nghĩa nếu câu lệnh kiểm tra điều kiện đúng
thì sẽ thực hiện câu lệnh. Sau một vịng lặp chúng ta có thể thao tác tăng hoặc
giảm biến để cho điều kiện sẽ bị sai sau một số vòng lặp;
Ví dụ: While Luythua<=n do
Begin
Tich:=Tich*x;
End;
Các em phải hiểu được quy tắc đặt tên chương trình, tên biến cho phù hợp
với bài tốn và đảm bảo tính ngun tắc, ví dụ như tên chương trình nếu q 8 kí
tự ta cần dùng dấu gạch nối xen giữa, bài lập trình nào thì ta cần dùng câu lệnh
gán phối hợp với cơng thức toán học mà các em đã học ở bộ mơn Tốn để tính,
bài nào thì dùng câu lệnh If…then, For…do, While…do, khi nào dùng kiểu dữ

liệu Integer, Real, String hay Longint;
Bên cạnh đó để học sinh hiểu được, tơi cần chú ý cần quan tâm khía cạnh
sự thơng hiểu của học sinh, nên cho các em tập làm quen với các bài tập đơn
giản nhất, dần dần tăng mức độ khó lên từ từ, khơng nên q vội vàng để học
sinh tiếp xúc với những bài quá khó. Nếu các em chưa thông hiểu, chưa giải
quyết được vấn đề của bài tập đó, bản thân tơi đã giải thích hướng dẫn các em
mơ tả, phân tích cụ thể để từ đó hiểu rõ hơn bài tập mình đang làm;
Để thực hiện tốt kỹ năng lập trình các em cần nắm vững các cơng thức
tốn học của bài tốn để có thể chuyển đổi cơng thức ấy sang biểu thức Pascal.
Cho học sinh ghi nhớ lại các cơng thức tốn học mà các em chưa biết, chưa hiểu
vào vở bài tập. Ví dụ một số cơng thức cơ bản như sau:
+ Tính diện tích hình chữ nhật: SCN = chiều dài × chiều rộng. Khi đó ta
chuyển sang biểu thức Pascal sẽ là: S:=a*b; nên lưu ý học sinh khi viết xong
cuối dịng cơng thức phải có dấu chấm phẩy;
+ Tính diện tích hình vng: SHV = cạnh × cạnh. Khi đó ta chuyển sang
biểu thức Pascal sẽ là: Dientich:=a*a; nên lưu ý học sinh khi viết xong cuối
dịng cơng thức phải có dấu chấm phẩy;
Tính chu vi hình tam giác: SABC = cạnh a + cạnh b + cạnh c. Khi đó ta
chuyển sang biểu thức Pascal sẽ là: CV:=a+b+c; nên lưu ý học sinh khi viết
xong cuối dòng cơng thức phải có dấu chấm phẩy;

skkn


11
Ngồi ra, trong tiết học thực hành để khích lệ động viên tinh thần các em
giáo viên nên biểu dương những học sinh có thành tích tốt bằng nhiều biện pháp,
có thể cho điểm khuyến khích, động viên, khen thưởng trước lớp và điều quan
trọng hơn nữa là những học sinh có tư duy tốt cùng với thầy hướng dẫn lại các
bạn trong quá trình thực hành;

Viết chương trình:
Dựa vào mơ tả thuật tốn ở bước 2 trên, ta viết chương trình bằng một
ngơn ngữ lập trình (Turbo hoặc Free Pascal để viết chương trình).
Để viết được chương trình: Ta dựa vào cấu trúc chung
Sau đây là Ví dụ áp dụng từ cấu trúc chung của một chương trình Pascal:
Ví dụ: Viết chương trình giải phương trình bậc nhất 1 ẩn có dạng: a*x + b = 0.

- Cấu trúc chung của một chương trình Pascal trên:
PROGRAM <Tên chương trình>;
USES CRT;
CONST <tên hằng> = <giá trị>;
VAR <Tên các biến>: <Kiểu dữ liệu>;
BEGIN
CLRSCR;
<Phần thân chương trình>;
READLN;
END.
Giáo viên hướng dẫn học sinh viết trên bảng theo đúng cấu trúc chung về cách
đặt tên chương trình dễ hiểu.
Nhìn vào phương trình bậc nhất trên các em phải khai báo những biến nào thuộc
kiểu dữ liệu gì?
Hs: Khai báo biến a, b thuộc kiểu dữ liệu số nguyên; biến x giá trị nhận được có
thể kiểu nguyên.
Gv: Giá trị của x có thể là nguyên hoặc thực tuỳ vào ta gán giá trị cho a, b và kết
quả nhận được thơng thường thì x sẽ là kiểu dữ liệu số thực là nhiều.
Sau đó Gv yêu cầu Hs đứng dậy tại chỗ đọc cách viết chương trình theo đúng cấu
trúc chung và yêu cầu Hs: Nhập hệ số cho a, hệ số cho b, sau đó kiểm tra điều kiện của
a và của b rồi đưa ra thơng báo nghiệm của phương trình bậc nhất,...

Sau đó u cầy Hs viết và chạy chương trình trên máy tính.


skkn


12

Sau đó:
* Chạy thử, thay đổi, kiểm tra và chạy chương trình
Một số phím chức năng thường dùng
STT

Chức năng

Phím

1

F2

Lưu chương trình đang soạn thảo vào đĩa.

2

F3

Mở file mới hoặc file đã tồn tại trên đĩa để soạn
thảo.

3


Alt +F3

Đóng file đang soạn thảo.

4

Alt + F5

Xem kết quả chạy chương trình.

5

F8

Chạy từng câu lệnh một trong chương trình.

6

Alt + X

Thốt khỏi Turbo Pascal.

7

Alt + F9

Biên dịch chương trình

8


Ctrl + F9

Chạy chương trình

10

F10

Vào hệ thống Menu của Pascal.

skkn


13
- Chạy thử
Chạy thử và tìm lỗi và cơng việc học sinh 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.

- Thay đổi chương trình
- Một chương trình đã viết xong, đã chạy thử tốt, giải quyết đúng bài toán mà ta
mong muốn. Nhưng vẫn có thể sửa đổi chúng theo một hướng khác để có thể đáp
ứng được một yêu cầu mới.

- Kiểm tra và Sửa lỗi
- Nếu Lỗi về thuật toán: Điều chỉnh lại thuật tốn, các bước thêm vị trí có thể, loại bỏ
thuật tốn sai, tìm thuật tốn.

Lỗi về trình tự: Phải xem lại thuật tốn, phân tích lại từ trên xuống dưới để đặt
lại cho đúng với thuật toán.
-Lỗi về cú pháp: Nếu lỗi thiếu dấu(;) hay lỗi về cú pháp,…. viết lại cho đúng cú
pháp của ngôn ngữ lập trình mà mình đang sử dụng.

Chạy chương trình: Lưu tên chương trình sau khi đã sửa hết các lỗi và nhập
dữ liệu cho a, cho b và quan sát kết quả nhận được.
Nói tóm lại: Để viết được chương trình Pascal để giải các bài tốn bất kỳ là ta
có thể thực hiện tuần tự ba bước 1, 2, 3 như trên được càng tốt hoặc thực hiện
luôn bước 3 là viết chương trình từ cấu trúc chung của một chương trình Pascal
bao gồm các qui tắc trong ngơn ngữ lập trình Pascal như qui tắc đặt tên, qui tắc
khai báo hằng, khai báo biến thuộc kiểu dữ liệu, phép gán, qui tắc các dấu
chấm(.), dấu chấm phẩy(;),các cơng thức tốn học, cách tính,… biết vận dụng
các qui tắc trên từ cấu trúc chung để giải đối với các bài toán cụ thể.
B. CÁC BÀI TẬP SAU ĐÂY GIÚP HỌC SINH RÈN KỸ NĂNG VIẾT
CHƯƠNG TRÌNH ĐỂ GIẢI CÁC BÀI TỐN TRÊN MÁY TÍNH BẰNG
NGƠN NGỮ LẬP TRÌNH PASCAL [1], [2], [3], [4], [5].
Bài 1: Viết chương trình nhập chiều cao của hai bạn Long và Trang, in ra màn
hình kết quả so sánh chiều cao của hai bạn, chẳng hạn “Bạn Long cao hơn”.

skkn


14
u cầu:
1. Xác định bài tốn
2. Mơ tả thuật tốn
3. Viết chương trình
?1. Xác định bài tốn
Giáo viên: u cầu học sinh đứng dậy xác định bài toán.

Học sinh: Trả lời.
INPUT: cho 2 biến chiều cao Long, Trang.
OUTPUT: In kết quả so sánh chiều cao của hai bạn Long và Trang.
?2. Mơ tả thuật tốn.
Giáo viên: u cầu học sinh đứng dậy mơ tả thuật tốn bởi các bước
Học sinh: Trả lời
Bước 1: Khai báo chiều cao hai bạn Long, Trang;
Bước 2: Nếu Long > Trang thì in ra màn hình Bạn Long cao hơn; Ngược lại
Bạn Trang cao hơn;
Bước 3: Kết thúc.
?3. Viết chương trình
Giáo viên: + Yêu cầu học sinh đứng dậy đọc cách viết chương trình theo
cấu trúc chung
+ Yêu cầu học sinh khai báo các biến, sau đó sử dụng câu lệnh
điều kiện để so sánh chiều cao của hai bạn và đưa ra thông báo “Ai cao hơn”
hoặc “Hai bạn cao bằng nhau”.
Học sinh: Đọc cách viết
* Sau khi học sinh viết chương trình xong, giáo viên yêu cầu học sinh kiểm
tra sửa lỗi và chạy chương trình.
Học sinh: Thực hiện
Program Ai_cao_hon;
Uses crt;
Var Long, Trang: Real;
Begin Clrscr;
Write(‘ Nhap chieu cao cua Long:’); Readln(Long);
Write(‘ Nhap chieu cao cua Trang:’); Readln(Trang);
If Long > Trang then Writeln(Ban Long cao hon’);
If Long > Trang then Writeln(Ban Trang cao hon’)
Else Writeln(‘ Hai ban cao bang nhau’);
Readln

End.

skkn


15
Bài 2: Dưới đây là chương trình nhập ba số dương a, b và c từ bàn phím, kiểm
tra và in ra màn hình kết quả ba số đó có thể là độ dài các cạnh của một tam
giác không.
1. Xác định bài tốn
2. Mơ tả thuật tốn
3. Viết chương trình với tên Ba_canh_tam_giac.
Gợi ý: Ba số dương a, b và c là độ dài ba cạnh của một tam giác khi và chỉ khi
a + b > c, b + c > a, c + a > b.
?1. Xác định bài toán
Giáo viên: Yêu cầu học sinh lên xác định bài toán
Học sinh: Lên thực hiện
INPUT: cho 3 biến a, b, và c.
OUTPUT: In ra thông báo độ dài ba cạnh của một tâm giác khi chúng thỏa mãn
điều kiện, nếu a + b > c và b + c > a và c + a > b. ngược lại a, b, c không là ba
cạnh của một tam giác
?2. Mơ tả thuật tốn
Giáo viên: u cầu học sinh đứng dậy mơ tả thuật tốn bởi các bước
Học sinh: Lên thực hiện
Bước 1: Khai báo biến a, b, c thuộc kiểu dữ liệu số nguyên.
Bước 2: Nếu a + b > c và b + c > a và c + a > b. ngược lại a, b, c không là ba
cạnh của một tam giác.
Bước 3: Kết thúc thuật tốn.
?3. Viết chương trình
Giáo viên: + u cầu học sinh đứng dậy đọc hoặc lên viết chương trình áp

dụng cấu trúc chung.
+ Yêu cầu học sinh khai báo các biến thuộc những kiểu dữ liệu
nào, sau đó sử dụng câu lệnh điều kiện để so sánh ba cạnh của một tam giác và
đưa ra thơng báo có phải là ba cạnh của một tam giác không, phụ thuộc vào khi
và chỉ khi ở trên.
Học sinh: Thực hiện
Program Ba_canh_tam_giac;
Uses crt;
Var a, b, c: real;
Begin
Clrscr;
Write(‘Nhap ba so a, b và c: ‘); Readln(a,b,c);
If (a+b>c) and (b+c>a) and (c+a>b) then

skkn


16
Writeln(‘a, b va c la 3 canh cua mot tam giac!’)
Else writeln(‘a, b, c khong la 3 canh cua 1 tam giac’); Readln
End.
Bài 3: Viết chương trình giải phương trình bậc nhất a.x+b=0.
1. Xác định bài tốn
2. Mơ tả thuật tốn
3. Viết chương trình với tên giaiptb1.pas.
?1. Xác định bài toán
Giáo viên: Yêu cầu học sinh lên xác định bài toán
Học sinh: Lên thực hiện
INPUT: cho biến a, b, và x.
OUTPUT: nghiệm của phương trình là x:= -b/a;

?2. Mơ tả thuật tốn
Giáo viên: u cầu học sinh lên mơ tả thuật toán bởi các bước
Học sinh: Lên thực hiện
Bước 1: Khai báo các biến a, b, x.
Bước 2: Kiểm tra điều kiện a = 0 và b = 0 thì phương trình vơ số nghiệm, ngược
lại a = 0 và b <> 0 thì phương tŕnh vơ nghiệm; ngược lại a <> 0 phương trình có
nghiệm x= -b/a.
Bước 3: Kết thúc thuật tốn
?3. Viết chương trình
Giáo viên: + u cầu học sinh đứng dậy đọc hoặc lên viết chương trình áp
dụng cấu trúc chung
+ Yêu cầu học sinh khai báo các biến thuộc những kiểu dữ liệu
nào, sau đó sử dụng câu lệnh điều kiện nếu a = 0 và b = 0 thì phương trình vơ số
nghiệm, ngược lại a = 0 và b <> 0 thì phương trình vơ nghiệm; ngược lại a <> 0
phương trình có nghiệm x= -b/a.
Học sinh: Thực hiện
Program Ptb1;
Uses Crt;
Var a,b,x : real;
Begin
Write('a = '); Readln(a);
Write('b = '); Readln(b);
If a = 0 Then
If b = 0 Then
Writeln('Phuong trinh co vo so nghiem')
Else Writeln('Phuong trinh vo nghiem')
Else

skkn



17
Begin
x:= -b/a; Writeln('Phuong trinh co nghiem la :',x:0:2);
End; Readln;
End.
Học sinh: Lưu tên, Sửa lỗi và chạy chương trình, quan sát kết quả nhận được.
Bài 4: Viết chương trình giải phương trình bậc hai có dạng:
A*X2 + B*X + C = 0
1. Xác định bài tốn
2. Mơ tả thuật tốn
3. Viết chương trình với tên giaiptb2.pas.
?1. Xác định bài tốn
Giáo viên: Yêu cầu học sinh lên xác định bài toán
Học sinh: Lên thực hiện
INPUT: Cho biến A, B, C, delta, X.
OUTPUT: Nghiệm của phương trình bậc hai
?2. Mơ tả thuật tốn
Giáo viên: Yêu cầu học sinh đứng dậy mô tả thuật toán bởi các bước
Học sinh: Lên thực hiện
Bước 1: Khai báo các biến A, B, C, delta X, X1, X2.
Bước 2: Kiểm tra điều kiện của Delta:
Nếu> 0, phương trình có hai nghiệm phân biệt
X1, X2 = -B +

Delta
2* A

Nếu Delta = 0, phương trình vơ nghiệm
Nếu Delta <0, phương trình có nghiệm kép X1 = X2 = -B/(2*A);

Bước 3: Kết thúc thuật tốn
?3. Viết chương trình
Giáo viên: + u cầu học sinh lên viết chương trình áp dụng từ cấu trúc chung.
+ Yêu cầu học sinh khai báo các biến thuộc những kiểu dữ liệu nào,
sau đó sử dụng câu lệnh điều kiện, Nếu> 0, phương trình có hai nghiệm phân
biệt
Nếu Delta = 0, phương trình vơ nghiệm
Ngược lại, Nếu Delta <0, phương trình có nghiệm kép.
Học sinh: Thực hiện
Program GIAI_PHUONG_TRINH_BAC_HAI;

skkn



×