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

skkn

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 (405.02 KB, 26 trang )

I. LỜI MỞ ĐẦU:
Xuất phát từ nhu cầu của xã hội ngày một phát triển cùng với sự phát triển
của khoa học kỹ thuật đã kéo theo sự phát triển như vũ bão của tin học hay công
nghệ thông tin. Sự phát triển của tin học đã đem lại hiệu quả to lớn cho hầu hết các
lĩnh vực của xã hội, hơn thế nữa nó cịn đi sâu vào đời sống của con người. Để đáp
ứng được các yêu cầu trên, môn Tin học đã được đưa vào giảng dạy ở các trường
phổ thơng với vai trị là mơn học tự chọn với thời lượng 2 tiết/tuần cho tất cả các
lớp ở các cấp học. Mặc dù đây là môn tự chọn nhưng hiện nay môn tin học được
xem là môn học ứng dụng vào thực tiễn đời sống ngày càng nhiều, đồng thời hỗ trợ
đắc lực cho ngành kinh tế xã hội hiện đại như ngày nay.
1. Lý do chọn đề tài:
Trải qua những năm trực tiếp giảng dạy bộ môn Tin học ở trường THCS Đại
Phước, cũng như qua q trình trao đổi với đồng nghiệp tơi nhận thấy: hầu như học
sinh đều rất yêu thích và hứng thú với môn Tin học. Tuy nhiên, chất lượng bộ môn
Tin học lớp 8 qua các năm học chưa cao, đặc biệt là kĩ năng lập trình cịn hạn chế.
Mục đích của tơi là giúp học sinh lớp 8 nắm được những “kĩ năng cơ bản để giải bài
toán bằng ngơn ngữ lập trình Pascal trên máy tính”. Tạo cho học sinh niềm hứng
thú và say mê trong lập trình để từ đó giúp cho các em phát huy tính tích cực, tự giác,
chủ động, sáng tạo, rèn luyện thói quen làm việc độc lập và kỹ năng lập trình. Bên
cạnh đó, học sinh cịn biết vận dụng để giải quyết các bài toán thường gặp trong thực
tế; tạo nên nhiều hứng thú trong học tập đó là lý do tôi chọn đề tài này.
a) Cơ sở lý luận:
- Chúng ta đang sống trong thời đại khoa học điện tử, thời đại bùng nổ
thơng tin và mạng máy tính. Cơng nghệ thông tin là tập hợp các phương pháp khoa
học, các phương tiện và công cụ kỹ thuật hiện đại nhằm tổ chức khai thác và sử
dụng có hiệu quả các nguồn tài nguyên thông tin rất phong phú và tiềm năng trong
mọi lĩnh vực hoạt động của con người và xã hội.
- Bộ GD&ĐT đã chỉ rõ: Nâng cao nhận thức về vai trò của CNTT; ứng dụng
và phát triển CNTT trong giáo dục và đào tạo sẽ tạo một bước chuyển cơ bản trong



