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

Sáng kiến kinh nghiệm đề tài “một số biện pháp tăng cường năng lực lập trình pascal cho học sinh trường THCS lương thế vinh

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 (677.93 KB, 33 trang )

”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

I.PHẦN MỞ ĐẦU
I.1 Lý do chọn đề tài.
N
hư đã biết, trong giai đoạn hiện nay máy tính điện tử đã nhanh chóng
thâm nhập vào mọi lĩnh vực sản xuất, kinh tế và đời sống xã hội. Tin học
đã được ứng dụng rộng rãi trong mọi lĩnh vực từ các ngành khoa học
chính xác, khoa học cơ bản đến điều khiển tự động, thông tin liên lạc, ...
Ðặc biệt tin học được sử dụng nhiều trong công tác quản lý như quản lý
sản xuất, quản lý con người, quản lý tài nguyên, ... Tin học được xem là
một trong những ngành mũi nhọn, chiếm vị trí hàng đầu trong chính sách
kinh tế và khoa học kỹ thuật của các nước đã và đang phát triển. Chính vì
vậy việc giáo dục tin học ở trường phổ thơng có vai trị quan trọng vì việc
giáo dục đó là nhằm chuẩn bị cho thế hệ trẻ Việt Nam về mặt tri thức, kỷ
năng, về mặt năng lực, trí tuệ và các phẩm chất cần thiết giúp học sinh
thích ứng với thời đại vi tính hóa. Giúp cho học sinh sau khi tốt nghiệp
nắm được một số yếu tố cơ bản của tin học. Trong đó có một số em có
khả năng sử dụng máy tính để xử lý thơng tin, dùng máy tính như một
công cụ phục vụ cho việc học tập và hoạt động. Xét về mặt năng lực, trí
tuệ: Giúp phát triển nhiều phương thức, tư duy liên hệ mật thiết với việc
sử dụng kỹ thuật xử lý thông tin như: tư duy thuật tốn, tư duy điều
khiển, tư duy ngơn ngữ,... Ðồng thời hình thành và phát triển năng lực
hoạt động trí tuệ nói chung như phân tích, tổng hợp, khái qt hóa, trừu
tượng hóa,... Để xử lí thơng tin tốt và để nâng cao năng lực học tập cho
học sinh thì việc học ngơn ngữ lập trình pascal là một nhiệm vụ hết sức
quan trọng.
Tuy nhiên học sinh gặp phải rất nhiều khó khăn khi lập trình Pascal vì học
sinh chưa chủ động rèn luyện cách trình bày thuật tốn, các lập luận, những kiến
thức được áp dụng trong quá trình lập trình nên dẫn đến thụ động, rập khn, thiếu
tính sáng tạo. Do đó, học sinh mau qn những kĩ năng cơ bản ấy. Trong thực tế,


theo chủ quan cá nhân tôi, tôi thấy điều cơ bản của việc dạy lập trình Pascallà tìm ra
phương pháp dạy cho học sinh hiểu và tự giải những bài tập quen thuộc, cơ bản một
cách rõ ràng, ngắn gọn, để từ đó học sinh liên tưởng, tìm tịi, vận dụng vào trong
các bài tập liên quan hoặc cùng dạng. Vậy, làm thế nào để học sinh khắc sâu và vận
dụng những kiến thức đã học để lập trình Pascal? Để trả lời câu hỏi này, tơi đã viết
sáng kiến kinh nghiệm tìm hiểu “Một số biện pháp tăng cường năng lực lập trình
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 1


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Pascal cho học sinh trường THCS Lương Thế Vinh”, với mong muốn qua nội dung
sáng kiến kinh nghiệm này, sẽ giúp các em tăng cường năng lực lập trình Pascal
một cách dễ dàng nhất, hiệu quả nhất.
Hi vọng với những kinh nghiệm tích lũy của bản thân, với những ý kiến đóng
góp của đồng nghiệp trên địa bàn huyện, của tổ chuyên môn, ban giám hiệu nhà
trường, của cán bộ phòng giáo dục, … đề tài này sẽ giúp giáo viên giảng dạy bộ
môn tin học trên địa bàn huyện có một cái nhìn tổng qt hơn, có những định hướng
tốt hơn khi thực hiện nhiệm vụ mà ngành giao phó.
Hi vọng các thầy cơ sẽ đón nhận đề tài này, để có thêm tài liệu phục vụ giảng
dạy bộ môn tin học trong nhà trường THCS. Tuy nhiên, bản thân tơi nhận thấy đề tài
khó tránh khỏi những sai và thiếu xót nhất định. Do đó, tơi mong nhận được những ý
kiến đóng góp của q thầy cơ giáo, của các bộ quản lí các cấp, … Mọi ý kiến đóng
góp xin gửi về địa chỉ e – mail: . Tôi xin chân thành
cảm ơn!.
I.2. Mục tiêu, nhiệm vụ của đề tài.

