Tải bản đầy đủ (.docx) (34 trang)

Nâng cao kỹ năng lập trình pascal cho học sinh lớp 8

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 (333.67 KB, 34 trang )

MỤC LỤC
I. ĐẶT VẤN ĐỀ:...........................................................................................2
1.1. Lý do chọn đề tài:................................................................................2
1.2. Mục đích nghiên cứu:.........................................................................2
1.3. Đối tượng nghiên cứu:........................................................................3
1.4. Phương pháp nghiên cứu:..................................................................4
1.5. Giới hạn phạm vi nghiên cứu:...........................................................4
II. GIẢI QUYẾT VẤN ĐỀ:...........................................................................5
2.1. Cơ sở lý luận của vấn đề:......................................................................5
2.2. Thực trạng của vấn đề:.........................................................................6
2.3. Các biện pháp đã tiến hành giải quyết vấn đề:...................................8
2.3.1. Các yêu cầu cơ bản của giáo viên:..................................................8
2.3.2. Các yêu cầu cơ bản của học sinh:...................................................8
2.3.3. Biện pháp tiến hành:........................................................................9
2.4. Hiệu quả của SKKN:...........................................................................29
2.4.1. Kết quả đạt được:...........................................................................29
2.4.2. Bài học kinh nghiệm:.....................................................................30
III. KẾT LUẬN :............................................................................................32
TÀI LIỆU THAM KHẢO:...........................................................................33

1


I. ĐẶT VẤN ĐỀ:
1.1. Lý do chọn đề tài:
Trong những năm gần đây sự bùng nổ công nghệ thông tin đã tác động
lớn đến công cuộc phát triển kinh tế xã hội loài ngườ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 yêu cầu công nghiệp hoá, 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 Gia Lai nói chung và
của phòng giáo dục và đào tạo huyện Chư Sê 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à xem đây là
giải pháp đột phá để nâng cao chất lượng giáo dục, giải pháp này đã được các
nhà trường tích cực hưởng ứng và thực hiện đạt hiệu quả cao trong quản lý và
dạy học.
Để đáp ứng nhu cầu giảng dạy bộ môn tin học ở trong nhà trường,
phòng giáo dục cũng như địa phươ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ụ cho công tác dạy và học. Do đó môn tin học đã
được đưa vào giảng dạy ở trường trung học cơ sở nhằm trang bị cho học sinh
những hiểu biết cơ bản về công nghệ thông tin và vai trò của nó trong xã hội
hiện đại. Môn học này giúp học sinh bước đầu làm quen với phương pháp giải
quyết vấn đề theo quy trình công nghệ và kỹ năng sử dụng máy tính phục vụ
học tập và cuộc sống. Tin học có ý nghĩa to lớn đối với sự phát triển trí tuệ, tư
duy thuật toán, góp phần hình thành kiến thức phổ thông cho học sinh.
1.2. Mục đích nghiên cứu:
Từ thực tế trên, trong quá trình dạy học tôi luôn 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
2


môn học rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các
em mới hiểu việc nhập và xuất dữ liệu. Do đó sẽ rất khó khăn để các em hình
thành kỹ năng viết chương trình. Nhất là những năm gần đây Ngành giáo dục
luôn thành lập đội tuyển tham dự thi học sinh giỏi môn Tin học,…
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 Toá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 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 mà còn phải có khả năng phân
tích, tổng hợp, trừu tượng hoá, khái quát hoá 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à bồi dưỡng học sinh dự thi tin học trẻ 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ề “Nâng cao kỹ năng lập trình pascal cho học sinh lớp
8”. 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.
Qua giảng dạy môn Tin học ở trường THCS Nay Der, 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
3


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 toán ở ngoà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 toán đó mà phải làm đến hàng chục phút, đưa ra thuật toá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:
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 luôn 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. Giới hạn phạm vi nghiên cứu:
Nhằm giới hạn phạm vi nghiên cứu theo như mục tiêu đã đề ra, đề tài
tập trung xem xét, phân tích, đánh giá các yếu tố nằm trong phạm vi sau:
Địa điểm nghiên cứu: Trường THCS Nay Der, huyện Chư Sê, tỉnh Gia Lai.
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 các năm học
2014-2015, 2015-2016, 2016- 2017 tại Trường THCS Nay Der, huyện Chư
Sê, tỉnh Gia Lai.

4


II.