quá trình đổi mới nội dung, chương trình, phương pháp giảng dạy, học tập và quản
lí giáo dục.
b) Cơ sở thực tiễn:
- Đặc trưng của môn Tin học là môn khoa học gắn liền với công nghệ hiện
đại, do vậy dạy học Tin học trong nhà trường nhằm trang bị cho học sinh kiến
thức khoa học về Tin học, phát triển tư duy thuật tốn, kỹ năng lập trình và tiếp
cận những công nghệ mới của Tin học phục vụ học tập và đời sống. Nội dung
chương trình của mơn Tin học hiện hành ở các trường THCS đã đáp ứng được
những yêu cầu trên.
- Trong nhà trường hiện đang phấn đấu các mục tiêu cụ thể của ngành là:
Tổ chức tốt việc hướng dẫn học sinh biết cách lập trình để tham gia các kỳ thi như
Tin học trẻ, học sinh giỏi lớp 9,…
2. Phạm vi nghiên cứu của đề tài: Học sinh khối 8, 9 trong trường trung học
cơ sở Đại Phước.
II. THỰC TRANG CỦA NỘI DUNG ĐỀ TÀI NGHIÊN CỨU:
- Lập trình Pascal được xem là nội dung "khó" đối với học sinh THCS ở chỗ:
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. Bình diện chung học sinh THCS vốn tiếng
Anh khơng nhiều, đa số các em cịn yếu về tiếng Anh. Lấy đơn vị lớp để tính thì
mỗi lớp chỉ có một vài em được gọi là "thơng thạo" tiếng Anh qua các bài học.
Hầu hết số còn lại nằm trong trạng thái "mù tịt". Đây là một khó khăn cho việc
hiểu được ngơn ngữ lập trình Pascal hay Free Pascal.
- Từ thực tế trong q trình dạy học tơi luôn băn khoăn trăn trở làm thế nào
nâng cao chất lượng kỹ năng lập trình cho học sinh lớp 8. Việc tiếp cận với mơn
học rất khó khăn, phải làm rất nhiều lần và thực hành rất nhiều tiết các em mới
hiểu việc nhập và xuất dữ liệu, điều này sẽ rất khó khăn để các em hình thành kỹ
năng viết chương trình.
- Qua kiểm tra chất lượng học kỳ 1 năm học 2016-2017, tôi thấy kỹ năng cơ bản
để giải bài tốn trên máy tính bằng ngơn ngữ lập trình Pascal của học sinh lớp 8 là rất
yếu. Khi giải bài tốn trên máy tính học sinh chỉ quan tâm đến cơng thức để tính tốn



ra kết quả bài toán mà quên các bước xác định thơng tin vào, thơng tin ra; xây dựng
thuật tốn; chạy chương trình thì học sinh chưa nhận biết được kết quả chương trình
đúng hay sai. Vì thế, kết quả kiểm tra học kỳ 1 là rất thấp.
Kết quả khảo sát kiểm tra thực hành học kỳ 1 năm học 2016-2017 (lập trình)
TT

Lớ
p

Kết quả kiểm tra


Giỏ Kh

số

i
SL

á
%
11.

TB
S
L

1


8/1

35

4

2

8/2

34

3

8.8

8

3

8/3

36

2

5.6

6


9

8.6

21

4

7

Yế



u

m

%

SL

20.
0
23.
5
16.
7


Trên TB
%
25.

9

7
17.

6

6
19.

7

4

SL

%

SL

7

20.0

8


10

29.4

7

11

30.6

10

%
22.
9
20.
7
27.
7

SL

%

27

25.7

27


25.7

26

24.8

Tổ
ng
cộ

20.
0

22

21.
0

28

26.
7

25

23.
7

80


76.2

ng
III. CÁC GIẢI PHÁP:
1. Xác định bài toán:
a. 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ụ nào đó cần phải giải quyết, đối với bất
kỳ một bài toán nào thì học sinh cũng được giáo viên hướng dẫn là phải đọc kỹ đề
rồi xác định yêu cầu: A  B
Trong đó:
A là giả thiết: Điều kiện ban đầu hay cái đã cho cịn gọi là giả thuyết trong
tốn học.
B là kết luận: Mục tiêu cần đạt được hay cái phải tìm, phải làm ra khi kết
thúc bài tốn.


 là suy luận: Giải pháp cần xác định hay một chuỗi các bước cần thực hiện từ
A đến B.
b. Bài tốn lập trình trên máy vi tính:
Bài tốn lập trình trên máy cũng mang đầy đủ các tính chất của bài tốn tổng
qt 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.
c. Xác định bài toán:
Việc xác định 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à với lời giải cần đạt những yêu cầu gì. Khác với các bài toán
thuần túy trong toán học là 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, đôi khi những bài tốn tin học trong thực tế chỉ cần