Giúp học sinh nắm bài một cách trực quan, sinh động hơn.
Nhằm phát hiện học sinh giỏi tin học cấp trường về lập trình pascal.
Giúp học sinh học tập tích cực, chủ động, bồi dưỡng tư duy, sáng tạo,
rèn luyện kĩ năng khi học lập trình pascal.
Tiếp tục bồi dưỡng đội ngũ học sinh giỏi cấp trường để học sinh tham
gia kì thi học sinh giỏi cấp huyện, cấp tỉnh về lập trình pascal.
Đào tạo mơi trường giáo dục phù hợp với xu thế hiện tại, đáp ứng kịp
thời những địi hỏi thiết ́u trong thời kì cơng nghiệp hóa - hiện đại hóa
của đất nước.
I.3. Đối tượng nghiên cứu.
Học sinh khối 8, và học sinh lớp 9 trường THCS Lương thế vinh.
Học sinh trong đội tuyển học sinh giỏi tin học cấp trường THCS Lương
Thế Vinh.
I.4. Giới hạn phạm vi nghiên cứu
Đối tượng mũi nhọn còn hạn chế.
I.5. Phương pháp nghiên cứu
Phương pháp nêu vấn đề và giải quyết vấn đề.
Phương pháp minh họa trực quan.
Phương pháp phân tích tổng hợp.
Phương pháp so sánh.
Tìm tịi, nghiên cứu tài liệu, rút kinh nghiệm từ bản thân, đồng nghiệp.
II.
PHẦN NỘI DUNG
II.1. CƠ SỞ LÝ LUẬN CỦA VẤN ĐỀ
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 2



”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

-

Đổi mới phương pháp dạy học theo định hướng tích cực hóa hoạt động học
tập của học sinh của bộ mơn tin học địi hỏi ở cả hai mặt học lý thuyết và kĩ
năng thực hành.
- Cốt lõi của việc đổi mới phương pháp dạy học là giúp học sinh hướng tới
việc học tập chủ động, chống lại thói quen học tập thụ động; học sinh say
mê, hứng thú học tập một cách tích cực, tự giác và sáng tạo.
- Việc dạy học phải bám sát vào chuẩn kiến thức, kĩ năng của chương trình
giáo dục phổ thơng để xác định mục tiêu của bài học, chú trọng dạy học
nhằm đạt được các yêu cầu cơ bản và tối thiểu về kiến thức, kĩ năng, đảm
bảo không quá tải; mức độ khai thác sâu kiến thức, kĩ năng phải phù hợp với
khả năng tiếp thu kiến thức của học sinh; sáng tạo về phương pháp dạy học,
phát huy tính chủ động, tích cực, tự giác của học sinh tạo niềm vui, phấn
khởi, nhu cầu hành động và thái độ tự tin trong học tập cho học sinh; dạy học
thể hiện mối quan hệ tích cực giữa giáo viên với học sinh, giữa học sinh với
học sinh, chú trọng đến việc động viên, khuyến khích kịp thời tiến độ của
học sinh trong q trình học, …
- Việc học ngơn ngữ lập trình Pascal giúp cho học sinh có tư khoa học, logic,
tác phong sáng tạo, say mê học tập hơn.
II.2. THỰC TRẠNG CỦA VẤN ĐỀ
a. Thuận lợi – khó khăn
Thuận lợi:
Bộ mơn tin học được ngành giáo dục quan tâm, có những chỉ đạo kịp
thời, quan tâm bồi dưỡng chuyên môn thường xuyên, cơ sở vật chất
tương đối đảm bảo: các phịng máy tính để dạy thực hành, máy chiếu,


Bộ mơn Tin học đã được các cấp huyện, cấp tỉnh tổ chức kì thi học
sinh giỏi cấp huyện, tỉnh liên tục từ năm 2012 – 2013 đến nay cùng
với 8 bộ mơn văn hóa khác. Từ đó tạo sự phấn khởi cho học sinh, phụ
huynh và giáo viên.
Từ tổ bộ môn đến ban giám hiệu nhà trường thực sự quan tâm đến bộ
môn tin học, tạo mọi điều kiện trong khả năng của tổ, của nhà trường.
Được sự tư vấn của chun viên cơng nghệ thơng tin phịng giáo dục
huyện CưMgar.
Đội ngũ giáo viên bộ mơn Tin học nhìn chung cịn trẻ, đầy nhiệt
huyết, yêu nghề mến trẻ.
Bản thân tôi ngay từ những ngày đầu đứng trên bục giảng đã thực sự
quan tâm đến đề tài này.
Sáng kiến kinh nghiệm này được bản thân tôi ấp ủ, chuẩn bị từ
những ngày đầu của năm học 2012 – 2013 đến nay , được sự trao đổi
về kiến thức cũng như kinh nghiệm với các đồng nghiệp, sự tham
khảo học hỏi trên mạng internet nên bản thân tơi đã phần nào tự tích
lũy cho mình một vốn kiến thức nho nhỏ đảm bảo cho sáng kiến kinh
nghiệm được hồn thành.
Khó khăn:
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 3


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Lập trình Pascal nhìn chung là một mơn học khó so với học sinh vì nó
liên quan đến tư duy của học sinh. Nhìn chung đây là một mơn học

