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

Một số giải pháp giúp học sinh học lập trình turbo pascal tích cực, chủ động hơn khi học trực tiếp và trực tuyến trong giai đoạn dịch bệnh covid 19

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 (1.16 MB, 42 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO YÊN BÁI
TRƯỜNG PT DTNT THPT TỈNH
----- o0o -----

BÁO CÁO SÁNG KIẾN CẤP CƠ SỞ
(Lĩnh vực: Giáo dục và Đào tạo -Tin học)

“MỘT SỐ GIẢI PHÁP GIÚP HỌC SINH HỌC LẬP TRÌNH TURBO
PASCAL TÍCH CỰC, CHỦ ĐỘNG HƠN KHI HỌC TRỰC TIẾP VÀ TRỰC
TUYẾN TRONG GIAI ĐOẠN DỊCH BỆNH COVID-19”

Tác giả

: Nguyễn Đức Hiếu

Trình độ chuyên môn

: Cử nhân Tin học

Chức vụ

: Giáo viên

Đơn vị công tác

: Trường PT DTNT Tỉnh Yên Bái

Thành phố Yên Bái, tháng 11 năm 2021


I. THÔNG TIN CHUNG VỀ SÁNG KIẾN


1. Tên sáng kiến: "Một số giải pháp giúp học sinh học lập trình Turbo Pascal tích
cực, chủ động hơn khi học trực tiếp và trực tuyến trong giai đoạn dịch bệnh covid19"
2. Lĩnh vực áp dụng sáng kiến: Giáo dục và Đào tạo
3. Phạm vi áp dụng sáng kiến:
- Phạm vi nội dung nghiên cứu: Chương I, II, III - Tin học 11
- Nội dung hệ thống bài tập tôi đã áp dụng tại trường THPT Lê Quý Đôn năm
2020 đạt kết quả tốt, hiện tại tôi đang áp dụng với học sinh lớp 11 trường PT DTNT THPT
tỉnh Yên Bái và có thể áp dụng cho các Trường THCS, THPT sử dụng Ngơn ngữ lập
trình bậc cao Pascal trong chương trình Tin học lớp 8 và lớp 11.
4. Thời gian áp dụng sáng kiến:
- Từ ngày 5 tháng 9 năm 2019 đến ngày 5 tháng 01 năm 2020 (THPT Lê Qúy
Đôn)
- Từ ngày 5 tháng 9 năm 2020 đến ngày 5 tháng 01 năm 2021
- Từ ngày 30 tháng 4 năm 2021 đến ngày 20 tháng 5 năm 2021
(Sử dụng ứng dụng di động thông minh)
- Cặp ĐC – TN: ĐC 11B– TN 11D (PT DTNT THPT tỉnh)
5. Tác giả:
Họ và tên: Nguyễn Đức Hiếu
Năm sinh: 1982
Trình độ chun mơn: Cử nhân Tin học
Chức vụ công tác: Giáo viên
Nơi làm việc: Trường PT DTNT THPT Tỉnh
Địa chỉ liên hệ: Trường PT DTNT THPT Tỉnh
Điện thoại: 0931260782
II. MƠ TẢ SÁNG KIẾN:
1. Tình trạng các giải pháp đã biết
Trong dạy học, mục đích quan trọng là làm cho HS chủ động lĩnh hội được kiến
thức, đồng thời làm cho HS biết cách tự tìm ra con đường để chiếm lĩnh tri thức, trên cơ
1



sở những tri thức lĩnh hội được HS phát huy năng lực trí tuệ của mình nhằm phát minh ra
tri thức mới. Đối với HS điều quan trọng là phải biết cách học và học tập suốt đời, có như
vậy mới không ngừng làm phong phú kho tàng kiến thức cho bản thân mình. Do vậy GV
là người trước hết có tri thức phong phú, hơn nữa phải là người luôn am hiểu về sự học,
là chuyên gia của việc học, để làm cho HS có cách học tối ưu và hiệu quả, như vậy thì
cho dù kiến thức của HS có lúc hoặc lâu ngày có thể bị quên đi nhưng họ vẫn tự củng cố
và lấy lại được bởi họ đã học được cách học. GV không chỉ dậy kiến thức theo sách, phát
triển được năng lực tư duy cho HS mà còn phải làm cho HS biết cách học, thích học. Đó
là những mục tiêu mà GV phải hướng tới và phải đạt được trong quá trình dạy học.
Đối với bộ mơn Tin học nói chung, tin học lớp 11 THPT nói riêng thường ít được
học sinh quan tâm, u thích vì nó khơng thuộc tổ hợp môn thi Đại học nào, một nội dung
kiến thức cần rất nhiều sự tư duy sâu và khả năng sáng tạo. Mặt khác tin học 11 không
như tin học 10, 12 là các chương trình ứng dụng, dễ hiểu, dễ vận dụng, dễ hình dung.
Chương trình tin học 11 là sử dụng một ngơn ngữ lập trình bậc cao cụ thể để viết chương
trình máy tính, chúng ta hay gọi là Lập trình. Lập trình bằng ngơn ngữ Turbo Pascal để
giải các bài tốn trên máy tính thường gặp rất nhiều khó khăn trong việc sử dụng các câu
lệnh để diễn tả các bước của thuật toán, phát hiện và sửa lỗi về cú pháp, ngữ nghĩa.vv.
Trong khi đó để viết được một chương trình hồn chỉnh thì học sinh phải có tư duy logic
về thuật tốn, biết khai báo kiểu dữ liệu một cách hợp lí, biết sử dụng các câu lệnh đúng
cú pháp. Không như các bộ môn khác các em học sinh có thể làm bài và kiểm tra bài tập
của mình đúng hay sai ngay trên giấy một cách bình thường mà các em phải làm bài, nhập
các dòng code của bài tập qua phần mềm Turbo Pascal được cài đặt trên Máy ví tính.
Do vậy trong q trình học online giãn cách, việc khơng có Máy tính để làm bài
tập và thực hành chạy kiểm tra kết quả các bài tập (chương trình) trên phần mềm Turbo
Pascal là lý do chính dẫn tới học sinh không đạt kết quả tốt khi học online.
Xuất phát từ lý do trên, tơi đã có ý tưởng và chọn đề tài nghiên cứu: "Một số giải pháp
giúp học sinh học lập trình Turbo Pascal tích cực, chủ động hơn khi học trực
tiếp và trực tuyến trong giai đoạn dịch bệnh covid-19"
2. Nội dung (các) giải pháp đề nghị công nhận là sáng kiến:

- Mục đích của (các) giải pháp: Nhằm giúp HS (đặc biệt là HS vùng cao, vùng
2


sâu vùng xa, các em là con em gia đình dân tộc thiểu số) tự tin, có niềm đam mê hứng thú
khi học lập trình Pascal - tin học 11, Từ chỗ HS ngại phải giải một bài toán Tin học vì gặp
phải nhiều rào cản: Tìm thuật tốn, phát hiện lỗi, sửa lỗi …Giúp các HS hiếu rõ hơn về
tác dụng của các kiểu dữ liệu và vận dụng linh hoạt các kiểu dữ liệu vào quá trình khai
báo Biến và viết chương trình. Giúp HS giải quyết được một số khó khăn trong bước đầu
tiếp xúc với việc viết chương trình và sử dụng Ngơn ngữ lập trình Pascal.
Giúp học sinh trường PT DTNT THPT tỉnh Yên Bái Với 95% trong số gần 422
học sinh là người dân tộc thiểu số, gia đình khó khăn về mặt tài chính, khơng có máy
tính cá nhân để phục vụ việc học tập.
Cho nên ngồi việc giúp HS một số khó khăn trong bước đầu tiếp xúc với việc viết
chương trình và sử dụng Ngơn ngữ lập trình Pascal cịn giúp các em HS giải quyết tốt
nhất việc khó khăn thiếu phương tiện làm bài tập, thực hành (khơng có Máy tính).
- Nội dung (các) giải pháp:
+ Tổng hợp nội dung kiến thức cần nhớ và nắm chắc, đưa ra hệ thống câu hỏi và
bài tập phù hợp - từ đơn giản (nhớ kiến thức) đến phức tạp để tạo sự hứng thú cho các em
với giờ học và môn học.
+ Giới thiệu, hướng dẫn cài đặt và sử dụng ứng dụng Pascal N-IDE, Pascal
Programming Language lên thiết bị thông minh (cụ thể là điện thoại) thay thế Máy tính
trong quá trình làm bài tập và các giờ thực hành.
+ Cách thực hiện, các bước thực hiện:
I. CƠ SỞ LÝ LUẬN: Sơ lược về ngơn ngữ Lập trình bậc cao Pascal và ứng dụng Pascal
trên thiết bị di động thông minh.
I.1. Khái niệm về Pascal:
Là một ngơn ngữ lập trình cho 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. Pascal 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 & cấu trúc dữ liệu, và được đặt theo tên của nhà tốn học,

triết gia và nhà vật lí người Pháp, Blaise Pascal.
Ngơn ngữ lập trình này được phát triển ra nhằm giúp cho những người mới lập
trình có được thói quen viết một chương trình có cấu trức rõ ràng, dễ hiểu và dễ đọc cho
mọi người. Giáo sư Wirth thấy rằng có thể tránh được rất nhiều lỗi khi lập trình với một
3


ngơn ngữ có cấu trúc khối và có sự kiểm tra kỹ lưỡng sự tương thích giữa các kiểu dữ
liệu. Mà Pascal là một ngữ như thế: mọi biến và hằng của một kiểu dữ liệu không thể tự
do đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác. Ngơn ngữ Pascal có thể
tách các thơng tin dữ liệu (biến, hằng, …) và các lệnh cần dung cho một nhiệm vụ xác
định thành những khối riêng, tách ra khỏi phần cịn lại của chương trình để người lập trình
có thể giải quyết dần từng phần một, từng khối một và thậm chí có thể cho nhiều người
tham gia lập trình, mỗi người phụ trách một vài khối. Từ tính ưu việt đó của ngơn ngữ lập
trình Pascal mà ngôn ngữ này đã được sử dụng rộng rãi.
NNLT Pascal đã và đang được giảng dạy tại các trường THPT trong nhiều năm
qua. Việc sử dụng NNLT Pascal đã đáp ứng được các yêu cầu cơ bản trong chương trình
Tin học bậc THPT như cung cấp kiến thức cơ bản về thuật toán, cấu trúc dữ liệu, vận
dụng kiến thức để giải được một số bài toán đơn giản trên máy tính bằng lập trình.
Qua đó, khơng thể phủ nhận những ưu điểm của bộ môn này đối với ngành tin
học. Pascal là ngôn ngữ phổ biến, được đưa vào lĩnh vực giảng dạy và học thuật bởi những
điểm sau: Pascal là ngôn ngữ định kiểu dữ liệu mạnh mẽ (strong typed language). Nó có
thể giúp con người kiểm tra lỗi một cách rộng rãi. Cung cấp một số loại dữ liệu như mảng
(array), bản ghi (record), file và tập hợp (set). Cung cấp một loạt cấu trúc lập trình. Ngồi
ra cịn hỗ trợ lập trình cấu trúc thông qua các chức năng và thủ tục. Hỗ trợ lập trình hướng
đối tượng (OOP - object oriented programming)…
I.2. Giới thiệu ứng dụng Pascal N-IDE, Pascal Programming Language trên thiết
bị thơng minh
+ Pascal N-IDE là một trình thơng dịch Pascal trên Android. Ứng dụng này nhằm phục
vụ cho mọi người có thể học tập ngơn ngữ Pascal trên di động khi khơng có máy tính,

giúp chúng ta có thể thực hành bất cứ lúc nào, bất cứ nơi nào. Ứng dụng hiện đang trong
trạng thái làm việc và đang được phát triển một cách tích cực. Xin lưu ý rằng đây là một
trình thơng dịch nên sẽ khơng giống hồn tồn và khơng cung cấp tất cả các chức năng
của Pascal.
Những tính năng chính của Pascal N- IDE:
- Biên dịch chương trình Pascal và chạy chúng mà khơng cần Internet.
- Báo lỗi khi biên dịch
4


+ Pascal Programming Language là cơng cụ lập trình tuyệt vời trên AppStore, hồn
hảo để học tập, tính tốn tốn học phức tạp, giải trí và nhiều cơng việc hữu ích khác. Ứng
dụng này đặc biệt hữu ích cho việc học ngơn ngữ lập trình Pascal.
Những tính năng đặc điểm chính của Pascal Programming Language:
- Biên dịch và chạy chương trình của bạn.
- Nhập văn bản trước khi chạy chương trình và xuất văn bản.
- Trình chỉnh sửa mã nguồn nâng cao với đánh dấu cú pháp, số dòng, chủ đề màu
và bàn phím bổ sung.
- Nhập và xuất các chương trình bằng iTunes hoặc qua email.
I.3. Thực trạng học sinh trường PT DTNT THPT tỉnh - Học lập trình Pascal
Theo SGK của NXBGD và nội dung chương trình mơn tin học 11 của Bộ
GD&ĐT Việt Nam đưa ra, Trường PT DTNT THPT tỉnh, trường THPT Lê Quý Đôn
cùng 1 số trường THPT, THCS trong tỉnh Yên Bái đã và đang sử dụng ngơn ngữ lập trình
này để dạy cho các em HS. Tuy nhiên trong quá trình học tập, HS ở trường chúng tơi gặp
phải những khó khăn nhất định: Như mắc lỗi cú pháp, lỗi ngữ nghĩa chưa biết cách sửa,
việc giải một bài toán trong toán học hoặc bài tốn thực tế cịn lúng túng và hầu như tất
cả các em đều vướng mắc trong việc xác định kiểu dữ liệu cho các biến cũng như khai
báo các biến trong chương trình.
Các em thường khó hiểu trong việc xác định tại sao phải chọn kiểu dữ liệu này cho
biến kia mà không phải kiểu khác, trong các kiểu dữ liệu giống nhau thì tại sao lại chọn

kiểu có giới hạn nhỏ nhất thay vì lớn nhất ... chính vì vậy mà việc kết hợp các kiến thức
đã học để xây dựng thành 1 chương trình Pascal đơn giản là hết sức khó khăn, các em
khơng biết bắt đầu từ đâu. Do thời lượng chương trình có hạn (1,5 tiết/ tuần) nên SGK
cũng khơng thể giải thích hết được chỗ các em cần hỏi, cần tìm hiểu.
Thêm nữa vào thời gian học online thực hiện giãn cách xã hội thì việc làm bài
tập và thực hành chạy các chương trình kiểm tra lỗi, chỉnh sửa hồn thiện chương trình
khó thực hiện vì thiếu cơng cụ thực hành là Máy tính.
II. KIẾN THỨC, CÁC GIẢI PHÁP THỰC HIỆN VÀ HỆ THỐNG BÀI TẬP:
II.1. Tổng hợp kiến thức cần nhớ và nắm chắc:
Qua thực tế giảng dậy nhiều năm, tôi nhận thấy đa số HS khó xác định bài tốn,
5


xây dựng thuật tốn, khi chạy chương trình thì gặp nhiều lỗi: lỗi về cú pháp và lỗi về ngữ
nghĩa, khơng biết sửa chương trình trong ngơn ngữ lập trình Pascal...Những khó khăn ấy,
tơi đưa về 3 trường hợp cụ thể mà cá nhân tôi thấy như sau:
+ Trường hợp 1: Các kiến thức cơ bản cần nhớ và nắm chắc.
+ Trường hợp 2: Khó khăn về phát hiện và sửa lỗi sau cú pháp thường gặp khi chạy
chương trình trong ngơn ngữ lập trình Pascal.
- Lỗi 1. Đặt sai tên: Tên hằng, tên biến, tên chương trình, đặt tên biến trùng nhau,
tên chứa dấu cách, chứa các kí tự đặt biệt, bắt đầu bằng chữ số ...
- Lỗi 2. Sai tên kiểu dữ liệu:
Ví dụ: Kiểu thực thì viết là Read, kiểu nguyên thì viết là interger
- Lỗi 3. Thiếu dấu kết thúc câu lệnh {;}
- Lỗi 4. Viết sai tên các từ khóa.
- Lỗi 5. Khơng phân biệt được hằng xâu và biến; trình bày hằng xâu và biến ko đúng.
- Lỗi 6. Sử dụng dấu { ; } sai vị trí.
+ Trường hợp 3: Khó khăn khi phát hiện lỗi sai về ngữ nghĩa thường gặp của học sinh
trong lập trình Pascal. Lỗi sai về ngữ nghĩa là lỗi trình biên dịch bỏ qua mà khi chạy
chương trình mới phát hiện được lỗi.

- Lỗi 1. Chưa hiểu thứ tự ưu tiên phép toán, chuyển từ biểu thức toán học sang biểu
thức trong Pascal bị sai.
- Lỗi 2. Khai báo sai miền chỉ số cho dữ liệu kiểu mảng; sai kiểu dữ liệu cho biến.
- Lỗi 3. Giá trị biến điều khiển vượt quá miền chỉ số của mảng.
- Lỗi 4. Dùng cùng tên biến điều khiển cho các vòng lặp for lồng nhau.
- Lỗi 5. Tràn số do kết quả tính tốn vượt q giới hạn.
- Lỗi 6. Sử dụng tên hàm làm biến cục bộ.
+ Trường hợp 4: Khó khăn với các em (gần như 100% trong số 422 học sinh của trường
PT DTNT THPT tỉnh) là khơng có Máy tính để thực hành làm bài tập chạy các chương
trình trên phần mềm Turbo Pascal. Soạn thảo, Biên dịch, sốt lỗi và chạy chương trình.
II.2. Cách thực hiện các giải pháp:
+Trường hợp 1: Nội dung kiến thức cần nhớ và nắm chắc
- Bài toán: Trong phạm vi tin học, ta có thể quan niệm bài tốn là một việc nào đó ta
6


muốn máy tính thực hiện.
Khi dùng máy tính giải bài toán, ta cần quan tâm đến hai yếu tố (xác định bài tốn):
o Input: Là các thơng tin đã có (đưa vào máy thơng tin gì -những gì đề bài đã cho)
o Output: Các thơng tin cần tìm từ Input (cần lấy ra thơng tin gì -Bài u cầu tìm gì)
- Khai báo biến: (trong ngơn ngữ lập trình Pascal )
Cú pháp: Var ˽ <Danh sách biến> : <kiểu dữ liệu>;
Trong đó:
o <Danh sách biến>: có thể là một hoạc nhiều biến đơn ..
o < Kiểu dữ liệu>: là một trong các kiểu DL chuẩn
Chú ý:
o Không được đặt tên biến qúa dài hoặc quá ngắn .
o Khi khai báo biến cần đặc biệt chú ý đến phạm vi giá trị của nó.
- Biến : Là đại lượng được đặt tên, dùng để lưu trữ giá trị và gán giá trị, có thể thay thế
được trong q trình thực hiện chương trình. Biến là tên do người lập trình đặt, đựơc dùng

với ý nghĩa riêng, xác định bằng cách khai báo trước khi dùng.
- Một số kiểu dữ liệu chuẩn: (trong ngơn ngữ lập trình Pascal)
o Kiểu ngun :
Byte

1 byte

0 ~ 255

Integer

2 byte

-32768 ~ 32767

Word

2 byte

0 ~ 65535

Longint

4 byte

-2147483648 ~ 2147483647

Real

6 byte


2.9.10-39 ~ 1.7.1038

Extcded

10 byte

10-4932 ~ 104932

o Kiểu thực :.

o Kiểu kí tự : các kí tự thuộc bảng mã ASCII.
Char

2 byte

0 ~ 255

o Kiểu logic: gồm hai giá trị TRUE hoạc FALSE.
- Câu lệnh gán :
+ Cú pháp:

<Tên biến> : = <Giá trị>;

+ Chức năng: Đặt cho biến có tên ở vế phải dấu “:=” giá trị của biểu thức ở vế bên phải.
7


Ví dụ: Bài tốn tính Tổng của 2 số ngun a và b, câu lệnh gán sẽ như sau:
T := a + b ;

- Thuật tốn: Thuật tốn, cịn gọi là giải thuật, là một tập hợp hữu hạn hay một dãy các
quy tắc chặt chẽ của các chỉ thị, phương cách hay 1 trình tự các thao tác trên một đối tượng
cụ thể được xác định và định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng
thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau
cùng như đã dự đốn trước.
Nói cách khác, thuật toán là một bộ các quy tắc hay quy trình cụ thể nhằm giải
quyết một vấn đề nào đó trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ
một tập hợp của các dữ kiện đưa vào
Khái niệm thuật toán (Bài 4 - SGK tin 10): Thuật toán để giải một bài toá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 sau khi thực
hiện dãy thao tác ấy, từ input của bài toán, ta nhận được output cần tìm.
Ví dụ: thuật tốn để giải phương trình bậc nhất P(x): ax + b = 0
1. Nếu a = 0
o

b = 0 thì P(x) có vơ số nghiệm (nghiệm đúng với mọi x ∈ 𝑅)

o

b ≠ 0 thì P(x) vơ nghiệm

2. Nếu a ≠ 0 thì P(x) có một nghiệm duy nhất x = -b/a
Lưu ý: "Thuật toán" hiện nay thường được dùng để chỉ giải thuật giải quyết các bài
toán trong tin học. Hầu hết các thuật tốn tin học đều có thể viết thành các chương trình
máy tính mặc dù chúng thường có một vài hạn chế (với khả năng của máy tính và khả
năng của người lập trình). Trong nhiều trường hợp, một chương trình khi thiết kế bị thất
bại là do lỗi ở các thuật tốn mà người lập trình đưa vào là khơng chính xác, khơng đầy
đủ, hay khơng ước định được trọn vẹn lời giải của vấn đề.
* Phương pháp lập trình 1 bài tốn đơn giản
Bước 1: Xác định bài toán (xác định được Input và Output của bài toán)

Bước 2: Từ Input ta xác định được kiểu dữ liệu cho các biến thông qua các điều
kiện của bài toán. Từ kiểu dữ liệu đã được xác định ở input, ta xác định các kiểu dữ liệu
cho các biến tại Output.
Bước 3: Viết thuật toán.
8


Bước 4: Viết chương trình
* Ví dụ tổng qt:
Cho hai cốc nước, mỗi cốc có giới hạn đo là 255ml. Cốc nước có giới hạn đo là
bao nhiêu có thể chứa được tổng lượng nước của hai cốc trên?
Bài giải:
B1: Xác định bài tốn.
Input:

Hai cốc nước, mỗi cốc có giới hạn đo là 255ml.

Output: Một cốc C có giới hạn đo chứa đựơc tổng lượng nước của hai cốc trên.

B2:

Cốc A thuộc 0~255

( giả sử cốc nước A trong trường hợp này ta cho thuộc

kiểu số nguyên. Do cốc đựng tối đa được 255ml nên ta cho A thuộc Byte).

Cốc B thuộc 0~255

( giả sử cốc nước B trong trường hợp này ta cho thuộc


kiểu số nguyên. Do cốc đựng tối đa được 255ml nên ta cho B thuộc Byte).
B3: Ta xét các trường hợp:
+ Trong trường hợp cốc A khơng có nước và cốc B cũng khơng có nước thì cốc C
hiển nhiên chứa. ( (A=0)+(B=0)thì (C=0)thuộc Byte)
+ Trong trường hợp cốc A chứa 127ml nước và cốc B cũng chứa 127ml nước thì
cốc C trong trường hợp này chỉ cần tổng dung lượng là 255ml .
( (A=127)+(B=127)thì (C=255) thuộc Byte)
+ Trong trường hợp cốc A chứa tối đa 255ml nước và cốc B cũng chứa 255ml
nước thì cốc C trong trường hợp này phải là tổng lượng nước của 2 cốc Avà B nên C
phải có dung lượng là 510ml.
( (A=255)+(B=255)thì C khơng thuộc byte mà C thuộc Word)
Nhận xét: Ta nên chọn trường hợp tổng quát nhất để ứng với mọi trường hợp có thể xảy
ra khi giải quyết 1 bài toán.
9


Vậy ta có thể khai báo kiểu dữ liệu cho biến như sau:
Var

A, B: Byte;
C: Word;

* Ví dụ và bài tập áp dụng:
Ví dụ 1: tính tổng của hai số ngun bất kì nhập vào từ bàn phím .
B1: Xác định bài toán.
Input

: A, B thuộc kiểu số nguyên.


Output : S .
B2: Xét :
A, B thuộc Byte thì S thuộc Word .
A, B thuộc Word thì S thuộc Longint.
A, B thuộc Integer thì S thuộc Longint.
A, B thuộc Longint thì S thuộc Real.
* Khai báo:
Var A, B :Byte;
S: Word;
B3: Thuật toán:
Bước 1: Nhập a, b
Read/Readln(a, b);
Bước 2: T← a+b
T := a + b ;
Bước 3: Xuất T
Write/Writeln(T) ;
Nhận xét: Bài tốn trên khơng đặt nặng trong cách cài đặt cũng như xây dựng
bài toán mà ta chỉ cần lưu ý đến cách xác định biến và kiểu dữ liệu cho mỗi biến. Học
sinh cần lưu ý đến thuật toán cơ bản trên để áp dụng linh hoạt cho bài toán này cũng như
các bài tốn tương tự.
* Chương trình:
Program bai_toan_1;
Uses Crt;
10


Var

A, B : Byte;
S : Word;


Begin
Clrscr;
Write(‘ Nhap vao so thu nhat la : ’);
Readln(A);
Write(‘ Nhap vao so thu hai la : ’);
Readln(B);
S:=A + B;
Writeln(‘ Tong 2 so la : ’,S);
Readln;
End.
Bài tập áp dụng:
1/ Tính hiệu hai số bất kì .
2/ Tính tích hai số ngun bất kì.
3/ Tính thương hai số ngun bất kì .
4/ Tính tổng, hiệu, tích, thương hai số ngun bất kì.
Ví dụ 2: Cho một dãy số nguyên bất kì tìm số lớn nhất trong dãy số đó .
B1: Xác định bài tốn.
Input: Ai, i=1→n thuộc nguyên.
Output: Max(Ai).
B2: Với Ai (i = 1→n)
Ai(i = 1→n) thuộc Byte thì Max thuộc Byte.
Ai(i = 1→n) thuộc Word thì Max thuộc Word.
Ai(i = 1→n) thuộc Integer thì Max thuộc Integer.
Ai(i = 1→n) thuộc Longint thì Max thuộc Longint.
* Khai báo:
Var A: array[1..100] of Byte;
Max: byte;
B3: Thuật toán:
11



Bước 1: Nhập vào giá trị từng phần tử ai từ 1 đến n
For i:=1 to n do Read/Readln(a[i]);
Bước 2: Giả sử phần tử đầu tiên là lớn nhất Max ← a1
Max:= a[1]
Bước 3: Duyệt từ phần tử thứ 2 đến phần tử thứ n, nếu gặp phần tử lớn hơn Max
thì cho phần tử đó là phần tử lớn nhất
For i:=2 to n do
if max < a[i] then max:= a[i];
Bước 4: Xuất Max
Write/Writeln(max) ;
Nhận xét: Đây là bài toán mà ở đó ta khơng chỉ chọn dữ liệu cho 1 hay 2 biến mà là
N biến nên cần hết sức lưu ý kiểu dữ liệu cho giá trị thu được khi tác động trên N biến đó.
* Chương trình:
Program bai_toan_3;
Uses Crt;
Var

A: array[1..100] of Byte;
Max, I, N: Byte;

Begin
Clrscr;
Write(‘ Nhap vao so cac chu so can tim : ’);
Readln(N);
For I:= 1 To N Do
Begin
Write(‘ A[‘, I ,’ ]=’);
Readln(A[I]);

End;
Max := A[1];
For I := 2 To N Do
If A[I] > Max Then Max := A[I};
Writeln(‘ So lon nhat trong day so la : ’,Max);
12


Readln;
End.
Bài tập áp dụng:
1/ Tìm số nhỏ nhất trong dãy số nguyên bất kì..
2/ Tìm số lớn nhất và nhỏ nhất trong dãy số nguyên bất kì .
+ Trường hợp 2: Khắc phục những lỗi sai cú pháp cơ bản trong chương II: “Chương
trình đơn giản”
- Các lỗi thường gặp: Ở các tiết lý thuyết khi dậy giáo viên sẽ lưu ý cho học sinh các lỗi
cú pháp thường gặp:
o Lỗi đặt tên hằng, biến trùng nhau.
Ví dụ: Var a, A: byte;
(Pascal không phân biệt chữ Hoa và chữ Thường do đó a và A chỉ là một)
o Lỗi đặt tên hằng, tên biến, tên chương trình,... khơng đúng quy định của ngơn
ngữ lập trình.
o Ngăn cách giữa các biến phải là dấu phẩy {,} , kết thúc câu lệch phải có dấu
chấm phẩy {;}.
o Khi viết từ khóa chú ý tới lỗi chính tả;
Ví dụ: Const thường viết là Cont, End lại viết là And...
o Khi viết hằng xâu phải nhớ đặt hằng xâu vào trong cặp dấu nháy đơn ‘’;
o Khi viết biết đơn hoặc biểu thức nhớ ko được đặt trong cặp dấu nháy đơn.
o Khai báo biến thuộc kiểu dữ liệu nào thì khi sử dụng biến trong thân chương
trình phải nhớ dùng đúng kiểu dữ liệu đã khai báo.

- Biện pháp khắc phục kèm theo những kiến thức đã lưu ý:
o Đối với các tiết bài tập trong chương, giáo viên cho học sinh làm các bài tập
dạng phát hiện lỗi, qua đó giúp học sinh thực hành có thể dễ dàng phát hiện lỗi
và sửa lỗi hơn.
o Đối với bài tập thực hành của chương, bài tập và thực hành 1 thực hành theo
yêu cầu của sách giáo khoa
Cách thực hiện:
Bước 1: Yêu cầu cả lớp soạn thảo chương trình đã viết sẵn ở SGK trang 34
13


Bước 2: Yêu cầu học sinh thực hiện biên dịch chương trình để phát hiện và sửa lỗi.
Mặc dù là nhìn chương trình đã viết sẵn trong sách giáo khoa để soạn thảo nhưng
chương trình các em soạn thảo vẫn cịn rất nhiều lỗi. Có rất nhiều ngun nhân, như kỹ
năng soạn thảo chưa thành thạo dẫn đến sai lỗi chính tả, hay chưa nắm vững cách viết
một biểu thức, cách viết thơng báo ra ngồi màn hình...
Bước 3: Để học sinh tự sửa lỗi. GV quan sát, bao quát phịng máy, hỗ trợ cho những HS
yếu kém. Sau đó, GV chiếu chương trình đang cịn lỗi mà các HS chưa khắc phục được
và những lỗi đa phần các HS mắc phải. GV phân tích nguyên nhân của từng lỗi và yêu
cầu các HS sửa lại trong chương trình của mình.
Dưới đây là chương trình GV chiếu lên màn hình chiếu:
Program Giải_PTB2;
Uses Crt;
Var a,b,c,D:Read;
x1,x2:Read;
Begin
Clrscr;
Write(a,b,c:’);
Readln(a;b;c);
D:=b*b-4*a*c;

x1:=(-b-sqrt(D))/(2a);
x2:=-b/a-x1;
write(‘x1=’x1:6:2, ‘x2=’,x2:6:2);
readln;
end;
Bước 4: GV thực hiện biên dịch, hướng dẫn HS sửa lỗi có trong chương trình. Cụ thể
chương trình trên có các lỗi sai:
o Sai kiểu dữ liệu, không phải là Read mà là Real (mã lỗi: 26)
o Câu lệnh Readln(a;b;c); sai vì ngăn cách giữa các biến phải là dấu phẩy, sửa lại là
Readln(a,b,c); (mã lỗi: 89)
o Câu lệnh x1:=(-b-sqrt(D))/(2a); sai vì trong phép nhân phải dùng kí hiện *, sửa lại
14


là x1:=(-b-sqrt(D))/(2*a); (mã lỗi: 89)
o Câu lệnh write(‘x1=’x1:6:2, ‘x2=’,x2:6:2); sai vì ngăn cách giữa các kết quả ra
phải là dấu phấy. Sửa lại là write(‘x1=’,x1:6:2, ‘x2=’,x2:6:2); (mã lỗi:89)
o Câu lệnh end; sai vì kết thúc chương trình phải là dấu chấm, sửa lại là: end. (mã
lỗi: 88)
Bước 5: Sau khi đã hết lỗi về mặt cú pháp, yêu cầu HS chạy chương trình như u cầu
của SGK.
Tuy nhiên vẫn có nhiều HS thực hiện chưa đúng, lỗi thường gặp đó là: Khi thực hiện
câu lệnh nhập Readld(a,b,c); các HS dùng dấu chấm phấy để ngăn cách giữa các giá trị;
Ví dụ: khi nhập giá trị a,b,c thì các HS gõ: 3 ; 4 ; 5 như vậy là sai, các HS chưa nắm vững
cách nhập giá trị cho nhiều biến. Lúc này GV cần làm mẫu cho HS quan sát và nhấn mạnh
cách nhập giá trị cho nhiều biến: Những giá trị này phải được gõ cách nhau bởi ít nhất
một dấu cách hoặc một kí tự xuống dịng (nhấn phím Enter)
+ Trường hợp 3: Khắc phục những lỗi sai cơ bản thường gặp trong chương III: “Cấu
trúc rẽ nhánh và lặp”
- Các lỗi thường gặp: Ở các tiết lí thuyết khi dạy GV lưu ý các lỗi thường gặp.

o Viết thiếu các từ khóa như: Then, do, downto, to...
o Điều kiện trong câu lệnh rẽ nhánh hay câu lệnh lặp không phải là biểu thức logic.
o Câu lệnh trước từ khóa Else có dấu chấm phẩy.
o Trong câu lệnh for...to...do thì giá trị đầu lại lớn hơn giá trị cuối ...
o Trong câu lệnh lặp While...Do khơng có câu lệnh làm thay đổi điều kiện lặp.
Do đó vịng lặp không thể dừng lại được.
- Biện pháp sửa lỗi:
Với tiết 11-Bài “Cấu trúc rẽ nhánh” cho HS phát hiện những lỗi trong chương trình.
Ví dụ 1: Viết chương trình tìm nghiệm thực của chương trình bậc hai:
Ax2 + bx + c = 0 (a#0)
GV chiếu chương trình tìm nghiệm thực của chương trình bậc hai:
Program vudu2;
Uses crt;
Var a,b,c,d:Real;
15


x1,x2:Reael;
begin
Clrscr;
write(‘Moi nhạp a,b,c:’);
Readln(a,b,c);
D:=b*b-4*a*c;
If d<0 then writeln(‘Phuong trinh vo nghiem’);
Else
If d>0 then
Begin
x1:=(-b - sqrt(d))/(2*a);
x2:= (-b + sqrt(d))/(2*a);
writeln(‘phuong trinh co hai nghiem,’x1,x2);

End;
If d=0 then
Writeln(‘phuong trinh co nghiem kep,’-b/2a);
Readln
End.
Cách thực hiện:
Bước 1: GV chia lớp thành 4 nhóm. u cầu mỗi nhóm tìm lỗi sai có trong chương trình ở trên.
Bước 2: Các nhóm suy nghĩ rồi cử đại diện các nhóm lên bảng trình bày kết quả.
Bước 3: GV thực hiện biên dịch chương trình để HS thấy được các lỗi sai và phân tích để
HS hiểu được ngun nhân vì sao sai.
Các lỗi sai trong chương trình trên là:
o Câu lệnh writeln(‘Phuong trinh vo nghiem’); sai (mã lỗi: 113), vì câu lệnh này
đứng trước từ khóa Else nên khơng có dấu chấm phẩy.
o Câu lênh writeln(‘Phuong trinh co hai nghiem,’x1,x2); sai (mã lỗi: 89), vì danh
sách kết quả ra ngồi màn hình trong câu lệnh này gồm có 1 hằng xâu kí tự và 2
biến. Các kết quả ra phải được ngăn cách nhau bởi 1 dấu phẩy, hằng xâu kí tự phải
được đặt trong cặp dấu nháy đơn.
16


Sửa lại là: writeln(‘phuong trinh co hai nghiem’,x1:6:2,x2:6:2);
o Câu lệnh writeln(‘phuong trinh co nghiem kep,’-b/2a); sai, câu lệnh này có 2 lỗi
sai: thứ nhất, sai cách viết danh sách kết quả ra ngồi màn hình (mã lỗi: 26). Thứ
hai, viết biểu thức chưa đúng với quy định của Pascal (mã lỗi: 89).
Sửa lại là: wirteln(‘phuong trinh co nghiem kep’,-b/(2*a));
Bước 4: GV chỉnh sửa lại chương trình trên thành chương trình hoàn chỉnh:
Program vidu2;
Uses crt;
Var a,b,c,d:Real;


x1,x2:Real;

Begin
Clrscr;
write(‘Moi nhạp a,b,c:’);

Readln(a,b,c);

D:=b*b-4*a*c;
If d<0 then writeln(‘Phuong trinh vo nghiem’)
Else If d>0 then
Begin
x1:=(-b - sqrt(d))/(2*a);
x2:= (-b + sqrt(d))/(2*a);
writeln(‘phuong trinh co hai nghiem’,x1:6:2,x2:6:2);
End;
If d=0 then
Writeln(‘phuong trinh co nghiem kep’,-b/(2*a));
Readln
End.
+ Trường hợp 4: Khó khăn khơng có Máy tính để làm bài tập, thực hành chạy các
chương trình trên phần mềm Turbo Pascal.
Để phát hiện ra các lỗi của chương trình ngồi việc ghi nhớ rõ những lỗi thường
gặp như đã đề cập ở trên chỉ giải quyết những bài tốn nhỏ, ít dịng lệnh, ít cú pháp...khi
viết trên giấy. Cịn khi viết 1 chương trình lớn có nhiều chương trình con, nhiều cú pháp
khó trình bày, nhiều dịng lệnh ...thì chúng ta khơng thể phát hiện ra bằng mắt các lỗi đó
17


được dù là lỗi hay gặp...nên việc học lập trình (viết chương trình chạy trên máy) bao giờ

cũng kèm theo cơng cụ là Máy tính.
- Biện pháp: Sử dụng phần mềm, ứng dụng trên các thiết bị di động thông minh, ứng
dụng Pascal N-IDE và ứng dụng Pascal Programming Language là trình thơng dịch
Pascal trên điện thoại thơng minh chạy hệ điều hành Android và IOS (máy tính bảng, điện
thoại thông minh hãng Sam Sung, LG, Iphone....).
Ứng dụng này nhằm phục vụ cho mọi người có thể học tập ngơn ngữ Pascal trên
thiết bị di động khi khơng có máy tính, giúp chúng ta có thể thực hành viết chạy chương
trình bất cứ lúc nào, bất cứ nơi nào.
- Cách thực hiện:
Bước 1: Cài đặt ứng dụng
- Trên CH Play của Androi: Pascal N-IDE

18


- Trên App Store của IOS, Max OS: Pascal Programming Language

>> từ ứng dụng CHPlay và App store của hệ điều hành android và IOS chúng ta gõ từ khóa
pascal để tìm phần mềm cần cài đặt.

19


>> Chọn đúng tên phần cần cài và bấm cài đặt.

Bước 2: Sau khi đợi 1 time phần mềm đã cài đặt xong, chúng ta tiến hành mở ứng dụng.

20



Bước 3: Soạn thảo – Biên dịch Soát lỗi – Chạy chương trình
+ Soạn thảo:

21


+ Biên dịch – Sốt lỗi

+ Chạy chương trình hồn chỉnh – Kết quả:

22


II.3. Hệ thống bài tập:
II.3.1. Khái niệm, ý nghĩa của Bài tập tin học
- BTTH là phương tiện để dạy HS tập vận dụng kiến thức.
- Một trong những tiêu chí đánh giá sự lĩnh hội tri thức tin học là kĩ năng áp dụng
trí thức để giải quyết các bài tập. BTTH là một trong những phương tiện có hiệu quả để
giảng dạy môn tin, tăng cường và định hướng hoạt động tư duy của HS.
Ý nghĩa trí dục: Làm chính xác hóa khái niệm, củng cố đào sâu và mở rộng kiến
thức một cách sinh động, phong phú, hấp dẫn.
- Ơn tập, hệ thống hóa kiến thức một cách tích cực nhất. Thực tế cho thấy HS rất
buồn chán nếu như chỉ nhắc lại kiến thức mà không được giải bài tập.
- Phát huy các kĩ năng tin học: xác định bài tốn, giải thuật, viết chương trình.
- Phát huy kĩ năng sử dụng ngôn ngữ tin học và các thao tác tư duy.
Ý nghĩa phát triển: Phát triển ở HS các năng lực TƯ DUY logic, biện chứng, khái
quát, độc lập, thông minh và sáng tạo.
Ý nghĩa đức dục: Phát huy đức tính chính xác, kiên nhẫn, trung thực và lòng say
mê khoa học. Bài tập thực nghiệm cịn phát huy văn hóa lao động.
II.3.2. Phân loại Bài tập tin học

- Dựa vào các công đoạn của q trình dạy học, có thể phân loại BTTH như sau:
o Ở công đoạn dạy bài mới: nên phân loại bài tập theo nội dung để phục vụ việc
dạy học và củng cố bài mới.
o Ở công đoạn ôn tập, hệ thống hóa kiến thức và kiểm tra đánh giá: do mang
tính chất tổng hợp, có sự phối hợp giữa các chương nên phải phân loại trên các
cơ sở sau:
- Dựa vào tính chất hoạt động của HS khi giải bài tập có thể chia thành bài tập lí thuyết và
bài tập thực nghiệm.
- Dựa vào chức năng của bài tập có thể chia thành bài tập tái hiện kiến thức, bài tập rèn tư duy.
- Dựa vào tính chất của bài tập có thể chia thành bài tập định tính và bài tập định lượng.
Trong thực tế dạy học, có hai cách phân loại bài tập có ý nghĩa hơn cả là phân loại
theo nội dung và theo dạng bài.

23


II.3.3. Cách sử dụng Bài tập tin học ở trường THPT
- Ở bất cứ cơng đoạn nào của q trình dạy học đều có thể sử dụng bài tập. Khi dạy học
bài mới có thể dùng bài tập để vào bài, để tạo tình huống có vấn đề, để chuyển tiếp từ
phần này sang phần kia, để củng cố bài, để hướng dẫn HS tự học ở nhà.
- Khi ôn tập, củng cố, luyện tập, kiểm tra – đánh giá thì nhất thiết phải dùng bài tập. Ở
Việt Nam, bài tập được hiểu theo nghĩa rộng, có thể là câu hỏi lí thuyết hay bài tốn.
Sử dụng BTTH để đạt được các mục đích sau:
o Củng cố, mở rộng đào sâu kiến thức
o Phát huy kĩ năng.
o Phát huy năng lực phát hiện vấn đề.
o Dạy học bài mới.
III. HỆ THỐNG BÀI TẬP PHÁT HUY KHẢ NĂNG CỦA HS-TẠO SỰ THÍCH
THÚ VỚI LẬP TRÌNH PASCAL:
III.1. Bài tập phát huy năng lực quan sát:

Năng lực quan sát ở đây chính là óc quan sát – năng lực xem xét vấn đề để có tầm
nhìn, là cơ sở để có tư duy. Một người quan sát một cách đầy đủ, toàn diện các đặc điểm
của sự vật, hiện tượng xung quanh thì dễ rút ra kết luận chính xác, nhạy bén về bản chất
của sự vật, hiện tượng – tức là có năng lực tư duy cao.
Quan sát một bài tập tin học để tìm ra điểm đặc biệt của dữ kiện, của câu lệnh, cú
pháp khai báo câu lệnh, … từ đó có cách giải quyết tích cực nhất
Câu 1: Để thốt khỏi chương trình Pascal ta nhấn tổ hợp phím nào dưới đây ?
A. Alt + X

B. Ctrl + F9

C. Alt + F3

D. Ctrl + X

Câu 2: Thủ tục nhập dữ liệu từ bàn phím là gì ?
A. Writeln(<danh sách biến vào>) ;

B. Writeln(‘Moi ban nhap du lieu’) ;

C. Readln(<danh sách biến vào>) ;

D. Readln

Câu 3: Cấu trúc rẽ nhánh có mấy dạng:
A. 4 dạng

B. 2 dạng

C. 5 dạng


D. 3 dạng

Câu 4: Để khai báo hằng Pi = 3.14 trong Pascal ta khai báo như sau :
A. Const Pi : = 3,14 ;

B. Const Pi := 3.14 ;

C. Const Pi= 3.14 ;

D. Const Pi = 3,14 ;
24


×