tìm lời giải tốt tới mức nào đó, thậm chí là chỉ ở mức chấp nhận được (nếu lời giải
tốt nhất địi hỏi q nhiều thời gian và chi phí).
Input  Process  Output (Dữ liệu vào  Xử lý  Kết quả ra)
d. Một số ví dụ:
Ví dụ 1: Tính diện tích hình vng.
Các bước xác định cho bài tốn:
+ Thơng tin vào (Input): Cạnh hình vng a
+ Thơng tin ra (Output): Kết quả diện tích khi đưa a vào
+ Các dữ liệu cần xử lý để cho ra thông tin kết quả như:
Lần lượt đưa giá trị a vào (cho a = 4 hay a là giá trị bất kỳ nào đó)
Áp dụng cơng thức tính diện tích hình vng: a*a
Kết quả in ra là tích của giá trị cụ thể tương ứng của a do người chạy
chương trình nhập vào.
Ví dụ 2: Nhập vào một xâu ký tự và in ra màn hình xâu đã được đổi thành in hoa.
Các bước xác định cho bài toán:
+ Input: Xâu ký tự


+ Output: Xâu ký tự đã đổi thành in hoa
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Lần lượt đưa xâu ký tự vào

(S = abcd hay S là xâu bất kỳ)

Áp dụng công thức :
Xác định chiều dài xâu ký tự bằng hàm Length(s)
For i:=1 to length(St) do St[i]:=Upcase(St[i]);
Kết quả in ra là ABCD.
Ví dụ 3: Giải phương trình bậc nhất dạng tổng quát bx + c =0
Các bước xác định cho bài toán:

+ Input: Các số b, c
+ Output: Nghiệm của phương trình bậc nhất
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Lần lượt đưa giá trị b, c vào

( b = 3 ; c= - 6)

Áp dụng công thức:
- Nếu 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 = 2
Ví dụ 4: Tìm giá trị lớn nhất của một dãy số nguyên
Các bước xác định cho bài toán:
+ Input: số nguyên dương N và dãy N số nguyên a1, …., aN
N = 5 ; (7, 5, 9, 4, 10)
+ Output: Giá trị lớn nhất Max của dãy số.
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Khởi tạo giá trị Max = a1
Lần lượt với i từ 2 đến N, so sánh giá trị số hạng ai với giá trị Max, nếu ai >
Max thì Max nhận giá trị mới là ai.
Kết quả in ra là Max = 10.
2. Tìm cấu trúc dữ liệu biểu diễn thuật toán:


* Cấu trúc dữ liệu (data structure): 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
tốn. Cấu trúc dữ liệu thể hiện khía cạnh logic của dữ liệu. Ví dụ cấu trúc dữ liệu
đơn giản nhất trong chương trình tin học lớp 8 là mảng.

Cịn các dữ liệu khơng có cấu trúc được gọi là các dữ liệu vô hướng hay các
dữ liệu đơn giản. VD: các kiểu dữ liệu số nguyên (integer), số thực (real), logic
(boolean) là các kiểu dữ liệu đơn giả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 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 tố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 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 cấu trúc dữ liệu:
- Cấu trúc 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 tốn.
- Cấu trúc 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.
- Cấu trúc dữ liệu phải cài đặt được trên máy tính với ngơn ngữ lập trình
đang sử dụng.
* Đối với một số bài toán, trước khi tổ chức dữ liệu ta phải viết một đoạn
chương trình nhỏ để khảo sát xem dữ liệu cần lưu trữ lớn tới mức độ nào.
3. Xây dựng thuật tốn:
Đây là bước khó nhất đối với học sinh và cũng cho giáo viên khi dạy phần
này vì các em quen giải bài tốn cụ thể nào đó và giải bài tốn bằng ngơn ngữ tự
nhiên mà các em đã học còn bây giờ các em phải xây dựng thuật toán của một bài
toán tổng quát và bằng ngơn ngữ lập trình của máy.
a. Khái niệm thuật toán:


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 đị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 (Input), sau
số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được kết quả đã định
(Output).

INPUT

OUTPUT
ALGORITHM