khơ khan, khó hiểu, việc học của học sinh cịn mang tính mơ hồ.
Giáo viên cịn gặp rất nhiều khó khăn khi đặt câu hỏi “Làm sao để
truyền thụ kiến thức cho học sinh một cách rõ ràng và sâu rộng nhất”.
Năng lực học tập của học sinh ở các môn học khác còn kém so với
mục tiêu chung của giáo dục nên việc học lập trình đối với học sinh
cũng là một trong những khó khăn.
Cịn nhiều học sinh chưa đổi mới phương pháp học tập, việc học tập
còn rất là thụ động, chưa tự giác học tập.
các em học sinh khối 8 đã có sự thay đổi về tâm sinh lí lứa tuổi, tính
tự giác trong học tập của các em chưa cao, vì vậy muốn các em áp
dụng kiến thức đã học vào các bài tập cụ thể thì giáo viên sẽ phải trình
bày bài tập mẫu, chỉnh sửa, uốn nắn nhiều, khi đó các em mới có thể
hiểu và nắm được kiến thức, song nhiều em ít có sự rèn luyện, tự học
nên việc lưu giữ kiến thức cịn hạn chế, mau nhớ kiến thức nhưng có
thể qn ngay hoặc nhớ khơng chính xác các kiến thức đã học.
Sự đánh giá kết quả học tập của học sinh ở các trường THCS, THPT
còn chưa đồng bộ; Việc coi kiểm tra, chấm kiểm tra còn chưa chặt chẽ
nên có nhiều học sinh chưa đạt so với mục tiêu của bộ mơn nhưng kết
quả cuối kì, cuối năm vẫn cao. Chính vì vậy chưa thể phát huy tính
tính cực cho học sinh khi học tập ở bộ môn Tin học. Nhìn chung việc
kiểm tra đánh giá học sinh cịn chưa đạt ở chức năng xác định
(chính xác, khách quan, công bằng), mà thiên về chức năng điều
khiển (thiên về bệnh thành tích và cảm tính).
b. Thành cơng – hạn chế
Thành công:
 Mang lại hứng thú học tập cho học sinh trong từng chuyên đề.
 Học sinh học tập tích cực, phát triển năng lực tư duy, tìm tịi.
 Một số học sinh đã thành công trong học tập, đã được khẳng định qua
các kì thi học sinh giỏi cấp trường, cấp huyện, cấp tỉnh, có học sinh
được tham dự vào đội tuyển học sinh giỏi quốc gia ở kì thi tin học trẻ

không chuyên, đặc biệt năm học 2017 – 2018 hướng dẫn hai học sinh
làm khoa học kĩ thuật cấp huyện đạt giải khuyến khích, có ba học sinh
tham dự học sinh giỏi cấp huyện (một học sinh đạt giải khuyến khích,
hai học sinh đạt giải ba).
Hạn chế:
 Nhiều phụ huynh học sinh cịn có cái nhìn chưa được tổng quan đối
với học tập của con em mình, nhiều phụ huynh chỉ nghĩ đơn giản học
tin học là để soạn thảo văn bản, truy cập Internet, … nhiều học sinh
bỏ học mà vẫn lướt web ầm ầm, … chứ phụ huynh khơng hình dung
được đây là một mơn học tư duy cho học sinh, Chính vì vậy, việc
chọn được đối tượng học sinh giỏi thực sự của bộ mơn tin học cịn gặp
rất nhiều khó khăn.
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 4


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

 Học sinh khối 8 đã có sự thay đổi về tâm sinh lí lứa tuổi, mất tập trung
trong giờ học, nhiều em chưa tập trung trong việc học và làm bài ở
lớp cũng như ở nhà, giảm chất lượng của các kĩ năng “nghe – ghi –
nghĩ – nói” trong giờ học. Vì thế, năng lực tư duy logic của các em
chưa thật tốt. Vì thế, việc áp lý thuyết để lập trình và nhiều mảng kiến
thức khác đối với các em là một điều lạ lẫm, khó khăn. Hầu hết chỉ có
các học sinh khá, giỏi mới có thể tự làm đúng hướng và gần như trọn
vẹn yêu cầu của đề bài khi lập trình.
c. Mặt mạnh – Mặt yếu

Mặt mạnh.
Đã đưa ra được nhiều giải pháp thiết thực để tiết học lập trình thực sự
mang lại hiệu quả;Từ đó tìm được học sinh giỏi của bộ mơn để bồi dưỡng,
ôn luyện thêm cho học sinh.
Đây là một vấn đề hay trong dạy lập trình Pascal, vận dụng được rộng
rãi, có giá trị sử dụng lâu dài và có thể tiếp tục mở rộng theo hướng chuyên
sâu hơn. Nội dung này là một phần kiến thức tuy ngắn gọn song được bao
hàm có thể áp dụng được trực tiếp vào giảng dạy trên lớp cũng như dạy tạo
nguồn kiến thức bồi dưỡng học sinh giỏi tin học cấp trung học cơ sở.
Mặt yếu:
Cách bày ở một số ít nội dung có thể gây cho học sinh lối mịn nếu học
sinh không thật chăm chỉ, thụ động. Nhiều bài tập nâng cao dễ làm cho học
sinh mắc sai lầm trong suy nghĩ, trong thuật tốn, trong lập trình.
d. Các nguyên nhân, các yếu tố tác động.
Có thể nói khi giảng dạy tiết dạy thực hành, trên thực tế người dạy phải
trăn trở rất nhiều vấn đề:
o Phải dạy như thế nào? Bố cục ra sao để việc học thực hành của học sinh
đạt hiệu quả? Làm sao để yêu cầu học sinh viết đúng thuật toán? Làm sao
để học sinh tìm ra thuật tốn đúng khi viết chương trình? Học sinh đọc và
hiểu câu lệnh trong chương trình ra sao?
o Thực tế cho thấy có nhiều nguyên nhân, nhiều yếu tố tác động tạo nên
những khó khăn, hạn chế nêu trên. Trước hết phải kể đến là ý thức tự giác
trong học tập của người học chưa cao, khả năng tự học, tự rèn của học
sinh hiện nay giảm sút nhiều, học sinh bị thụ động hoặc “bão hòa” kiến
thức vì học thêm, học ơn q nhiều mơn học. Nhiều học sinh chăm
ngoan, học giỏi, có ý thức rèn luyện và tự học cao. Các em ít có những
suy nghĩ sáng tạo khi làm bài tập khó hoặc khi làm bài tập sai thì động
lực để các em quyết tâm tự làm lại cho đúng chưa nhiều, còn chờ đợi giáo
viên sửa bài. Một điều nữa là việc lưu giữ (quá trình ghi nhớ), tái hiện
(trình bày bằng lời hoặc viết) của học sinh chưa tốt, các em lười học bài