GIẢI QUYẾT VẤN ĐỀ:


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 luôn 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 luôn 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
hoà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. Ngoà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
5



những hoạt động thành phần. Rồi 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à 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.
Để 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. Phải 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ải phân bậc hoạt động
để tuần tự nâng cao yêu cầu khi tình huống dạy học cho phép hoặc hạ thấp
yêu cầu khi học sinh gặp khó khăn. Hệ thống bài tập được phân bậc để 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 do nhà bác học Niklaus Wirth sáng lập
vào những năm 70 của thế kỷ XX. Đâ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.
Lập trình Turbo 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 toá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
toán bằng máy tính.

Ngoà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
6


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.
* Thuận lợi:
Nhà trường tạo điều kiện sắm sửa máy móc, trang thiết bị phục vụ cho
việc dạy và học môn Tin học.
Giáo viên được đào tạo đúng chuyên ngành về tin học để đáp ứng yêu
cầu cho dạy và học trong bậc THCS.
Một số gia đình có điều kiện kinh tế đã mua sắm máy vi tinh, tạo điều
kiện học tập thuận lợi cho con em mình đối với môn Tin học nói riêng và các
môn học khác nói chung.
* Khó khăn:
Nhà trường đã có một phòng máy vi tính, nhưng vẫn còn hạn chế về số
lượng cũng như chất lượng, mỗi ca thực hành có tới 2 đến 3 em ngồi chung
một máy nên các em không có nhiều thời gian để thực hành làm bài tập một
cách đầy đủ. Nhiều máy cấu hình đã cũ, chất lượng không còn đảm bảo hay
hỏng hóc ảnh hưởng đến chất lượng học tập của học sinh.
Một số học sinh chưa coi trọng môn học, 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 làm 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.
Ngoà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.

7


2.3. Các biện 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:
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. 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á ra nội dung bài học để thực hành vận dụng đạ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 một cách thành
thạo.

8


2.3.3. Biện pháp tiến hành:
a, Giới thiệu chung giúp học sinh nắm được về các thành phần cơ
bản của ngôn ngữ lập trình Pascal
* Bộ chữ viết - Biểu thức- Câu lệnh - Từ khóa
- Bộ chữ viết: Bộ chữ viết trong Pascal gồm:
+ 26 chữ la tinh lớn: A, B, C,…Z
+ 26 chữ la tinh nhỏ: a, b, c,…z
+ Dấu gạch dưới: _
+ Bộ chữ số thập phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
+ Ký hiệu toán học: +, -, *, / ,< >, ( ),..
+ Ký tự đặc biệt: @, #, !, $, %,…
+ Dấu khoảng trắng
- Biểu thức (expression): là công thức tính toán mà trong đó bao gồm
các phép toán, các hằng, các biến, các hàm và các dấu ngoặc đơn.
Trong một biểu thức, thứ tự ưu tiên của các phép toán được liệt kê theo
thứ tự sau:
+ Lời gọi hàm.
+ Dấu ngoặc ()
+ Phép toán một ngôi (NOT, -).
+ Phép toán *, /, DIV, MOD, AND.
+ Phép toán +, -, OR, XOR
+ Phép toán so sánh =, <, >, <=, >=, <>, IN

- Câu lệnh:
+ Câu lệnh đơn giản:
Câu lệnh gán (:=): <Tên biến>:=<Biểu thức>;
Lời gọi hàm, thủ tục.
+ Câu lệnh có cấu trúc:
Câu lệnh ghép: BEGIN ... END;
Các cấu trúc điều khiển:
IF.., CASE..., FOR..., REPEAT..., WHILE...
9


+ Các lệnh xuất nhập dữ liệu:
Lệnh xuất dữ liệu:
Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau:
(1) WRITE( [, ,...]);
(2) WRITELN( [, ,...]);
(3) WRITELN;
Nhập dữ liệu:
Để nhập dữ liệu từ bàn phím vào các biến có kiểu dữ liệu chuẩn (trừ
các
biến kiểu BOOLEAN), ta sử dụng cú pháp sau đây:
READLN(<biến 1>, <biến 2>,...,<biến n>);
- Từ khóa: Là các từ riêng của Pascal, có ngữ nghĩa đã được xác định,
không được dùng nó vào các việc khác hoặc đặt tên mới trùng với các từ
khóa: Array, Begin, Const, Div, Do, Else, For, If, Mod, Program, String, Then,
To, Var, While…
+ Từ khóa chung: PROGRAM, BEGIN, END
+ Từ khóa để khai báo như biến, hằng, mảng, xâu kí tự: VAR, CONST,
ARRAY, STRING
+ Từ khóa của lệnh lựa chọn: câu điều kiện