b. Phương pháp biểu diễn thuật toán:
Trong phần này chúng ta cần đưa ra một phương pháp mô tả thuật toán một
cách khoa học để học sinh nhận biết được quy trình làm việc của máy vi tính
(Ngơn ngữ lập trình) làm việc như thế nào. Mơ tả thuật toán là bước quan trọng
nhất đối với người lập trình, nếu người lập trình mơ tả thuật tốn sai hoặc dài dịng
thì dẫn đến khi viết chương trình sẽ khó khăn hoặc sẽ cho kết quả sai. Ở bước này
địi hỏi người lập trình cần có những hiểu biết cơ bản về tốn học thì khả năng biểu
diễn thuật toán sẽ trở nên đơn giản hơn và sẽ thấy bài tốn trở nên gần gủi. Vì vậy
trong phần này tôi sẽ đã đưa ra hai phương pháp mô tả thuật toán một cách rõ ràng
và khoa học nhất để các em dễ dàng mơ tả thuật tốn đúng theo ý tưởng của mình.
b.1: Phương pháp biểu diễn từng bước:
* Phương pháp:
- Các thao tác của giải thuật được liệt kê từng bước
- Tại mỗi bước, sử dụng ngôn ngữ tự nhiên để diễn tả công việc phải làm.
- Bước đứng trước (có số thứ tự nhỏ hơn) được thực hiện trước, thực hiện
xong bước này mới chuyển sang bước khác, khơng nhập nhằng.
* Ví dụ:
Thuật tốn “Tìm vị trí xuất hiện đầu tiên của một số nguyên trong dãy số
nguyên đã cho”:
- Bước 1: Nhập dãy số nguyên
- Bước 2: Nhập số nguyên a
- Bước 3: Gán cho phần tử so sánh (s) giá trị của số đầu tiên trong dãy
- Bước 4: So sánh a với s
+ Nếu a = s thì ghi nhận vị trí của phần tử s (p)



+ Nếu a ≠ s và s chưa phải phần tử cuối cùng trong dãy thì gán s bằng phần
tử tiếp theo và lặp lại bước 4
+ Nếu a ≠ s và s là phần tử cuối cùng của dãy thì gán p = 0
- Bước 5: Nếu p ≠ 0 thì đưa ra vị trí cần tìm là p, ngược lại thơng báo khơng
tìm thấy, kết thúc.
Thuật tốn “Tìm ước số chung lớn nhất của 2 số nguyên dương a,b.
- Bước 1: Nhập 2 số nguyên dương là a,b
- Bước 2: So sánh giá trị a và b. Nếu a bằng b thì sang bước 3, ngược lại a
khác b thì sang bước 4
- Bước 3: Tìm được ước số chung là a và kết thúc chương trình.
- Bước 4: Nếu a lớn hơn b thì ước số chung lớn nhất là a:=a-b và quay trở
lại bước 2. Ngược lại ước số chung là b:=b-a và quay trở lại bước 2
Thuật tốn “giải phương trình bậc nhất dạng tổng quát bx + c = 0”
- Bước1. Nhập b, c là các số nguyên.
- Bước2. Nếu b = 0 chuyển đến bước 4
- Bước 3. Tính nghiệm phương trình x = - c /b và chuyển tới bước 5
- Bước 4. Nếu c ≠ 0, thơng báo phương trình đã cho vô nghiệm. ngược lại (c
= 0) thông báo phương trình có vơ số nghiệm.
- Bước 5. Kết thúc.
Thuật tốn “Tính chu vi, diện tích hình chữ nhật”
- Bước1. Nhập hai cạnh a,b
- Bước 2. Tính chu vi C = 2*(a+b)
- Bước 3. Tính diện tích S = a*b
- Bước 4. In chu vi C
- Bước 5. In diện tích S
- Bước 6. Kết thúc
Thuật tốn “Tìm giá trị lớn nhất của một dãy số nguyên”
- Bước 1: Nhập N và dãy a1, ……, aN.
- Bước 2: Max  a1 ; i  2 ;

- Bước 3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc.