và làm bài tập ở nhà, thậm chí nhiều em làm bài tập đối phó, chiếu lệ cho
xong.
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 5


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

II.3. GIẢI PHÁP, BIỆN PHÁP
a. MỤC TIÊU CỦA GIẢI PHÁP, BIỆN PHÁP
 Rèn luyện khả năng tư duy cho học sinh, giúp học sinh học tập chủ
động, tích cực.
 Đáp ứng được yêu cầu trong việc đào tạo con người trong thời đại
cơng nghiệp hóa, hiện đại hóa đất nước.
 Do yêu cầu của phương pháp dạy học mới có sự thay đổi so với
phương pháp dạy học truyền thống, phải đảm bảo tính chủ đạo của
thầy và chủ động của trị; thầy hướng dẫn, điều khiển, đồng thời kích
thích hứng thú học tập ở các em để các em tự giác, tích cực chiếm lĩnh
tri thức của nhân loại cho bản thân. Để tăng cường năng lực lập trình
cho các em tôi đã sử dụng phối kết hợp nhiều phương pháp dạy học
như: Đặt vấn đề, đàm thoại - gợi mở, trực quan, vấn đáp, sơ đồ tư duy
để tạo niềm phấn khích đối với các em… để các em có thể tiếp thu
kiến thức một cách tốt nhất.
b. NỘI DUNG VÀ CÁCH THỨC THỰC HIỆN GIẢI PHÁP, BIỆN PHÁP.
- Trước hết giáo viên cần truyền đạt làm sao cho học sinh nắm vững chuẩn
kiến thức, kĩ năng môn tin học trung học cơ sở của phần lập trình đơn giản
như biết được các khái niệm bài toán, thuật tốn, mơ tả thuật tốn bằng cách

liệt kê các bước hoặc sơ đồ khối;

Ví dụ 1: thuật tốn tính tổng s=1+2+…+99+100.
Ý tưởng:

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 6


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

THUẬT TOÁN:
INPUT: DÃY CÁC SỐ: 1,2, …,99,100
OUTPUT: Giá trị của tổng s= 1+2+…+99+100
Cách 1:
Bước 1. S0
Bước 2. Ss+1

Bước 101. Ss+100.
Cách 2.
Bước 1. S0; i0.
Bước 2. ii+1.
Bước 3. Nếu i<=100 thì ss+i và quay lại bước 2.
Bước 4. Thông báo kết quả và kết thúc thuật tốn.

Ví dụ 2:Tìm số lớn nhất trong dãy A các số a1, a2,…, an.
Giáo viên cho học sinh nêu ý tưởng rồi chốt lại việc minh họa ý tưởng

Đầu tiên giáo viên cho học sinh nêu ý tưởng, sau đó minh họa trực quan hướng
phân tích bài: Ta có thể hình dung các phần tử của dãy A lần lượt là các quả cầu như
hình minh họa bên dưới (n = 5). Sau đó ta dùng biến Max để lưu giá trị phần tử lớn
nhất của dãy A. Gán quả cầu đầu tiên cho biến Max, lần lượt so sánh quả cầu thứ 2,
3, 4, 5 với Max. Nếu quả cầu thứ i nào đó lớn hơn Max thì ta gán quả cầu thứ i cho
max.

Sau cùng đưa ra thuật toán:
INPUT: DÃY A các số a1,a2,…,an.
OUTPUT: GIÁ TRỊ MAX =max{a1,a2,…,an}
Bước 1. Maxa1; i 1
Bước 2. i  i +1
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 7


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Bước 3. Nếu i>n, chuyển đến bước 5
Bước 4. Nếu ai>max thì Max ai và quay lại bước 2.
Bước 5. Kết thúc thuật toán.
- Rồi từ thuật toán chuyển thành một chương trình Pascal trên ngơn ngữ lập
trình Pascal như thế nào? -> Học sinh cần phải biết ngôn ngữ lập trình
Pascal-> tiếp đến giáo viên cần chỉ rõ cho học sinh hiểu phần mềm để soạn
thảo chương trình, đồng thời cho phép dịch và thực hiện chương trình được
gọi là mơi trường lập trình, vi dụ rõ cho học sinh, để soạn thảo chương trình
bằng ngơn ngữ lập trình Pascal, ta có thể sử dụng mơi trường Turbo Pascal


-

-

hoặc Free Pascal
Có thuật tốn rồi để tiếp tục chuyển thành một chương trình Pascal giáo viên
cần cho học sinh biết được sơ bộ về ngơn ngữ lập trình Pascal; Biết được cấu
trúc của một chương trình Pascal; Các thành phần cơ sở của ngơn ngữ lập
trình Pascal; Cho học sinh hiểu được một số kiểu dữ liệu chuẩn, cách khai
báo biến, biểu thức quan và các câu lệnh cơ bản khi lập trình.
Một số nội dung cần cho học sinh nắm được: Một số kiểu dữ liệu cơ bản của
ngôn ngữ lập trình pascal (Chú ý khi mới học giáo viên chỉ yêu cầu học sinh
khai báo dữ liệu các kiểu integer, real, char, string và không bắt buộc học
sinh phần mở rộng).