IF … THEN … ELSE
+ Từ khóa của lệnh lặp với số lần biết trước:
FOR … TO … DO (đi từ giá trị nhỏ đến giá trị lớn)
FOR … DOWNTO … DO (đi từ giá trị lớn đến giá trị nhỏ)
+ Từ khóa của lệnh lặp với số lần chưa biết trước:
WHILE … TO
+ Từ khóa phép tính:
DIV: Chia lấy phần nguyên
MOD: Chia lấy phần dư
+ Lệnh dịch chương trình: ALT + F9
+ Lệnh chạy chương trình: CTRL +F9
10


+ Để thay đổi vị trí lưu kết quả biên dịch trong bộ nhớ hay tạo tệp chạy
trực tiếp ta dùng lệnh: Destination trong bảng chọn Complite.
b. Giới thiệu chung về các bước viết một chương của ngôn ngữ lập
trình Pascal:
Phương pháp cơ bản giải các bài toán trong tin học không chỉ dùng để
giải một bài toán cụ thể mà còn giải một lớp các bài toán cụ thể thuộc cùng
một loại.
Bài toán được cấu tạo từ các yếu tố cơ bản:
Thông tin vào
(Output)

Xử lý thông tin
(Input)

Thông tin ra.
(Process)


Phương pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên
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 các bài toán:
Là xác định xem ta phải giải quyết vấn đề gì?, với giả thiết nào đã cho
và lời giải cần phải đạt những yêu cầu gì. Khác với bài toán thuần tuý toán
học chỉ cần xác định rõ giả thiết và kết luận chứ không cần xác định yêu cầu
về lời giải, vì thế từ phát biểu của bài toán, các em phải xác định được đâu là
thông tin đã cho (Input) và đâu là thông tin cần tìm (Output). Xác định đúng
yêu cầu bài toán là rất quan trọng bởi nó ảnh hưởng tới cách thức giải quyết
và chất lượng một lời giải. Một bài toán thực tế thường cho những thông tin
khá mơ hồ và hình thức, ta phải phát biểu lại một cách chính xác và chặt chẽ
để hiểu đúng bài toán.
Bước 2. Mô tả thuật toán:
Khi giải một bài toán ta cần phải định nghĩa tập hợp dữ liệu để biểu
diễn tình trạng cụ thể. Việc lựa chọn này tuỳ thuộc vào vấn đề cần giải quyết
và những thao tác sẽ tiến hành trên dữ liệu vào. Có những thuật toán chỉ thích
ứng với một cách tổ chức dữ liệu nhất định, đối với cách tổ chức dữ liệu khác
thì kém hiệu quả và không thể thực hiện được. Chính vì thế bước xây dựng
cấu trúc dữ liệu không thể tách rời bước tìm kiếm thuật toán giải quyết vấn
đề. Bởi thuật toán là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác
11


định một dãy thao tác trên cấu trúc dữ liệu sao cho: Với một bộ dữ liệu vào,
sau một số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được mục tiêu
đã định. Từ đó tìm cách giải bài toán và diễn tả bằng các lệnh cần phải thực
hiện.
Bước 3. Viết chương trình:
Dựa vào mô tả thuật toán ở bước 2 trên, ta viết chương trình bằng một

ngôn ngữ lập trình mà các em đã học (Cụ thể là dùng ngôn ngữ lập trình
Turbo Pascal để viết chương trình).
c. Phân tích chi tiết nội dung cần viết chương trình:
- Xác định bài toán
- Tìm dữ liệu biểu diễn thuật toán
- Xây dựng thuật toán
- Viết chương trình
- Chạy thử, thay đổi, kiểm tra chương trình
* Xác định bài toán:
- Khái niệm bài toán: Bài toán là một công việc hay một nhiệm vụ cần
phải giải quyết.
+ Vấn đề có nghĩa rộng hơn bài toán( là một loại vấn đề mà để giải
quyết phải liên quan ít nhiều đến tính toán: bài toán trong Vật lý, Hóa học,
Sinh học…)
+ Có 2 loại vấn đề
 Vấn đề được khẳng định tính đúng/ sai
 Vấn đề cần tìm được giải pháp để đạt được một mục đích xác định từ
