PHÒNG GIÁO
DỤC VÀ
ĐÀO TẠO KRÔNG ANA
KINH
NGHIỆM
TRƯỜNG THCS BUÔN TRẤP
SỬ DỤNG NGÔN NGỮ LẬP TRÌNH PASCAL ĐỂ
GIẢI MỘT SỐ BÀI TOÁN
MỤC LỤC
Trang
Phần thứ nhất: MỞ ĐẦU
I. Đặt vấn đề:
Lý do chọn đề tài........................................................................................................1
Đối tượng nghiên cứu:...............................................................................................1
Họ và tên: Nguyễn Thị Thu Thủy
Đơn vị công tác: THCS Buôn Trấp
II. Mục tiêu nghiên
cứu: vụ:
.....................................................................................................1
Chức
Giáo viên
Phạm vi nghiên cứu:................................................................................................. 1
Phần thứ hai: GIẢI QUYẾT VẤN ĐỀ
I.
Công nghệ thông tin
Trang 1
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
PHẦN THỨ NHẤT: MỞ ĐẦU
I. ĐẶT VẤN ĐỀ:
Lý do chọn đề tài:
Theo Trưởng Ban Kinh tế Trung ương Nguyễn Văn Bình, Cách mạng công
nghiệp 4.0 (CMCN 4.0) mang lại cơ hội cho các nước đang phát triển, giúp rút ngắn quá trình
công nghiệp hoá bằng cách đi tắt đón đầu, phát triển nhảy vọt lên công nghệ cao hơn.
Nghị quyết 29 của BCHTW về đổi mới căn bản và toàn diện GD-ĐT đã chỉ ra là tiếp tục
đổi mới mạnh mẽ phương pháp dạy và học theo hướng hiện đại, đề cao vai trò chủ thể hoạt động
của học sinh nhằm phát huy tính tích cực, chủ động, sáng tạo và vận dụng kiến thức, kỹ năng vào
giải quyết các tình huống thực tiễn cuộc sống.
Bộ giáo dục đang triển khai rất nhiều công văn phục vụ đổi mới căn bản và toàn diện
GD&ĐT sau năm 2018. Đổi mới phương pháp và hình thức tổ chức dạy học và kiểm tra đánh giá,
đổi mới sinh hoạt chuyên môn theo hướng nghiên cứu bài học, tổ chức các kỳ thi giúp học sinh
vận dụng kiến thức đã học vào giải quyết vấn đề thực tiễn, … nhằm hình thành và phát triển các
năng lực cần thiết của thế kỷ 21 cho học sinh.
Trong quá trình dạy học chương trình Tin học lớp 8, tôi thấy rằng, những kiến thức học
sinh tiếp nhận và áp dụng vào giải các bài toán đạt kết quả chưa cao, do học sinh chưa thật sự nắm
vững các bước để giải bài toán và chưa vận dụng được linh hoạt ngôn ngữ lập trình để giải bài
toán. Xuất phát từ cơ sở trên tôi đã chọn đề tài “Sử dụng ngôn ngữ lập trình Pascal để giải
toán”.
Đối tượng nghiên cứu:
- Tập trung nghiên cứu sử dụng ngôn ngữ lập trình Pascal để giải toán.
học.
Đổi mới phương pháp dạy học của người thầy bắt nguồn từ yêu cầu học tập của người học.
Phương pháp này nhấn mạnh quá trình học tập và tiếp thu chứ không chú trọng đến kết quả học tập.
Đây cũng là phương pháp giúp cho người học phát triển kỹ năng tự học và kỹ năng giải quyết vấn
đề. Sử dụng phương pháp học tập tích cực, người dạy đóng vai trò là “người hướng dẫn” giúp
người học thu được kết luận đúng thông qua sự chỉ dẫn, khuyến khích cũng như thách thức họ đạt
được mục đích học tập. Phương pháp học tập tích cực có ý nghĩa quan trọng giúp học sinh biết cách
tìm, tra cứu tài liệu thông tin, tổ chức chúng, thực nghiệm và kiểm nghiệm các câu trả lời của mình
thông qua ý kiến đánh giá của người thầy và của nhiều người.
Chính vì thế để nâng cao chất lượng học tập của học sinh đối với môn học lập trình và giải
các bài toán bằng ngôn ngữ lập trình chúng ta cần nắm được rõ các khái niệm sau:
Ngôn ngữ lập trình (programming language) là dạng ngôn ngữ được chuẩn hóa theo một hệ
thống các quy tắc riêng, sao cho qua đó người lập trình có thể mô tả các chương trình làm việc
dành cho thiết bị điện tử mà cả con người và các thiết bị đó đều hiểu được.
Pascal là một ngôn ngữ lập trình máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus
Wirth phát triển vào năm 1970 là ngôn ngữ lập trình đặc biệt thích hợp cho kiểu lập trình cấu
trúc và cấu trúc dữ liệu. Được đặt theo tên của nhà toán học, triết gia và nhà vật lí người
Pháp, Blaise Pascal.
Pascal được phát triển theo khuôn mẫu của ngôn ngữ ALGOL 60. Wirth đã phát triển một số
cải tiến cho ngôn ngữ này như một phần của các đề xuất ALGOL X, nhưng chúng không được chấp
nhận và Ngôn ngữ Pascal được phát triển riêng biệt và phát hành vào năm 1970. Một phiên bản cải
tiến được gọi là Object Pascal được thiết kế cho lập trình hướng đối tượng được phát triển vào năm
1985, được sử dụng bởi Apple Computer và Borland vào cuối những năm 1980 và sau đó phát triển
thành ngôn ngữ Delphi trên nền tảng Microsoft Windows. Wirth đồng thời cũng xây dựng Modula2 và Oberon, là những ngôn ngữ tương đồng với Pascal. Oberon cũng hỗ trợ kiểu lập trình hướng
đối tượng.
Người viết: Nguyễn Thị Thu Thủy
Trang 3
nhân viên công nghệ thông tin. Và mức lương của ngành Công nghệ thông tin đứng top 3 trong tất
cả các ngành ở Việt Nam. Có thể thấy rằng việc xin được việc của ngành lập trình là khá dễ dàng.
Bởi nguồn nhân lực đang thiếu cùng với đó là sự phát triển của ngành công nghệ. Khiến mọi thứ
cũng thay đổi nhu cầu cũng từ đó mà tăng cao.
Người viết: Nguyễn Thị Thu Thủy
Trang 4
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
Để định hướng nghề nghiệp cho tương lai của học sinh đáp ứng được nhu cầu của thời đại
thì trước hết học sinh cần phải học tốt các môn học nhất là bộ môn ngôn ngữ lập trình pascal. Vì
đây chính là ngôn ngữ đầu tiên, tiền đề cho các ngôn ngữ khác mà học sinh sẽ học. Nhưng hiện nay
quá trình học tập và nghiên cứu bộ môn lập trình vẫn gặp rất nhiều khó khăn như:
Đời sống của người dân trong nhiều thôn, buôn còn nhiều khó khăn, nên việc đầu tư cho con
em mình trong học tập còn hạn chế.
Phương tiện dạy và học, đặc biệt là phòng máy ở một số trường còn thiếu, bị hư hỏng nhiều.
Một số giáo viên vẫn chưa linh hoạt khi áp dụng các phương pháp dạy học mới vào quá trình
giảng dạy cho học sinh.
Môn Tin học lập trình là môn học khó nên vẫn còn có học sinh chưa thật sự đam mê môn
học, một số em còn thụ động trong quá trình tiếp thu kiến thức.
Học sinh nắm các bước để giải một bài toán một cách mơ hồ nên chưa thể áp dụng để giải
các bài toán khác.
Học sinh tiếp nhận kiến thức một cách thụ động nên chưa khắc sâu được kiến thức.
Tư duy toán học của các học sinh chưa thật đồng đều.
Học sinh chưa linh động trong việc áp dụng toán học vào lập trình. Chưa nắm rõ các bước
để giải một bài toán trong ngôn ngữ lập trình và các từ khóa để thể hiện các bài toán đó nên mức độ
hoàn thành bài làm của giáo viên còn hạn chế minh họa trong bảng số liệu sau:
Mức độ hoàn thành bài tập được giáo viên đưa ra
Hoàn
thành
trình vẫn
chương
quyết ở trên
gặp lỗi
trình
lớp
8a3
38
TS
3
%
7.9
TS
17
%
47.7
TS
III. CÁC GIẢI PHÁP ĐÃ TIẾN HÀNH ĐỂ GIẢI QUYẾT VẤN ĐỀ:
Người viết: Nguyễn Thị Thu Thủy
Trang 5
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
- Như chúng ta đã biết việc khuyến khích học sinh yêu thích bộ môn là một quá trình lâu dài,
cần nhiều thời gian. Vì vậy khi được phân công giảng dạy tại lớp nào đó, ngoài việc truyền thụ kiến
thức cơ bản cho toàn lớp, mỗi giáo viên chúng ta nên chú trọng vào việc tìm kiếm, lồng ghép
những kiến thức mở rộng, nâng cao hoặc những bài toán trí tuệ nhanh vào tiết dạy hoặc bài kiểm
tra.
- Giống như các môn học khác, môn tin Học của chúng ta, muốn đạt được kết quả mỹ mãn,
trước hết mỗi giáo viên phải thực sự đam mê với công việc, phải luôn trau dồi và nâng cao kiến
thức cho bản thân. Mỗi giáo viên phải:
+ Cần chọn lọc những phương pháp dạy học tích cực dễ hiểu nhất để hướng dẫn cho học
sinh không nên máy móc theo hướng dẫn.
+ Giúp học sinh định hướng và nhận ra cách giải và thuật toán của các dạng bài tập cơ bản.
+ Hướng dẫn học sinh vận dụng được các công thức toán học vào giải một bài toán lập trình.
Điều này giúp các em nhận biết các dạng bài tập và chọn hướng giải cho phù hợp.
+ Định hướng cho học sinh các bước để giải một bài toán. Yêu cầu học sinh đưa ra cách giải
riêng cho bài toán của mình.
+ Hướng dẫn học sinh cách trình bày, cũng như cách lập luận bài làm, để khi các em làm bài
đạt kết quả tốt nhất.
Trong quá trình giảng dạy, mỗi giáo viên phải tổng hợp được những kiến thức cơ bản, trọng
tâm, dễ nhớ để đưa vào kiến thức của các em. Chẳng hạn như một số bài toán sau:
2.1. Bài toán 1: Thử viết chương trình nhập các số nguyên X, và Y, in giá trị của X và Y ra
màn hình. Sau đó hoán đổi các giá trị của X và Y rồi lại in ra màn hình giá trị của X và Y. (Bài 2,
SGK tin học dành cho THCS quyển 3 trang 35).
- Gv: Để có thể hoán đổi được giá trị của hai
biến X và Y. Chúng ta cùng nghiên cứu một trò
chơi như sau: Cô có hai cốc nước màu xanh là
cốc đánh số 1 và màu đỏ lần được được đánh số
2. Làm cách nào để hoán đổi hai cốc nước với
nhau, sao cho cốc màu đỏ được đánh số 1, cốc
màu xanh được đánh số 2? Cho phép sử dụng
một cốc phụ đánh số 3 không có nước.
- Gv: Chia học sinh trong lớp ra thành 4 nhóm. - Hs các nhóm thực hiện quá trình đổi nước
Mỗi nhóm có 3 cốc với 2 cốc là màu xanh và đỏ trong các cốc.
với cốc số 3 là cốc không có nước. Yêu cầu các
nhóm học sinh tiến hành thảo luận theo nhóm.
Tìm ra cách để hoán đổi nước trong các cốc.
- Gv quan sát nhắc nhở các nhóm thực hành cẩn
thận và nghiên túc tránh đổ nước gây mất vệ
sinh.
- Gv yêu cầu các nhóm báo cáo kết quả thảo - Các nhóm học sinh báo cáo kết quả làm được.
luận của nhóm mình. Thực hiện cho cả lớp cùng
+ Lấy cốc thứ nhất đổ qua cốc thứ 3
quan sát.
+ Lấy cốc thứ hai đổ qua cốc thứ nhất
+ Nhất cốc thứ 3 đổ qua cốc thứ hai
- Gv nhận xét quá trình thực hành của các nhóm
đồng thời nhắc nhở về ý thức thực hành của một
số nhóm.
- Hs lắng nghe.
- Gv: Cách chúng ta đổ nước vào cốc thứ 3 - Hs: Phép toán gán
giống như phép toán nào chúng ta vừa học trong
- Gv yêu cầu học sinh gõ lại đoạn chương trình
trên vào máy, dịch và chạy chương trình.
- Hs làm theo yêu cầu của giáo viên.
- Gv quan sát và giúp đỡ các nhóm học sinh
thực hành.
- Gv: Vậy chúng ta đã hoàn thành giải một bài - Hs lắng nghe.
toán trong ngôn ngữ lập trình Pascal. Quá trình
chúng ta tóm tắt bài toán cũng chính là quá trình
xác định bài toán. Quá trình tìm cách hoán đổi
hai giá trị của X và Y chính là việc mô tả thuật
toán. Viết chương trình, dịch và chạy chương
trình là các bước cuối cùng để hoàn thiện giải
Người viết: Nguyễn Thị Thu Thủy
Trang 8
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
một bài toán. Vậy chi tiết của các bước này như
thế nào chúng ta sẽ cùng nghiên cứu trong bài 5:
Từ bài toán đến chương trình.
- Quá trình dạy học như thế này, yêu cầu giáo viên phải nghiên cứu bài thật kỹ trước khi lên
lớp. Tìm ra phương pháp hợp lý nhất để hướng dẫn học sinh làm việc, trong những tiết học như thế
này giáo viên sẽ hoạt động nhiều hơn nhưng chỉ với vai trò là đưa ra vấn đề và yêu cầu học sunh
phải giải quyết vấn đề mà giáo viên đưa ra. Như vậy học sinh sẽ là người làm chủ kiến thức của
mình, học sinh chủ động hơn trong quá trình tiếp thu kiến thức.
2.1. Bài toán 2: Tìm số lớn nhất trong dãy A các số a1, a2, a3, …, an cho trước. (Ví dụ 6,
SGK tin học dành cho THCS quyển 3 trang 43)
+ Nhóm 3 xem bạn đầu tiên là cao nhất,
lần lượt so sánh bạn đầu tiên với các bạn
còn lại, nếu bạn tiếp theo cao hơn bạn đầu
tiên thì ta giữ lại bạn cao hơn. So sánh
như vậy đến hết nhóm, bạn cuối cùng còn
lại ở trên chính là bạn cao nhất.
+ Nhóm 4 ….
Người viết: Nguyễn Thị Thu Thủy
Trang 9
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
- Gv yêu cầu các nhóm học sinh đưa ra nhận xét cho - Các nhóm học sinh sẽ biện luận để bảo
từng cách làm của các nhóm.
vệ ý kiến của nhóm mình.
- Gv: tại sao các bạn cùng lớp, cùng độ tuổi lại có - Hs: Các yếu tố ảnh hưởng đến sự phát
chiều cao khác nhau?
triển chiều cao:
+ Yếu tố gen di truyền
+ Yếu tố dinh dưỡng
+ Yếu tố vận động
+ Yếu tố giới tính.
- Gv: Ngoài yếu tố gen di truyền, chúng ta phải làm gì - Hs: ăn uống và tập luyện thể dục thể
để cũng cố chiều cao của mình?
thao hợp lý.
- Gv: Ngoài các yếu tố trên. Ở mỗi độ tuổi khác nhau - Hs: lắng nghe.
thì quá trình phát triển chiều cao cũng sẽ khác nhau…
+ Bước 3: tiếp tục so sánh MAX với
trọng lượng thỏ thứ 3. Vì trọng lượng thỏ
thứ 3 lớn hơn MAX, do đó MAX=5;
+ Bước 4: So sánh MAX với con thỏ thứ
4, MAX lớn hơn trọng lượng của con thỏ
thứ 4, do đó MAX vẫn bằng 5. Kết quả,
thỏ nặng nhất có trọng lượng là 5.
- Hs quan sát giáo viên viết và chạy
chương trình.
- Gv viết chương trình cho học sinh quan sát:
- Gv chạy chương trình cho học sinh quan sát:
Đối với cách thực hiện như thế này sẽ phát huy được tối đa tình thần tự nghiên cứu và tự học
của học sinh. Với cách này giáo viên chỉ đóng vai trò dẫn dắt, đưa ra vấn đề cho học sinh giải
quyết. Từ đó khắc sâu được kiến thức cho học sinh. Ngoài ra giáo viên còn lồng ghép đươc giáo
dục sức khỏe, tâm sinh lý lứa tuổi của học sinh.
2.2. Bài toán 3: Viết chương trình nhập điểm của các bạn trong lớp. Sau đó in ra màn hình
số bạn đạt kết quả học tập loại giỏi, khá, trung bình vầ kém (theo tiêu chuẩn > 8.0 điểm: Giỏi, từ
6.5 điểm đến 7.9 điểm: Khá, từ 5 điểm đến 6.5 điểm: Trung bình và dưới 5 điểm: Kém). (SGK tin
học dành cho THCS quyển 3 trang 147)
Hoạt động giáo viên
- Gv: Hãy xác định bài toán đã cho
Người viết: Nguyễn Thị Thu Thủy
Hoạt động học sinh
- Hs:
Trang 11
- Hs:
+ Bước 1: Nhập số bạn trong lớp N và dãy a1, a2, …, an.
+ Bước 2: G:=0; K:=0; Tb:=0; Ke:=0;
+ Bước 3: i=8.0 thì G:=G+1;
Nếu A[i]<8.0 và A[i]>=6.5 thì K:=K+1;
Nếu A[i]<6.5 và A[i]>=5.0 thì Tb:=Tb+1;
Nếu A[i]n. In kết quả ra màn hình
- Các nhóm thực hiện theo yêu cầu của giáo viên
+ Nhóm 4: Viết câu lệnh in kết quả ra
màn hình.
- Gv: yêu cầu các nhóm báo cáo kết
quả hoạt động của nhóm mình.
- Hs nhóm 1:
Người viết: Nguyễn Thị Thu Thủy
Trang 12
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
program Phanloai;
uses crt;
- Gv: Bài này chúng ta sử dụng những Var i, n, G, K, Tb, Ke: integer;
biến nào?
A: array[1..100] of real;
- Gv: biến mảng A: array[1..100] of
- Hs: trả lời theo khai báo, giải thích ý nghĩa của các biến.
For i:=1 to n do
Begin
- Hs: dùng để nhập điểm của các bạn học sinh trong lớp.
write('hoc sinh [', i ,']=');
readln(a[i]);
End;
Người viết: Nguyễn Thị Thu Thủy
Trang 13
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
- Gv yêu cầu Hs nhóm 3 báo cáo
- Hs nhóm 3:
G:=0; K:=0; Tb:=0; Ke:=0;
for i:=1 to n do
begin
if a[i]>=8.0 then G:=G+1;
if (a[i]<8.0) and (a[i]>=6.5) then K:=K+1;
if (a[i]>=5)and(a[i]
- Gv các loại khác chúng ta về nghiên
cứu thông tư 58/2011/TT-BGDĐT. Vì
thế các em hãy tập trung học đều các
- Hs lắng nghe.
môn học nếu các em muốn đạt kết quả
cao ở cuối năm.
- Gv yêu cầu học sinh gõ chương trình
đã viết vào máy, dịch và chạy chương - Hs làm theo yêu cầu của giáo viên
trình.
- Hs làm theo yêu cầu của giáo viên
- Hs dịch và chạy chương trình.
Ở nội dung này, giáo viên cũng sẽ là người dẫn dắt, điều hành các em thực hiện nhiệm vụ
của mình. Các em học sinh sẽ hoạt động theo nhóm, cặp đôi, thảo luận, phản biện để bảo vệ và đưa
ra kết luận cho công việc nhóm mình thực hiện. Các em học sinh sẽ chủ động trong việc hình thành
kiến thức, tự tin hơn khi tự phản biện bảo vệ ý kiến của nhóm mình nâng cao khả năng nói trước
đám đông. Bên cạnh đó giáo viên còn có thể lồng ghép hướng dẫn cho học sinh về ý thức học tập,
về quy trình đánh giá xếp loại học tập của học sinh để học sinh có thể hiểu và chủ động đưa ra định
hướng và cách học riêng cho bản thân mình để đạt kết quả tốt nhất trong học tập.
Người viết: Nguyễn Thị Thu Thủy
Trang 15
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
IV. Tính mới của giải pháp:
Vận dụng linh hoạt các phương pháp dạy học tích cực trong quá trình dạy học: phương pháp
vấn đáp, phương pháp đặt và giải quyết vấn đề, phương pháp thảo luận nhóm.
Phát huy được tính tích cực, chủ động của học sinh trong quá trình tiếp thu kiến thức.
Trang 16
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
Hoàn
thành
chương
Lớp
Số HS
trình
không có
lỗi
Hoàn
Chưa
HS Tự đề xuất
thành
hoàn
vấn đề tìm
chương
thành
%
28.6
TS
0
%
0
TS
28
%
66.7
Đối chứng
8a2
40
5
12.5
12
30.0
23
5
16.7
12.5
Điểm 6.5-8 Điểm 5-6.5
TS
%
TS
%
20
22
47.6
55.0
15
13
35.7
32.5
Điểm 3.5- 5
TS
%
0
0
0
0
sinh cũng được nâng lên rõ rệt.
II. Ý KIẾN ĐỀ XUẤT:
1. Đối với Phòng Giáo dục và Đào tạo:
- Lãnh đạo phòng, lãnh đạo các trường nên tiếp tục duy trì khuyến khích học sinh lớp 8 tham
gia thi học sinh giỏi môn tin học, để học sinh xác định được hướng lựa chọn cho bản thân cũng như
khuyến khích tinh thần tự học, tự nghiên cứu của học sinh ngay từ khi mới làm quen với ngôn ngữ
lập trình và bài toán.
- Các giáo viên giảng dạy môn toán học nên ra một số đề toán cơ bản và yêu cầu học sinh có
thể chuyển đổi sang ngôn ngữ lập trình.
2. Đối với các trường:
- Nên tổ chức chuyên đề đổi mới phương pháp dạy học môn Tin học ở các cụm trường với
nhau, để trao đổi, học hỏi kinh nghiệm lẫn nhau.
- Cần chú trọng hơn nữa công tác bồi dưỡng học sinh giỏi nói chung môn Tin học nói riêng.
Buôn Trấp, Ngày 26 tháng 4 năm 2019
Người viết
Nguyễn Thị Thu Thủy
Người viết: Nguyễn Thị Thu Thủy
Trang 18
Kinh nghiệm “Sử dụng ngôn ngữ lập trình Pascal để giải toán”
TÀI LIỆU THAM KHẢO
+ SGK tin học quyển 3
+ Sách giáo viên tin học quyển 3