Giáo viên có thể mở rộng thêm:
kiểu nguyên:
Kiểu
Bộ nhớ lưu trữ
1 giá trị
Byte
1 byte
Integer
2 byte
Word
2 byte
Longint
4 byte
kiểu thực:


Người viết: Đinh Thị Thiên Nga

Phạm vi giá trị
Từ 0 đến 255
Từ -215 đến 215-1
Từ 0 đến 216-1
Từ -231 đến 231-1

Trường THCS Lương Thế Vinh

Trang 8


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Kiểu

Bộ nhớ lưu trữ
1 giá trị

Phạm vi giá trị

Real

6 byte

Extended

10 byte


0 hoặc có giá trị tuyệt đối nằm trong phạm vi
từ
-39
2.9 x10 đến 1038
0 hoặc có giá trị tuyệt đối nằm trong phạm vi
từ
-4932
10
đến 104932

kiểu kí tự:
Kiểu

Bộ nhớ lưu trữ
1 giá trị

Phạm vi giá trị

Char
1 byte
kiểu logic:
Kiểu
Bộ nhớ lưu trữ
1 giá trị
Boolean

256 kí tự trong bộ mã ASCII
Phạm vi giá trị


1 byte

True hoặc False

Ngồi ra, bên Free Pascal cịn có thêm: INT64 phạm vi từ -263 đến 263-1; Qword
phạm vi từ -264 đến 264-1; phần này dành cho dữ liệu với phậm vi rất lớn.

– Các phép toán quan hệ (cịn gọi là phép tốn so sánh)
TÊN

VIẾT TRONG PASCAL

Nhỏ hơn

<

Nhỏ hơn hoặc bằng

<=

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 9


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Lớn hơn


>

Lớn hơn hoặc bằng

>=

Bằng

=

Khác

<>

Các phép toán quan hệ cho giá trị kiểu logic: True hoặc False; được dung để so sánh
và đưa ra quyết định hướng đi tiếp theo trong lập trình.
– Các phép tốn logic:
TÊN

VIẾT TRONG PASCAL

Phủ định

Not

Hoặc

Or




And

Các phép toán logic thường dung để kết hợp nhiều biểu thức quan hệ với nhau.
Biểu thức số học:
– Là một dãy các phép toán +, -, *, /, Div, Mod từ các hằng, biến kiểu số và các
hàm.
– Dùng cặp dấu ( ) để quy định trình tự tính tốn.
Thứ tự thực hiện phép tốn:
– Trong ngoặc trước, ngồi ngoặc sau.
– Nhân chia trước cộng trừ sau.
– Giá trị của biểu thức có kiểu là kiểu của biến hoặc hằng có miền giá trị lớn nhất
trong biểu thức.
Một số câu lệnh cần nắm khi lập trình Pascal:
Lệnh xuất dữ liệu
Write(‘dữ liệu’); In dữ liệu ra màn hình và con trỏ nằm liền kề.
Writeln(‘dữ liệu’);
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 10


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Writeln(‘phép toán’);
Writeln(phép toán);
Writeln(biến);

Writeln(biến:m:n);
Writeln;
Phân biệt lệnh write và writeln (lệnh viết ra màn hình).
Write(mục1,mục2,…, mục n);
Viết ra các mục, khơng xuống dòng sau khi viết xong mục cuối cùng
là mục n.
Writeln(mục1,mục2,…, mục n);
Viết ra các mục, sau đó đưa con trỏ xuống đầu dòng tiếp theo
Giáo viên cần nhấn mạnh xuất dữ liệu và xuất giá trị của biểu thức, hay giá trị
của biến, …
VÍ DỤ 1:

VÍ DỤ 2:

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 11


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

KẾT QUẢ
Lệnh nhập dữ liệu
Read(biến);
Read(danh sách biến);
Readln(biến);
Readln(danh sách biến);
Readln;

Phân biệt lệnh read và readln (Đọc dữ liệu nhập vào từ bàn phím).
Read(mục1,mục2,…, mục n);
Readln(mục1,mục2,…, mục n);
Lệnh read và readln tương tự như lệnh write và lệnh writeln.
Chú ý: Sử dụng biến trong chương trình:
Biến là đại lượng dùng để lưu trữ dữ liệu, dữ liệu này có thể thay đổi trong khi
thực hiện chương trình.
- Dữ liệu do biến lưu trữ được gọi là giá trị của biến.
Khai báo biến trong PASCAL
Var <Tên biến> : <Kiểu dữ liệu> ;
Trong Pascal, còn cung cấp một lệnh để gán giá trị cho biến khi nhập từ bàn
phím.
Cú pháp : Readln( Tên biến );
Chương trình sẽ dừng lại chờ người sử dụng nhập vào giá trị từ bàn phím.
Ví dụ minh họa làm quen với cách khai báo và sử dụng biến trong chương trình
Viết chương trình nhập vào một số nguyên. In ra màn hình số nguyên vừa
nhập, in ra màn hình giá trị của số nguyên vừa nhập.
Var
a:integer;
Begin
Write(‘Nhap mot so nguyen =’);Readln(a);
Writeln(‘Gia tri cua so nguyen vua nhap = ’,a);
Readln;end.
Minh họa kết quả chạy
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 12



”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Tùy theo đối tượng học sinh mà giáo viên phân tích thêm phạm vi kiểu dữ liệu
cho học sinh, nếu đối tượng học sinh yếu thì giáo viên mặc định kiểu số nguyên
là khai báo kiểu Integer giống như sách giáo khoa thơi, khơng nên làm rối cho
học sinh;Cịn đối tượng học sinh khá, giỏi giáo viên giải thích thêm