- Bước 4: Nếu ai > Max thì Max  ai ;
i  i+1 ; rồi quay lại bước 3 ;
b.2: Phương pháp biểu diễn bằng sơ đồ khối:
* Phương pháp:
- Sử dụng mũi tên để quy định trình tự thực hiện các thao tác
- Sử dụng các hình khối để minh hoạ cho các lệnh hay thao tác.
+ Khối bắt đầu
+ Khối kết thúc
+ Khối thao tác thực hiện tính tốn
+ Khối kiểm tra điều kiện
+ Khối vào/ra dữ liệu
+ Khối gọi chương trình con,…
Các ký hiệu trong phương pháp biểu diễn này:
Khối bắt đầu và kết thúc
Begin

- Gọi chương trình con A
A

End

Thực hiện cơng việc A

- Kiểm tra điều kiện: Tùy thuộc
điều kiện(Đúng hay Sai) mà rẽ
nhánh thích hợp


A

Vào/ra dữ liệu

sai

Điều kiện
Đúng

Từ các khối ở trên có một số cấu trúc như sau:
Cấu trúc rẽ nhánh

If…then…

If…then…
else…

Cấu trúc lặp
while…
do…

repeat…
until…


Thuật tốn “Tính chu vi, diện tích hình chữ nhật”
Begin
§äc c¹nh a,b

C := 2*(a+b)

S := a*b
In ra C, S
End

Thuật tốn “Tính chu vi, diện tích hình tam giác”
Begin

§äc a,b,c

(a+b>c) and (b+c>a)
and (a+c>b)

Sai

§óng

C := (a+b+c)
p := C/2
S := p * ( p  a ) * ( p  b) * ( p  c )
In ra C,S

End

In “Không tạo
thành TG”


Thuật tốn “Tìm giá trị lớn nhất của một dãy số nguyên”
begin
Nhập N và dãy a1, .., aN


Max  a1 , i  2
i >N

Sai

Đúng
Đưa ra Max

Ai > Max

Sai

Đúng

Max  ai

i i+1
End.
c. Tính chất của thuật tốn:
* Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các
thao tác.
* Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật tốn kết
thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo.
* Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm.
Ví dụ: Với thuật tốn tìm giá trị lớn nhất của dãy số nguyên đã xét ở trên


Tính dừng: Vì giá trị của i mỗi lần tăng lên 1 nên sau N lần thì i> N, khi đó
kết quả phép so sánh ở bước 3 xác định việc đưa ra giá trị Max rồi kết thúc.

Tính xác định: Thứ tự thực hiện các bước của thuật toán được mặc định là
tuần tự nên sau bước 1 là bước 2, sau bước 2 là bước 3. Kết quả các phép so sánh
trong bước 3 và bước 4 đều xác định duy nhất bước tiếp theo cần thực hiện.
Tính đúng đắn: Vì thuật tốn so sánh Max với từng số hạn của dãy số và
thực hiện Max ai nếu ai > Max nên sau khi so sánh hết N số hạng của dãy thì Max
là giá trị lớn nhất.
4. 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 (Ngơn ngữ Pascal) để
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 tố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 tốn ta phải lập trình để thực hiện thuật tố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 hồn chỉnh. Để đạt được những điều trên thì cơ bản
học sinh phải nắm được cấu trúc chung của một chương trình Pascal cần có những
thành phần nào.
Một chương trình Pascal có các phần:
- Tên chương trình

PROGRAM Tên_chương_Trình ;
USES

- Thư viện

……

LABEL ……

CONST ……
TYPE …….
VAR …….

Phần khai báo

- Nhãn
- Hằng
- Kiểu
- Biến

Phần mô tả thủ tục / hàm chương

PROCEDURE ……
FUNCTION ……
BEGIN
……

Bắt đầu thân chương trình chính

Các câu lệnh của chương trình

trình con


Kết thúc thân chương trình chính

END.

* Phần khai báo :

- Phần này bắt đầu bằng từ khóa Program rồi tiếp đến là tên của chương
trình và chấm dứt bằng dấu chấm phẩy (;).Tên chương trình phải được đặt theo
đúng qui cách của danh hiệu tự đặt (thỏa mãn quy ước đặt tên trong Pascal). Phần
này có hay khơng cũng được.
Ví dụ:

Program