những điều kiện ban đầu nào đó.
+ Biễu diễn vấn đề bài toán: A → B
Trong đó:

A: Giả thiết, điều kiện ban đầu.
B: Kết luận, mục tiêu cần đạt.

+ Giải quyết vấn đề bài toán:
 Từ A dùng một số hữu hạn, các bước suy luận có lý hoặc hành động
thích hợp để đạt được B
12



 Trong Tin học: A là đầu vào, B là đầu ra.
- Quá trình giải bài toán trên máy tính: Bài toán trên máy cũng mang
đầy đủ các tính chất của bài toán tổng quát trên, nhưng nó lại được diễn đạt
theo một các khác.
+ A : là đưa thông tin vào – thông tin trước khi xử lý (Input )
+ B: là đưa thông tin ra – kết quả sau khi xử lý (Output)
+  : là chương trình tạo từ các câu lệnh cơ bản của máy tính cho phép
xử lý từ A đến B.
- 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 toá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)
Các bước xác định cho bài toán:
+ Input

: 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
* Tìm dữ liệu biểu diễn thuật toán:

- Cấu trúc dữ liệu :
+ Là kiểu dữ liệu mà bên trong nó có chứa nhiều thành phần dữ liệu và
các thành phần dữ liệu đấy được tổ chức theo một cấu trúc nào đó. Nó dùng
để biểu diễn cho các thông tin có cấu trúc của bài toán. Cấu trúc dữ liệu thể
hiện khía cạnh logic của dữ liệu.
+ Khi giải một bài toán, cần phải định nghĩa tập hợp dữ liệu để biểu diễn
tình trạng cụ thể. Việc lựa chọn này tùy thuộc vào vấn đề cần giải quyết và
những thao tác sẽ tiến hành trên dữ liệu vào. Có những thuật toán chỉ thích ứng
với một cách tổ chức dữ liệu nhất định, đối với những cách tổ chức dữ liệu khác
13


thì sẽ kém hiệu quả hoặc không thể thực hiện được. Chính vì vậy nên bước xây
dựng cấu trúc dữ liệu không thể tách rời bước tìm kiếm thuật toán giải quyết vấn
đề.
- Các tiêu chuẩn khi lựa chọn dữ liệu:
+ Dữ liệu trước hết phải biểu diễn được đầy đủ các thông tin nhập và
xuất của bài toán.
Các kiểu dữ liệu
Byte
Integer
Real

Phạm vi sử dụng
Các số nguyên từ 0 đến 255
Các số nguyên từ -215 đến 215-1
Số thực có giá trị tuyệt đối trong khoảng 2,9 x 10 -39 đến

1,7 x 1038 và số 0
Char

Các kí tự trong bảng chữ cái
String
Các dãy số tối đa 255 kí tự
+ Dữ liệu phải phù hợp với các thao tác của thuật toán mà ta lựa chọn
để giải quyết bài toán.
* Xây dựng thuật toán:
- Khái niệm thuật toán:
Thuật toán là dãy hữu hạn các thao tác cần thực hiện theo trình tự xác
định để thu được kết quả cần thiết từ những điều kiện cho trước.
- Phương pháp biểu diễn thuật toán: Khi chứng minh hoặc giải một
bài toán trong toán học, chúng ta thường dùng những ngôn từ toán học như :
"ta có", "điều phải chứng minh", "giả thiết", ... và sử dụng những phép suy
luận toán học như phép suy ra, tương đương, ...Thuật toán là một phương
pháp thể hiện lời giải bài toán nên cũng phải tuân theo một số quy tắc nhất
định. Ðể có thể truyền đạt thuật toán cho người khác hay chuyển thuật toán
thành chương trình máy tính, ta phải có phương pháp biểu diễn thuật toán. Có
3 phương pháp biểu diễn thuật toán:
+ Dùng ngôn ngữ tự nhiên.
+ Dùng lưu đồ - sơ đồ khối
+ Dùng mã giả
- Các tiêu chí thuật toán cần thỏa mãn:
+ Tính hữu hạn: Giải thuật phải dừng lại sau một số bước hữu hạn.
14


+ Tính dừng: Khi kết thúc giải thuật phải cung cấp kết quả đúng đắn.
+ Tính hiệu quả: Thời gian tính toán nhanh.
+ Sử dụng ít tài nguyên không gian như: bộ nhớ, thiết bị.
+ Mang tính phổ dụng: dễ hiểu, dễ cài đặt và mở rộng cho các bài toán
khác.