Ví dụ các bộ test chạy ở trên nếu vượt quá phạm vi thì kết quả khơng chính xác;
Cần khai báo longint, INT64, Qword để khắc phục; và xử lí số ngun rất lớn
thì ta sẽ xét ở cấp bậc ơn thi các cấp thì giáo viên sẽ nói thêm cho học sinh ở
các tiết học sau.
Các hàm số học sử dụng cho kiểu số nguyên và số thực:
SQR(x):
Trả về
x2
SQRT(x):
Trả về căn bậc hai của x (x≥ 0) x
ABS(x):
Trả về |x|
SIN(x):
Trả về sin(x) theo radian
COS(x):
Trả về cos(x) theo radian
ARCTAN(x): Trả về arctang(x) theo radian
TRUNC(x):
Trả về số nguyên gần với x nhất nhưng bé hơn x.
INT(x):
Trả về phần nguyên của x
FRAC(x):

Trả về phần thập phân của x
ROUND(x):
Làm tròn số nguyên x
Câu lệnh gán
Cú pháp: Tên biến := biểu thức cần gán giá trị cho biến;
Các câu lệnh có cấu trúc
If .. then… else…
- Câu lệnh điều kiện dạng thiếu:
Cú pháp: IF <ĐIỀU KIỆN> THEN <CÂU LỆNH>;
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 13


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Hoạt động: Nếu điều kiện được thoả mãn thì chương trình thực hiện câu lệnh sau
THEN. Ngược lại câu lệnh sau THEN bị bỏ qua.
- Câu lệnh điều kiện dạng đủ.
Cú pháp:

IF <ĐIỀU KIỆN> THEN <CÂU LỆNH 1>
ELSE <CÂU LỆNH 2>;

Hoạt động: Nếu điều kiện được thoả mãn thì <CÂU LỆNH 1> được thực hiện.
Ngược lại thì <CÂU LỆNH 2> được thực hiện.
Sơ đồ cấu trúc rẽ nhánh dạng thiếu minh họa cho câu điều kiện dạng thiếu và
câu lệnh điều kiện dạng đủ.


Ví dụ: Viết chương trình nhập vào một số tự nhiên, kiểm tra số vừa nhập là số chẵn
hay là số lẻ.
Chương trình:
Var
a: integer;
Begin
Write(‘Nhap vao mot so tu nhien: ‘);Readln(a);
If (a mod 2 = 0) then writeln(a, ‘la so chan’)
Else write(a, ‘la so le’);
Readln;
End.
For … to ...do… (Phần này yêu cầu học sinh phải nắm vững cú pháp và
hoạt động của câu lệnh lặp).

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 14


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Trong đó:
• <Biến đếm> là một tên biến.
• <Biến đếm>, <Giá trị đầu>, <Giá trị cuối> phải cùng kiểu dữ liệu và
đó phải là kiểu rời rạc (Kiểu số nguyên: integer, longint; kiểu kí tự:
char, …). Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
• Câu lệnh có thể là câu lệnh đơn, câu lệnh ghép, câu lệnh điều kiện

if… then … hoặc câu lệnh lặp, …
hoạt động của câu lệnh: (for … to … do … dạng tiến)
Đầu tiên <giá trị đầu> được gán cho <biến đếm> , câu lệnh sau Do sẽ
được thực hiện, sau mỗi vòng lặp biến đếm tự động tăng thêm 1 đơn vị. Đến
khi <biến đếm> = …)<giá trị cuối> thì câu lệnh sau Do được thực hiện lần
cuối cùng và câu lệnh For …to …do … chấm dứt.

Chú ý
Biến ở
đây
chính
là biến
đếm

Ví dụ: minh họa vòng lặp for … to… do…

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 15


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Tuỳ theo đối tượng học sinh trên lớp mà giáo viên giới thiệu thêm câu lệnh lặp với
số lần biết trước dạng lùi.
For <biến đếm> := <giá trị cuối> Downto <giá trị đầu> do While …do …. (repeat …until…)
Câu lệnh lặp với số lần chưa biết trước (while ... do...).

Cú pháp: While <điều kiện> do <câu lệnh>;
Bước 1. Máy tính xác định giá trị của điều kiện.
Bước 2. Tuỳ thuộc vào giá trị của điều kiện:
- Nếu điều kiện có giá trị đúng, máy tính sẽ thực hiện câu lệnh
sau đó quay lại bước 1.
- Nếu điều kiện có giá trị sai, câu lệnh sẽ bị bỏ qua và việc thực
hiện lệnh lặp kết thúc.
Sơ đồ minh họa câu lệnh lặp với số lần không xác định

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 16


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Câu lệnh lặp với số lần chưa biết trước (repeat ... until...)
Cú pháp:
Repeat
Câu lệnh 1;
Câu lệnh 2;
………….
Câu lệnh n;
Until (điều kiện);
Hoạt động:
Các câu lệnh giữa repeat và until sẽ được lặp lại nhiều lần khi nào
điều kiện sai, nếu điều kiện đúng thì ngưng (ngược với vịng lặp while). Đối
với lệnh này điều kiện sẽ được kiểm tra sau khi thực hiện các lệnh giữa