Phuong_trinh_bac2 ;

Program

Vidu ;

- Tiếp đến là khai báo các thư viện bằng từ khóa Uses. Mỗi ngơn ngữ lập
trình thường có sẵn một số thư viện cung cấp một số chương trình và lệnh thơng
dụng đã được lập sẵn.Ví dụ thư viện crt, graph……Và để sử dụng các chương
trình đó thì phải khai báo thư viện chứa nó.
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. 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. (Nếu như ta sử dụng lệnh này mà không khai báo thư viện Crt thì
máy tính sẽ báo lỗi).
- Trình tự tiếp theo của một chương trình Pascal có thể có một số hoặc tất cả
các khai báo dữ liệu sau:

LABEL

:

khai báo nhãn

CONST

:

khai báo hằng

TYPE

:

định nghĩa kiểu dữ liệu mới

VAR

:

khai báo các biến có dùng trong chương trình


+ Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần
trong chương trình (có nghĩa là giá trị nào thường xuyên xuất hiện trong chương
trình thì ta cần khai báo hằng)
Ví dụ: Khai báo hằng
Const MaxN = 1000 ;

Pi = 3.1416 ;
KQ = ‘Ketqua’ ;
Và khi viết chương trình thay vì ghi giá trị cụ thể thì ta sử dụng tên hằng đã
khai báo (đã khai báo hằng MaxN = 1000 thì quá trình viết chương trình chỉ cần
sử dụng hằng MaxN thay cho giá trị 1000)
+ Trong quá trình lập trình nếu phát sinh những kiểu dữ liệu mới cần sử
dụng thì phải khai báo bằng từ khóa Type.
Ví dụ 1: Khai báo kiểu mảng một chiều
Type Kmang = array [1 .. 100] of integer ;
Ví dụ 2: Khai báo kiểu bản ghi
Type
Hocsinh = record
Hoten : string [30] ;
Ngaysinh : string [10] ;
Tin, toan, ly : real ;
End;
+ Tất cả các biến dùng trong chương trình đều phải đặt tên và phải khai báo
(sử dụng từ khóa Var) cho chương trình dịch biết để lưu trữ và xử lí. Biến chỉ nhận
một giá trị tại mỗi thời điểm thực hiện chương trình. Tên biến dùng để xác lập
quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu trữ giá trị biến và mỗi biến chỉ được
khai báo một lần.
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 : real ;

N : Kmang ; { Kmang đã được định nghĩa }

+Phần khai báo chương trình con (thủ tục Procedure hoặc hàm Function):
Phần này mơ tả một nhóm lệnh được đặt tên chung là một chương trình con để khi
thân chương trình chính gọi đến thì cả nhóm lệnh đó được thi hành. Phần này có
thể có hoặc khơng tùy theo nhu cầu. Và trong chương trình tin học lớp 8 thì cũng
khơng nên đặt nặng vấn đề này cho học sinh, chỉ làm sao để học sinh cảm thấy đơn
giản nhất có thể để việc lập trình các bài tốn đơn giản của các em trở nên gần gủi
và bản thân các em tự viết được một chương trình đơn giản.
Lưu ý: Phần khai báo có thể có hoặc khơng tùy theo từng chương trình cụ thể.
* 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 ln nằm giữa 2 từ khố 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 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.
* Lưu ý: Dấu chấm phẩy (;):
Dấu ; dùng để ngăn cách các câu lệnh của Pascal và khơng thể thiếu được
trong q trình viết các câu lệnh.
* Lời chú thích:
Lời chú thích dùng để chú giải cho người sử dụng chương trình nhớ nhằm
trao đổi thơng tin giữa người và người, máy tính sẽ khơng để ý đến lời chú thích
này. Lời chú thích nằm giữa ký hiệu: { } hoặc (* *)
Ví dụ 2:
PROGRAM

CT_Dau_tien ;

USES


Crt;

VAR

x : integer ;

BEGIN
Clrscr ;