- Phân loại thuật toán
+ Phân loại theo cài đặt.
+ Phân loại theo thiết kế.
+ Phân loại theo lĩnh vực nghiên cứu.
- Ngôn ngữ tự nhiên
+ Trong cách biểu diễn thuật toán theo ngôn ngữ tự nhiên, người ta sử
dụng ngôn ngữ thường ngày để liệt kê các bước của thuật toán.
+ Ưu điểm:
 Đơn giản
 Không yêu cầu người viết và người đọc có kiến thức nền tảng
+ Nhược điểm
 Dài dòng
 Không làm nổi bật cấu trúc thuật toán
 Khó biểu diễn với các bài toán phức tạp
Ví dụ: Bài toán giải phương trình bậc nhất 1 ẩn ax+b=0
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
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.
- Lưu đồ - sơ đồ khối

15


+ Lưu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật
toán. Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõi được sự
phân cấp các trường hợp và quá trình xử lý của thuật toán. Phương pháp lưu

đồ thường được dùng trong những thuật toán có tính rắc rối, khó theo dõi
được quá trình xử lý.
+ Ðể biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại
thao tác.
 Một thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó.
 Các thao tác không thuộc loại chọn lựa được xếp vào loại hành
động.
+ Ưu điểm
 Trực quan, dễ hiểu, dễ thiết kế.
 Cung cấp toàn cảnh, tổng quan về thuật toán.
+ Nhược điểm
 Cồng kềnh, đặc biệt đối với bài toán phức tạp
Một số khối trong sơ đồ khối dùng để biểu diễn thuật toán.

16


+ Cấu trúc tuần tự: Các bước thực hiện theo một trình tự, hết bước
này tới bước khác.

+ Cấu trúc rẽ nhánh:
 Nếu biểu thức điều kiện đúng, thực hiện công việc 1
 Nếu biểu thức điều kiện sai, thực hiện công việc 2

17


18



+ Cấu trúc lặp

Ví dụ: Giải phương trình bậc nhất ax + b = 0

19


- Mã giả:
+ Là ngôn ngữ tựa như ngôn ngữ lập trình. Trong mã giả ta còn sử
dụng cả các ký hiệu toán học, các biến, và đôi khi cả cấu trúc kiểu thủ tục.
Cấu trúc thuật toán kiểu thủ tục thường được sử dụng để trình bày các thuật
toán đệ qui hay các thuật toán quá phức tạp cần phải được trình bày thành
nhiều cấp độ.
+ Ưu điểm:
 Tiện lợi, đơn giản.
 Dễ hiểu, dễ diễn đạt.
+ Cùng với việc sử dụng các biến, trong thuật toán rất thường gặp một
phát biểu hành động đặt (hay gán) một giá trị cho một biến.
Ví dụ: hành động tăng biến i lên 1 đơn vị có thể được viết như sau: i := i + 1
+ Các cấu thường được sử dụng trong mã giả dựa theo ngôn ngữ lập
trình PASCAL gồm:
 Cấu trúc chọn:
if (điều kiện) then (hành động)
if (điều kiện) then (hành động) else (hành động)
20


 Cấu trúc lặp:
while (điều kiện) do (hành động)
for (biến đếm) := (giá trị đầu) to (giá trị cuối) do (hành động)

Ví dụ: Thuật toán tìm nghiệm của phương trình bậc nhất ax+b=0
Nhập : 2 hệ số a, b,
Xuất : nghiệm của phương trình
Thuật toán:
1. a = 0
2. if b = 0 then
begin
Xuất kết quả: phương trình có vô số nghiệm
end
3. esle if b <> 0 then
Xuất kết quả: phương trình vô nghiệm
4. else if a <> 0
Xuất kết quả: phương trình có nghiệm x= -b/a
* Viết chương trình:
- Viết chương trình là dùng ngôn ngữ lập trình cụ thể nào để diễn tả thuật
toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và giải
quyết đúng bài toán mà người viết chương trình mong muốn. Và đây cũng là
một trong những bước then chốt của người lập trình.
- Sau khi đã có thuật toán ta phải lập trình để thực hiện thuật toán đó.
Muốn lập trình đạt hiệu quả cao, cần phải có kỹ thuật lập trình tốt. Kỹ thuật lập
trình tốt thể hiện ở kỹ năng viết chương trình, khả năng gỡ rối và thao tác nhanh.
- Lập trình tốt không chỉ nắm vững ngôn ngữ lập trình là đủ, mà phải biết
cách viết chương trình một cách uyển chuyển, khôn khéo và phát triển dần dần
để chuyển các ý tưởng ra thành chương trình hoàn chỉnh.