repeat và until nên ít nhất các lệnh sẽ được thực hiện trước 1 lần rồi mới
kiểm tra điều kiện đúng hay sai (nếu sai thì thực hiện tiếp vịng lặp, đúng thì
ngưng).
SƠ ĐỒ MINH HỌA CÂU LỆNH LẶP REPEAT … UNTIL….

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 17


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Bài tốn minh họa: Viết chương trình nhập vào độ dài ba cạnh của một tam giác
(có ràng buộc điều kiện về dữ liệu nhập vào). Tính chu vi của hình tam giác tương
ứng.
var a,b,c:integer;
begin
repeat
repeat
write('Nhap a,b,c :');
read(a,b,c);
until (a>0) and (b>0) and (c>0);
until (a+b>c) and (a+c>b) and (b+c>a);
writeln;
writeln('Chu vi tam giac la:', a+b+c);
readln;
end.
So sánh hai câu lệnh while… do… và repeat … until….


Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 18


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Ví dụ minh họa hai vịng lặp while …do… và repeat…until… áp
dụng viết chương trình tính tổng s=1+2+3+…+n. (n là một số nguyên được
nhập từ bàn phím).

Làm việc với dãy số ….(var A:array[chỉ số đầu .. chỉ số cuối] of kiểu dữ
liệu;).
- Nhập dữ liệu cho một mảng a gồm n phần tử
For i:=1 to n do
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 19


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Begin
Write(‘a[‘,I,’]=’);
Readln(a[i]);

End;
- Truy cập đến một phần tử của mảng a: a[chỉ số phần tử];
Bài tập minh họa cho phần dãy số: Viết chương trình nhập vào một mảng n số
nguyên ( 6a) In ra màn hình các số có trong mảng
b) In ra màn hình tổng các số âm có trong mảng.
c) In ra màn hình số lớn nhất của mảng.
Chương trình.
Var
A:array[1..55] of integer;
K,n,s,max:integer;
Begin
repeat
Write(“nhap so phan tu cua mang’);
Readln(n);
Until (n<50) and (n>6);
For k:=1 to n do
Begin
Write(‘a[‘,k,’]=);
Readln(a[k]);
End;
Writeln(‘----------- cau a ----------‘);
Writeln(‘Cac so co trong day: ‘);
For k:=1 to n do write(a[k], ‘ ‘);
Writeln(‘ -----------cau b ------------‘);
S:=0;
For k:=1 to n do
If (a[k] mod 2 <> 0) then s:=s+a[k];
Writeln(‘Tong cac so am = ‘,s);
Người viết: Đinh Thị Thiên Nga


Trường THCS Lương Thế Vinh