{Dịng tiêu đề, khai báo tên chương trình }
{ Khai báo sử dụng thư viện Crt }
{ Khai báo biến }
{ Thân chương trình chính }
{ Xóa màn hình }


Writeln (‘Nhap gia tri cua x =’) ;
Readln (x) ;
x:= 0 ;
x:= x + 10 ;
Writeln (‘Gia tri cua x la’ , x );
Readln;
END.

{ Kết thúc chương trình}

5. Kiểm thử chương trình (Testing program):
Chạy thử và tìm lỗi là cơng việc mà người lập trình cần phải làm khi viết
xong chương trình để kiểm tra chương trình của mình. Chương trình là do con

người viết ra, cho nên khó có thể tránh khỏi sự nhầm lẫn. Một chương trình viết
xong chưa chắc đã chạy được ngay trên máy tính để cho ra kết quả mong muốn.
Kỹ năng tìm lỗi, sửa lỗi, điều chỉnh lại chương trình cũng là một kỹ năng quan
trọng của người lập trình. Kỹ năng này có được bằng kinh nghiệm tìm và sửa lỗi
của từng giáo viên hướng dẫn và giảng dạy.
Có 2 loại lỗi cơ bản thường gặp khi lập trình:
+ Lỗi thuật tốn: Lỗi này ít gặp nhất nhưng nguy hiểm nhất. Nếu nhẹ thì
phải điều chỉnh lại thuật tốn, nếu nặng thì có khi phải viết lại một thuật toán mới
từ đầu.
+ Lỗi cú pháp: lỗi này hay gặp nhưng cũng là lỗi dễ sửa nhất. Chỉ cần nắm
vững ngơn ngữ lập trình là đủ. Một người được coi là không biết lập trình nếu khơng
biết sửa lỗi cú pháp. Và đây là lỗi thường gặp nhất đối với học sinh bắt đầu học lập
trình.
Ví du 1: Tìm số lớn nhất trong 3 số nguyên a,b,c được nhập vào từ bàn phím.
Lần 1: Program tim_so_lon_nhat ;
uses crt;
var a,b,c:integer;
begin
clrscr;