21


22



- Cấu trúc chung của một chương trình Pascal

+ Phần khai báo :
 Phần khai baó bắt đầu bằng từ khóa Program.
 Phần khai báo gồm:
 Khai báo tên chương trình.
 Khai báo thư viện.
 Một số khai báo khác( khai báo biến, khai báo hằng…)
 Khai báo tên chương trình chấm dứt bằng dấu chấm phẩy(;). Tên
chương trình phải được đặt theo đúng quy cách của danh hiệu tự đặt. Phần
này có hay không cũng được.
Ví dụ:

Program Giai _Phuong_trinh_bac_nhat;
Program timsolonnhat ;

 Khai báo các thư viện bằng từ khóa Uses.Ví dụ thư viện crt,
Ví dụ:

Uses crt ;

{khai báo thư viện crt }

Thư viện crt trong Pascal cung cấp các chương trình có sẵn để làm việc
với màn hình và bàn phím.
23


Ví dụ: Muốn xóa những gì đang có trên màn hình kết quả ta dùng lệnh

Clrscr.
 Khai báo Hằng: Hằng là đại lượng không đổi trong suốt quá trình
thực hiện chương trình( Hằng được sử dụng cho các giá trị xuất hiện nhiều lần
trong chương trình). Ta dùng tên hằng để chương trình rõ ràng và dễ sửa đổi.



Hằng được khai báo với từ khóa Const



Cú pháp Const <tên hằng> = <giá trị>;

Ví dụ :

Const chiphi = 1000 ;

 Khai báo Biến: Là đại lượng mà giá trị của nó có thể thay đổi trong
quá trình thực hiện chương trình.



Biến được khai báo với từ khóa Var



Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu.




Biến được xuất trong chương trình thông qua tên biến.



Biến là cấu trúc ghi nhớ dữ liệu, vì vậy phải quy định theo 1 kiểu

dữ liệu nào đó. Ví dụ: Real, Integer, byte,…


Cú pháp Var < danh sách biến > : < kiểu dữ liệu> ;

Trong đó : Danh sách biến là một hay nhiều tên biến, các tên biến được
viết cách nhau bởi dấu phẩy (,). Kiểu dữ liệu thường là một trong các kiểu dữ
liệu chuẩn hay kiểu dữ liệu do người lập trình định nghĩa.
Ví dụ :

Var x , y : integer ; A: Array[1..50] of real;

- Phần thân chương trình:
+ Phần thân chương trình là phần đặc biệt quan trọng và bắt buộc phải có,
phần này luôn nằm giữa 2 từ khoá là begin và end. Ở giữa là lệnh mà các
chương trình chính cần thực hiện. Đề bài yêu cầu viết chương trình thực hiện
công việc gì thì ở phần thân phải có các câu lệnh dùng để thực hiện công việc
đó. Sau từ khóa end là dấu chấm (.) để báo kết thúc chương trình. Các lệnh sau
dấu chấm đều không có ý nghĩa.

24


+ Các thủ tục nhập, xuất thường dùng

TT

Thủ tục

Cú pháp lệnh
Read(x1, x2,..., xn);

Ý nghĩa lệnh
Nhập các biến x1, x2,…, xn theo
hàng ngang từ bàn phím (con trỏ

1

Nhập

Readln(x1, x2, ..., xn);

không xuống hàng).
Nhập các biến x1, x2,…, xn theo
hàng dọc từ bàn phím (mỗi lần nhập

Readln;

con trỏ xuống hàng).
Dừng chương trình, đợi Enter mới

Write(x1, x2, ..., xn);

tiếp tục.
Viết giá trị trong các biến x1, x2,..,xn

ra màn hình theo hàng ngang( con trỏ

Writeln(x1, x2, ..., xn);
2

không xuống hàng).
Viết giá trị trong các biến x1, x2,...,
xn theo hàng dọc( mỗi lần viết giá trị

Xuất
Writeln;

x có xuống hàng).
Xuống hàng.

Writeln(R : n : m);

Viết ra giá trị của biến thực R vào n
chỗ, chỉ lấp m số thập phân.

Lưu ý :

25


×