Trang 20


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Writeln(‘ --------- cau c ----------------‘);
Max:=a[1];
For k:=2 to n do
If (max Writeln(‘So lon nhat cua day =’,max);
Readln;
End.
Chú ý: Nếu đề bài yêu cầu nhập vào một dãy n số nguyên dương thì trong ta
thêm repeat … until như sau:
For k:=1 to n do
repeat
Write(‘a[‘,k,’]=);
Readln(a[k]);
Until (a[k]>0);
Phân dạng bài tập của học sinh theo chủ đề, giúp học sinh dễ dàng tiếp thu
kiến thức và đào sâu kĩ năng giải quyết vấn đề.
DẠNG : Vận dụng các phép toán +, -, *, /, Div, Mod để giải các bài toán cơ
bản.
56 − 12
− 212
Bài tốn 1:Viết chương trình tính
3

19 + 5
Bài tốn 2: Nhập vào 1 số tự nhiên có 4 chữ số. In ra màn hình tổng các chữ số có
trong dãy
Chú ý: Các bài toán này học sinh tự làm, giáo viên đánh giá và hướng dẫn thêm
(nếu học sinh có lỗi sai).
Bài Tốn 3: Đổi 11890 giây ra ?giờ ?phút ?giây?
Chương trình:
Begin
Writeln(‘11890giay = ’,11890 div 3600,’ gio’,(11890 mod 3600) div
60, ‘phut’, (11890 mod 3600) mod 60, ‘giay’); end.
Chú ý: Giáo viên yêu cầu học sinh gán số 11890 cho biến a nào đó để việc lập trình
đơn giản hơn.
Dạng bài tập liên quan đến sử dụng biến cơ bản (Giúp học sinh làm quen với
cách khai báo và sử dụng biến trong chương trình).

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 21


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Bài tốn . Viết chương trình tính diện tích hình vng với độ dài cạnh được nhập
từ bàn phím.
Chương trình
Var
a,s:real;
Begin

repeat
Write(‘Nhap do dai canh hinh vuong = ‘);
Readln(a);
Until (a>0);
S:=a*a;
Writeln(‘Dien tích hinh vuong= ‘,s:10:2);
Readln;End.
Dạng bài tập sử dụng câu lệnh if … then…
Giáo viên yêu cầu học sinh làm một số dạng toán khác về câu lệnh điều kiện
If … then … else như nhập vào một số tự nhiên, kiểm tra xem số vừa nhập có phải
là bội của 91 hay không? (a mod 91 =0; a la bội của 91), a có phải là ước của 91 hay
khơng? (91 mod a =0; a là ước của 91); Nhập vào hai số tự nhiên, kiểm tra xem số
này có phải là bội của số kia hay khơng? …
Hay bài tốn Nhập vào độ dài 3 cạnh một giác, kiểm tra xem ba có phải là
ba cạnh của một tam giác hay khơng? Nếu phải thì kiểm tra xem tam giác đó có
phải là tam giác vng, tam giác cân, tam giác đều hay không? (Đề bài chưa yêu
cầu kiểm tra dữ liệu nhập vào, xem như độ dài nhập vào luôn đúng).
Gv cho học sinh tích đề, rồi tìm ra thuật tốn của chương trình
-

-

Dựa vào bất đẳng thức trong tam giác: “trong một tam giác tổng hai
cạnh bất kì ln lớn hơn độ dài cạnh còn lại” để kiểm tra ba cạnh vừa
nhập có phải là 3 cạnh của một tam giác hay không? (a> b+c) and
(b>a+c) and (c>b+a).
Kiểm tra tam giác đều bằng cách xem 3 cạnh có bằng nhau hết hay
không? (a=b=c; “(a=b) and (b=c) and (a=c)”). Nếu khơng bằng nhau
thì xuống kiểm tra tam giác cân?
Kiểm tra xem tam giác cân bằng cách xem có hai cạnh nà bằng nhau

hay không? (a=b) or (a=c) or (b=c). Nếu khơng phải là tam giác cân
thì xuống kiểm tra tam giác vng?
Kiểm tra tam giác vng (dựa vào định lí: Pitago): (a*a=b*b+c*c) or
(b*b=a*a+c*c) or (c*c=a*a+b*b).

Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 22


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

dạng bài này sử dụng nhiều lệnh if … then …lồng nhau.
Dạng bài tập sử dụng câu lệnh lặp for… to.. do..
Bài tốn : Viết chương trình tính tổng s = 52 + 62 + ... + 192 (n được nhập từ bàn
phím).
Nhận xét. Trong biểu thức tính tổng trên, số hạng thứ i của tổng có thể được
tính theo cơng thức S(i) = i*i (i=5,6,...,19).
Chương trình được viết như sau:
Var
S,i:integer;
Begin
S:=0;
For i:=5 to 19 do s:=s +i*i;
Writeln(‘Tong =’,s);
Readln;End.
Một số bài tập khác, tuỳ theo đối tượng học sinh của mình mà giáo viên yêu cầu học
sinh làm cho phù hợp.

1. S=1+2-3+4-5+…-n (n là số lẻ ; n>=3).
2. S = n! = 1*2*...*n
{n giai thừa}
2
3
3. S= 1 + x + x /2! + x /3! + ... + xn/n!
Chú ý: Giáo viên cho học sinh về nhà làm những bài tập trên, có chỗ nào chưa hiểu
thì giáo viên hướng dẫn sau.
Dạng bài tập sử dụng câu lệnh while …do
Bài toán 1: Viết chương trình tính tổng ( u cầu khơng sử dụng câu lệnh lặp for …
to …do..).
S = 12 + 13 + … + 59
Cách 1. Dùng lệnh while … do …
Var
S,i: integer;
begin
s:=0;
i:=12;
while (i<=59) do
begin
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 23


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

s:=s+i;

i:=i+1;
end;
writeln(‘Tong =’, s);
readln;end.
Cách 2. Dùng lệnh repeat … until…
Var
S,i:integer;
begin
s:=0; i:=12;
repeat
s:=s+i;
i:=i+1;
until (i>59);
write(‘Tong =’,s);
readln;end.
Bài tốn 2: Viết tìm n bé nhất sao cho
tổng s>4

1 1
1
S = 1 + + ... +
2 3
n

Nhận xét:
- Trong biểu thức trên, số hạng thứ i của tổng có thể tính được theo
cơng thức S(i) = 1/ i với (i=1,2,...,n).
- Điều kiện để dừng vòng lặp là tổng S phải lớn hơn 4
Var i : Integer; S:Real;
Begin

S:=0; i:=0;
While (S < =4) do
Begin
i := i + 1;
S := S + 1/i ;
End;
Writeln( ' n be nhat =’,i);
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 24


”Đề tài: “Một số biện pháp tăng cường năng lực lập trình Pascal cho học sinh trường THCS Lương Thế Vinh”

Readln;End.
Dạng bài tập về mảng
- Nhập xuất mảng, tính tốn với các phần tử của mảng, sắp xếp mảng,
đếm các phần tử của mảng, tìm kiếm phần tử trong mảng, số chính
phương và số nguyên tố trong mảng, …, ghép mảng.
Bài tốn : Viết chương trình nhập vào một dãy số nguyên gồm n phần tử.
a) Sắp xếp mảng theo thứ tự tăng dần
b) In ra màn hình các số chính phương có trong mảng.
c) In ra màn hình các số nguyên tố có trong mảng.
(Giáo viên chú ý cho học sinh, Bài này nếu dùng chương trình con thì việc giải
quyết bài toán sẽ gọn hơn; tuy nhiên cho đến thời điểm hiện tại thì ta sẽ giải quyết
bài toán bằng những kiến thức cơ sở đã học; Ở những tiết ôn luyện về sau ta sẽ sử
dụng chương trình con để làm).
Chương trình được viết như sau:

Var a:array[1..100] of INT64;
n,i,j,kt:integer;
begin
write(‘nhap so phan tu cua mang n =’);readln(n);
for i:=1 to n do
begin
write(‘a[‘i,’]=’);
readln(a[i]);
end;
writeln(‘------------cau a ------------------‘);
for i:=1 to (n-1) do
for j:=i+1 to n do
If (a[i]>a[j]) then
Begin
Tam:=a[i];
A[i]:=a[j];
A[j]:=tam;
End;
Writeln(‘Day so duoc sap xep theo thu tu tang dan: ‘);
Người viết: Đinh Thị Thiên Nga

Trường THCS Lương Thế Vinh

Trang 25


×