write('nhap 3 so=');readln(a,b,c);
if aelse if awrite('so lon nhat la ',a);
readln
End.
Với chương trình này cũng chạy được song đáp số có lúc đúng, có lúc sai
tùy thuộc vào lúc nhập giá trị a, b, c { nếu nhập thứ tự a = 5 ; b= 7; c= 9 thì sẽ cho
ta kết quả số lớn nhất là 7 sai hồn tồn.

Do đó người lập trình cần phải biết cách tìm lỗi. Sữa lỗi, điều chỉnh viết lại
chương trình cũng là kỹ năng quan trọng của người lập trình. Vậy với ví dụ trên để
kết quả ln đúng thì ta có thể viết lại chương trình
Lần 2: Program tim_so_lon_nhat ;
uses crt;
var

a,b,c, max :integer;

begin
clrscr ;
write('nhap 3 so = ') ; readln(a,b,c);
max:=a ;
if max < b then max :=b;
if max writeln ('so lon nhat la ', max);
readln
End.
Nếu nhập:

Lần nhập
1
2
3

A
9
8
7


B
8
7
9

C
7
9
8

Kết quả
9
9
9


Ví dụ 2: Viết chương trình in ra màn hình hình chữ nhật tồn dấu * với chiều
dài và chiều rộng nhập từ bàn phím.
Lần 1: Program hinh_chu_nhat;
Uses crt;
Var i, cd,cr :integer;
Begin
Clrscr;
Write(‘ Nhap chieu dai hinh chu nhat’); readln(cd);
Write(‘ Nhap chieu rong hinh chu nhat’); readln(cr);
For i : = 1 to cd*cr do writeln(‘*’);
Readln
End.
Với chương trình này cũng chạy được song kết quả sai (in ra màn hình một
cột tồn dấu * với chiều dài là diện tích hinh chữ nhật).

Với ví dụ trên để kết quả ln đúng thì ta có thể viết lại chương trình.
Lần 2: Program hinh_chu_nhat ;
Uses crt;
Var i,j, cd,cr:integer;
Begin
Clrscr;
Write(‘ Nhap chieu dai hinh chu nhat’); readln(cd);
Write(‘ Nhap chieu rong hinh chu nhat’); readln(cr);
For i: = 1 to cr do
Begin
for j: = 1 to cd do write(‘*’);
Writeln;
End;
Readln


End.

Ví dụ 3: viết chương trình tính tổng S=

1

1 1
1
  .... 
2 3
n (n được nhập vào từ bàn

phím)
Học sinh viết chương trình khai báo biến S thuộc kiểu dữ liệu ngun

(Integer) thì chương trình sẽ khơng thực hiện được phép tốn tính tổng. Do vậy để
thực hiện được phép tốn thì khai báo biến S là thuộc kiểu dữ liệu thực (Real).
Ví dụ 4: Viết chương trình giải phương trình bậc nhất ax+b=0 với a,b được
nhập vào từ bàn phím.
program ptb1;
var
a,b:real;
begin
write('nhap cac he so='); readln(a,b);
if a<>0 then writeln('phuong trinh vo so nghiem');
else
if b=0 then writeln('phuong trinh co nghiem',-b/a:4:2)
else
writeln('phuong trinh vo nghiem')
readln
end.
Với chương trình trên hồn tồn có thể chạy được song kết quả sẽ không
đúng khi nhập dữ liệu a, b vào . Do vậy ta phải sắp xếp lại thuật toán để cho một
kết quả đúng như yêu cầu :
program ptb1;
var

a,b:real;

begin
write('nhap cac he so=');readln(a,b);
if a<>0 then
if b=0 then writeln('phuong trinh vo nghiem')



else
writeln('phuong trinh co nghiem',-b/a:4:2)
else
writeln('phuong trinh vo so nghiem');
readln
end.
Ví dụ 5: Lỗi sau câu lệnh ta không sử dụng dấu chấm phẩy, hay kết thúc chương
trình khơng có dấu chấm, hay từ khố BEGIN nếu ta viết BE GIN thì sẽ khơng có
nghĩa.
6. Tối ưu chương trình (optimization program):
- Một chương trình chạy đúng khơng có nghĩa là việc lập trình đã xong. Ta
phải sửa đổi lại một vài chi tiết để chương trình có thể chạy nhanh hơn, hiệu quả hơn.
- Thơng thường trước khi kiểm thừ thì ta nên đặt mục tiêu viết chương trình
sao cho đơn giản (miễn chạy ra kết quả đúng là được), sau đó khi tối ưu chương
trình, ta xem lại những chỗ nào viết chưa tốt thì tối ưu lại những mã lệnh để
chương trình ngắn gọn hơn, chạy nhanh hơn.
- Khơng nên viết tới đâu tối ưu mã đến đó (bởi chương trình có mã tối ưu
thường phức tạp và khó kiểm sốt).
- Việc tối ưu chương trình nên dựa theo 4 tiêu chuẩn chính sau:
* Tính tin cậy: Chương trình phải chạy đúng như dự định, mô tả đúng một
giải thuật đúng. Thơng thường khi viết chương trình, ta ln có thói quen kiểm tra
tính đúng đắn của các bước mỗi khi có thể.
* Tính uyển chuyển: Chương trình phải dễ sửa lỗi. Vì ít chương trình nào
viết ra mà hồn hảo ngay được mà vẫn cần phải sửa đổi lại. Chương trình viết dễ
sửa đổi sẽ làm giảm bớt cơng sức của lập trình viên khi phát triển chương trình.
* Tính trong sáng: Chương trình viết ra đễ đọc, dễ hiểu. Để sau một thời
gian dài khi đọc lại còn hiểu mình làm cái gì? Để nếu có điều kiện thì cịn có thể
sửa sai (nếu phát hiện lỗi mới), cải tiến hay biến đổi để được chương trình giả
quyết bài tốn khác. Tính trong sáng của chương trình phụ thuộc rất nhiều vào
cơng cụ lập trình và phong cách lập trình.




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×