Ngôn ngữ lập trình Pascal sử dụng trong giảng dạy và học tập nhằm rèn luyện, phát triển tư duy cho sinh viên về phương pháp lập trình, giúp cho sinh viên viết được các chương trình, giải
Trang 1TRƯỜNG ĐẠI HỌC QUẢNG BÌNH
ThS Lê Minh Thắng
GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH PASCAL
(DÀNH CHO CÁC LỚP CAO ĐẲNG CNTT)
LƯU HÀNH NỘI BỘ
QUẢNG BÌNH, 2016
Trang 2GIỚI THIỆU
Ngôn ngữ Pascal là một ngôn ngữ lập trình cấp cao, ngôn ngữ lập trình mang tính cấu trúc và định kiểu chặt chẽ Ngôn ngữ Pascal được sử dụng tương đối phổ biến trong các trường học, đặc biệt là bậc trung học và đại học Ngôn ngữ lập trình Pascal
sử dụng trong giảng dạy và học tập nhằm rèn luyện, phát triển tư duy cho sinh viên về phương pháp lập trình, giúp cho sinh viên viết được các chương trình, giải quyết các bài toán một cách rõ ràng, mạch lạc và chạy được trên máy tính điện tử Giáo trình Ngôn ngữ lập trình Pascal này cũng không ngoài mục đích trên, nhằm cung cấp cho sinh viên các kiến thức cơ bản về ngôn ngữ lập trình Pascal Giáo trình gồm có tất cả
11 chương như sau:
Chương 1 Mở đầu:
Chương 2 Các thành phần ngôn ngữ Pascal
Chương 3 Các kiểu dữ liệu chuẩn
Chương 4 Câu lệnh có cấu trúc điều khiển
Chương 5.Chương trình con
Chương 6 Kiểu vô hướng: liệt kê & miền con, kiểu cấu trúc: tập hợp
Chương 7 Kiểu mảng
Chương 8 Kiểu chuỗi ký tự
Chương 9 Kiểu bản ghi
Chương 10 Kiểu tập tin
Chương 11 Kiểu con trỏ
Giáo trình Ngôn ngữ lập trình Pascal này đáp ứng phục vụ giảng dạy và học tập cho hệ Cao đẳng chuyên ngành CNTT, Toán Tin, Lý Tin Trình bày chi tiết nhưng ngắn gọn, trong các phần trình bày nội dung lý thuyết luôn luôn có các câu hỏi, bài tập
và các ví dụ minh họa
Quá trình biên soạn Giáo trình, mặc dù đã cố gắng tham khảo nhiều tài liệu để hoàn thiện Giáo trình, song không sao tránh khỏi thiếu sót, rất mong nhận được ý kiến đóng góp từ các sinh viên, độc giả và đồng nghiệp Xin chân thành cảm ơn
Tác giả
ThS Lê Minh Thắng
Trang 3CHƯƠNG 1 MỞ ĐẦU
1 GIỚI THIỆU NGÔN NGỮ PASCAL
1.1 Xuất xứ ngôn ngữ pascal
Pascal là ngôn ngữ lập trình cấp cao, do giáo sư Niklaus Wirth ở trường Đại học Zurich (Thuỵ Sĩ) thiết kế và công bố vào năm 1971 Ông đặt tên cho ngôn ngữ này là
Pascal để tưởng nhớ đến nhà toán học nổi tiếng Blaise Pascal người Pháp thế kỷ 17
* Turbo Pascal: Pascal là một ngôn ngữ chủ yếu dùng để dạy và học, nhờ tính đa
năng và chặt chẽ của nó nên càng ngày càng được nhiều người sử dụng Các hãng phần mềm dựa vào các chuẩn mực của ngôn ngữ để thêm bớt và thương mại hoá với nhiều loại khác nhau:
- ISO Pascal: Pascal chuẩn ISO (International Standard Organization)
- ANSI Pascal: Pascal của Viện tiêu chuẩn Hoa Kỳ (American National Standard Institute)
- Turbo Pascal: Pascal của hãng Borland
- IBM Pascal: Pascal của trường Đại học tổng hợp California ở San Diego
- Pascal chạy trên máy tính VAX
* Các phiên bản củaTurbo Pascal:
- Version 5.0 và 5.5 năm 1989 của hãng Borland
- Version 6.0
- Version 7.0 năm 1992 (hiện nay sử dụng chủ yếu củaTurbo Pascal 7.0)
1.2 Đặc điểm của ngôn ngữ Pascal
- Ngôn ngữ có tính định kiểu chặt chẽ: các biến, các hằng trong một biểu thức
phải có cùng kiểu dữ liệu Điều đó có nghĩa là các biến, hằng có kiểu dữ liệu khác nhau thì phải chuyển đổi để có cùng kiểu dữ liệu
- Ngôn ngữ mang tính cấu trúc: ngoài những điểm giống với ngôn ngữ Algol và
ngôn ngữ C, Pascal còn có một số đặc điểm riêng, đó là có thể tách các dữ liệu và các tác vụ (statement) cần dùng cho một nhiệm vụ nhất định thành một khối riêng và khối
đó được 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 từng phần một
Ngôn ngữ Pascal, ngôn ngữ lập trình có tính cấu trúc thể hiện trên 3 mặt sau:
+ Cấu trúc về mặt dữ liệu: Từ các dữ liệu chuẩn hay dữ liệu cấu trúc, người lập
trình có thể xây dựng các kiểu dữ liệu phức tạp hơn
+ Cấu trúc về mặt câu lệnh: Từ các câu lệnh đơn hay câu lệnh cấu trúc người lập
trình có thể nhóm chúng lại với nhau và để đặt giữa 2 từ khoá BEGIN END thành câu lệnh phức tạp hơn gọi là câu lệnh phức hay câu lệnh ghép
+ Cấu trúc về mặt chương trình: Một chương trình có thể chia thành nhiều
chương trình con dưới dạng các thủ tục, các hàm, các đơn thể (modules), các đơn vị
Trang 4(Units) độc lập với chương trình chính mà sự tương tác giữa chúng là dữ liệu đưa vào
và nhận lại kết quả
1.3 Khởi động và thoát khỏi Pascal
* Khởi động Pascal:
Trên các môi trường có thể thực hiện như sau:
- Môi trường MS-DOS: - C:\> CD BP\BIN (Turbo Pascal 7.0)
- C:\ BP\BIN>Turbo
- Môi trường Windows: Kích đúp vào biểu tượng: Turbo Pascal
* Thoát khỏi Pascal:
- Môi trường MS-DOS: có thể chọn một trong hai cách sau:
2 THUẬT TOÁN (Algorithm)
2.1 Khái niệm thuật toán
Thuật toán là một dãy các câu lệnh chặt chẽ và rõ ràng xác định một trình tự các thao tác trên một số đối tượng nào đó sao cho sau một số hữu hạn bước thực hiện ta đạt được kết quả mong muốn
Lưu ý kết quả của thuật toán không phụ thuộc vào người thực hiện
2.2 Các tính chất của thuật toán
- Tính phổ dụng: Thuật toán không chỉ để giải quyết một bài toán riêng lẻ mà được dùng để giải quyết một lớp các bài toán (có thể là vô hạn) các bài toán cùng loại Tính hữu hạn: Thuật toán phải được kết thúc sau một số hữu hạn bước thực hiện các thao tác Một thuật toán không có tính hữu hạn là không khả thi
- Tính xác định: Thuật toán đòi hỏi mỗi bước thao tác phải rõ ràng và xác định một cách đơn trị bước tiếp theo
- Tính hiệu quả: thể hiện ở các yêu cầu sau:
+ Tính đúng đắn
+ Tính tối ưu: tiết kiệm thời gian thực hiện, tiết kiệm bộ nhớ
2.3 Các đại lượng của thuật toán
- Đại lượng vào: là những đại lượng cho trước làm cơ sở cho việc hình thành nên
bài toán
- Đại lượng ra: thường là kết quả sau khi đã thực hiện xong thuật toán và đó
cũng chính là yêu cầu của bài toán
- Đại lượng trung gian: là các đại lượng tham gia vào quá trình để giải bài toán
nhưng không phải là đại lượng vào mà cũng chẳng phải là đại lượng ra
Trang 5Ví dụ: bài toán giải phương trình bậc 2: ax2
+ bx + c = 0 (a≠0)
Đại lượng vào là các hệ số a,b,c
Đại lượng ra là: hoặc là nghiệm kép, hoặc là 2 nghiệm phân biệt hoặc là một câu thông báo vô nghiệm
Đại lượng trung gian: delta = b2
- 4ac
- Hằng, biến, kiểu:
Để biểu diễn các đại lượng của thuật toán ta cần sử dụng các hằng, biến và phải
có kiểu dữ liệu nhất định
+ Hằng: là đại lượng không thay đổi trong quá trình thực hiện thuật toán
+ Biến: là đại lượng có thể thay đổi giá trị trong quá trình thực hiện thuật toán + Kiểu: là tập hợp các giá trị (miền trị) mà các đại lượng có thể nhận, đồng thời
với việc quy định các phép toán tác động trên đó
2.4 Biểu diễn của thuật toán [1], [2]
2.4.1 Các dạng biểu diễn của thuật toán
Để biểu diễn thuật toán, có thể thực hiện theo các dạng sau:
- Liệt kê các bước
- Cấu trúc theo ngôn ngữ quy ước của thuật toán
- Sơ đồ khối (lưu đồ)
2.4.2 Biểu diễn thuật toán bằng sơ đồ khối
Đây là dạng biểu diễn có cấu trúc trực quan, rõ ràng
* Các kí hiệu dùng để biểu diễn thuật toán:
Dùng để chỉ sự bắt đầu, kết thúc của thuật toán
Dùng để chỉ việc nhập dữ liệu và xuất dữ liệu Dùng để biểu diễn các thao tác của thuật toán (tính toán)
Dùng để kiểm tra điều kiện (quyết định)
Dùng để chỉ hướng đi của thuật toán (lưu đồ)
Ngoài ra, còn có thể sử dụng ký hiệu : = để biểu diễn cho việc gán giá trị cho các biến
Ví dụ, vẽ sơ đồ thuật toán để tìm ước số chung lớn nhất của 2 số nguyên dương
m và n
Dữ liệu vào: m,n
Dữ liệu ra: ước số chung lớn nhất của 2 số
Trang 6Lưu đồ thuật toán:
3 KHÁI NIỆM VỀ LẬP TRÌNH CẤU TRÚC
Tổ chức chương trình: Tổ chức chương trình thành hệ phân cấp và phải điều
khiển mối tương tác giữa các thành phần trong hệ sao cho mức tương tác là tối thiệu
Có thể minh hoạ cách tổ chức chương trình tương tự sơ đồ dưới đây:
Sự phân chia các thành phần trong hệ cho tới thành phần của cấp thấp nhất không thể phân chia được nữa thì thành phần ở cấp thấp nhất đó là thành phần cơ bản
Mỗi thành phần trong hệ nên thiết kế lập mối tương tác tối thiểu lên các thành phần khác sao cho sự giao tiếp đó là rõ ràng và có thể kiểm soát được Ý tưởng đầu tiên của lập trình cấu trúc là “chia một bài toán phức tạp thành các bài toán đơn giản”
Trình tự: lập trình cấu trúc là lập trình từ trên xuống Từ trước tới nay có hai
cách lập trình:
- Lập trình từ dưới lên: là xây dựng những vấn đề cụ thể rồi sau đó mới ghép nối
lại với nhau để trở thành một bài toán lớn Cách này có nhược điểm là không thể hình
End n:=n-m
USCLN:=m
Trang 7dung được tính tổng quát của bài toán
- Lập trình từ trên xuống: lập trình từ trên xuống là cách phân tích tổng quát bài
toán rồi sau đó mới giải quyết từng vấn đề cụ thể
Không cần lệnh Goto: lập trình không cần đến câu lệnh Goto để rẽ nhánh chương
trình Câu lệnh Goto làm cho chương trình rườm rà, khó hiểu, khó đọc, khó kiểm soát
Sự biến đổi: lập trình cấu trúc cho phép biến đổi bài toán có sơ đồ khối lớn, phức
tạp thành các sơ đồ khối nhỏ dạng chuẩn sao cho chúng có thể diễn đạt được bằng một
số ít các cấu trúc điều khiển cơ bản
Chương trình rõ ràng, sáng sủa: lập trình theo tuần tự từ trên xuống, kết hợp với
các chú thích, nên dễ dàng kiểm tra tính đúng đắn của chương trình Với ý tưởng này, khi viết một chương trình, bản thân nó toát lên những câu hỏi và trả lời: “Làm gì ? Làm như thế nào ? Tại sao"
4 CÁC BƯỚC LẬP TRÌNH
Để lập một chương trình cho máy tính gồm các bước sau:
Bước 1: Tìm hiểu mục đích, yêu cầu của bài toán
Để giải quyết bài toán cần trước hết phải tìm hiểu mục đích, yêu cầu của bài toán Sau khi nắm chắc nội dung của bài toán, người lập trình dễ dàng tìm được các phương pháp, các công cụ để giải bài toán đó
Bước 2: Mô tả giải thuật và vẽ lưu đồ
Sau khi tìm hiểu mục đích, yêu cầu bài toán, sử dụng ngôn ngữ toán học để diễn đạt ý tưởng Trong lập trình cần thiết sẽ sử dụng ngôn ngữ giải thuật, sau đó vẽ lưu đồ
để mô phỏng giải thuật và thứ tự các bước cần thực hiện
Bước 3: Viết chương trình
Sau khi phân tích, thiết kế các giai đoạn, mô tả giải thuật và vẽ lưu đồ, ta sẽ dùng một ngôn ngữ lập trình để viết chương trình chạy trên máy tính
Bước 4: Nhập và chạy thử chương trình
Gõ nội dung chương trình vào máy tính và tiến hành chạy thử, chú ý lỗi chính tả
và các cú pháp câu lệnh của ngôn ngữ
Bước 5: Sửa chữa chương trình và kiểm tra kết quả
Khi chạy chương trình, nếu có lỗi, hệ thống sẽ thông báo kiểu lỗi và vị trí có lỗi
ra màn hình, tại đây có thể sửa lỗi Khi chương trình đã chạy thông suốt, cần kiểm tra kết quả của chương trình Kiểm tra thứ tự ưu tiên tính toán trong các biểu thức, thường
dễ dẫn đến sai kết quả
Bước 6: ứng dụng và bảo quản chương trình
Sau khi kiểm tra chương trình, nếu không có sai sót, có thể được ứng dụng, đồng thời sao lưu bảo quản chương trình nguồn đảm bảo an toàn Trong quá trình sử dụng muốn bổ sung thay đổi, cần hiệu chỉnh lại chương trình nguồn để đáp ứng những yêu cầu cần thiết
Trang 8CÂU HỎI, BÀI TẬP
Trình bày thuật toán bằng phương pháp vẽ sơ đồ khối để giải các bài toán sau đây:
1 Tính tổng S= 1 + 2 + 3 + + n
(Với n nguyên dương bất kỳ và không dùng công thức S=n(n+1)/2)
2 Tính tổng S = 1 * 2 * 3 * * n (dấu * ký hiệu cho phép nhân)
3 Tính tổng S = 1 + 1 * 2 + 1*2*3 + + 1*2*3* *n
4 Tìm số lớn nhất trong 3 số nguyên nhập vào từ bàn phím
5 Tìm ước số chung lớn nhất của 2 số nguyên dương
6 Tìm tất cả các số nguyên tố trong các số nguyên từ 1 đến n (n>=3)
7 Tính tổng của các số nguyên dương nhập vào từ bàn phím
Trang 9Chương 2 CÁC THÀNH PHẦN CỦA NGÔN NGỮ PASCAL
1 CÁC KÝ HIỆU VÀ TỪ KHOÁ PASCAL
Mỗi ngôn ngữ lập trình luôn có bộ từ khoá
- Từ: là một dãy liên tiếp các ký tự không chứa ký tự trắng và ký tự điều khiển
- Từ khóa: là từ dành riêng của Pascal với chức năng và cú pháp được quy định
sẵn Vì vậy khi sử dụng từ khoá cần phải theo đúng quy định
Ví dụ các từ khoá: Begin, end, if, then, const, var, function,
1.3 Các tên chuẩn và tên tự đặt
- Tên chuẩn : Trong ngôn ngữ Pascal được thiết lập một danh sách các tên chuẩn
cho các kiểu dữ liệu, các biến, các thủ tục và các hàm định sẵn trong thư viện chuẩn Chú ý: Turbo Pascal cho phép người dùng có thể định nghĩa lại các tên chuẩn để
dùng vào các công việc khác
- Tên tự đặt: Các tên tự đặt dùng để chỉ các hằng, các kiểu, các biến, các hàm, các
thủ tục, các unit, các tên chương trình, các trường trong các kiểu bản ghi
Tên có thể có chiều dài tuỳ ý nhưng giới hạn bởi chiều dài của dòng là 127 ký tự Tuy nhiên chỉ có 63 ký tự đầu tiên là có ý nghĩa
Tên phải bắt đầu là chữ cái, các ký tự khác không được dùng ký tự trắng hoặc là
ký tự đặc biệt Tốt nhất nên dùng ký tự là chữ cái, chữ số hoặc dấu gạch dưới
Tên là do người sử dụng đặt, nhưng đặt tên không được trùng với từ khoá
Trang 102 CẤU TRÚC CHUNG CỦA MỘT CHƯƠNG TRÌNH PASCAL
2.1 Cấu trúc chung một chương trình
Một chương trình của Turbo Pascal gồm 3 phần
- Tiêu đề
- Khai báo và định nghĩa
- Thân chương trình
Chi tiết các phần như sau:
1 Program Tên chương trình; } Tiêu đề:
2 Uses Các đơn vị chương trình;
3 Const Định nghĩa các hằng;
4 Type Định nghĩa kiểu dữ liệu người dùng; Các khai báo & định nghĩa
5 Var Khai báo các biến toàn cục;
* Phần tiêu đề: Từ khóa để khai báo là Program, tiếp sau là tên của chương trình do
người dùng từ đặt, sau tên là dấu ";" Tên có tác dụng gợi nhớ đến nội dung của chương trình Tuy nhiên phần này không bắt buộc phải có
(Lưu ý: tên của chương trình phải theo đúng quy cách tên của Turbo Pascal)
* Phần khai báo và định nghĩa:
Uses: Dùng để khai báo các Unit (đơn vị chương trình) của Turbo Pascal
Nếu có nhiều unit thì sử dụng dấu phẩy " , " để ngăn cách
Const: Dùng để khai báo các hằng
Cú pháp: Tên_hằng = Giá trị;
Type: Dùng để định nghĩa các kiểu dữ liệu của người dùng
Cú pháp: Tên _kiểu = định nghĩa cụ thể cho từng kiểu;
Var: Khai báo biến
Cú pháp: Tên_ biến : Kiểu dữ liệu;
(Hoặc khai báo trực tiếp không thông qua kiểu Type.)
Nếu có nhiều biến cùng kiểu thì sử dụng dấu phẩy " , " để ngăn cách
Procedure: Định nghĩa chương trình con dạng thủ tục
Function: Định nghĩa chương trình con dạng hàm
Lưu ý: Tùy từng chương trình cụ thể mà trong chương trình có thể có các phần khai
báo và định nghĩa phù hợp, có chương trình có phần khai báo, định nghĩa này mà không có khai báo, định nghĩa kia hoặc ngược lại, thậm chí có chương trình không cần đến một khai báo hay định nghĩa nào cả
Trang 11* Phần thân chương trình:
- Bắt đầu bằng từ khóa Begin và kết thúc bởi từ khóa End
- Giữa cặp từ khóa này là các câu lệnh của chương trình
- Nếu có nhiều câu lệnh thì sử dụng chấm dấu ” ; ” để ngăn cách các lệnh Phần này bắt buộc phải có
- Sau từ khoá End có dấu chấm (.) báo hiệu kết thúc toàn bộ chương trình
Như vậy chương trình đơn giản nhất là: Begin
End
2.2 Một số quy định khi viết chương trình
- Khi soạn thảo chương trình, Turbo Pascal không phân biệt chữ hoa hay chữ thường
- Các dòng chương trình: Mỗi dòng chương trình độ dài tối đa là 127 ký tự, kết thúc dòng lệnh có dấu chấm phẩy " ; " Nếu muốn xuống hàng nhưng vẫn hiểu là một dòng lệnh thì sử dụng dấu phẩy " , "
- Turbo Pascal cũng sử dụng dấu chấm phẩy " ; " để kết thúc phần này chuyển qua phần khác cũng như giữa khai báo này qua khai báo khác của chương trình
- Các chú thích: Khi soạn thảo chương trình cho phép đưa vào các câu chú thích nhưng phải được đặt trong cặp dấu móc { } hoặc * *
- Các chỉ thị chương trình dịch: Một số đặc điểm chương trình dịch của turbo pascal được điều khiển qua các chỉ thị chương trình dịch Các chỉ thị chương trình dịch được bắt đầu bằng dấu $ sau đó là tên các chỉ thị dịch, chúng được cách nhau bởi dấu phẩy
" , " và toàn bộ được đặt giữa hai dấu ngoặc nhọn { }, không có ký tự trống
Ví dụ {$I-}
{$R-,B+,V-}
3 MỘT SỐ PHÍM THƯỜNG DÙNG [1], [2], [5]
- Các phím chức năng: các phím chức năng sau đây chỉ áp dụng cho Turbo Pacsal 6.0
và Turbo Pacscal 7.0, Borland Pascal 7.0 chạy trong môi trường MS-DOS
F1 Help: Trợ giúp
F2 Save: Lưu văn bản chương trình
F3 Open: Mở tập tin chương trình từ đĩa vào cửa sổ soạn thảo
Atl + F9 Compile: Biên dịch lại một unit có sửa đổi
F9 Make: Biên dịch lại một unit có sửa đổi
F10 Menu bar: Thao tác với thanh menu
Atl + F10 Local menu: thao tác với Menu cục bộ
- Các phím và lệnh soạn thảo
- Sang ký tự bên trái con trỏ <Ctrl + S> hoặc <>
- Sang ký tự bên phải con tỏ <Ctrl + D> hoặc <>
- Sang từ (word) bên trái con trỏ <Ctrl + A> hoặc <Ctrl + >
Trang 12- Sang từ (word) bên ph ải con trỏ <Ctrl + F> hoặc <Ctrl + >
- Các lệnh về khối
- Đẩy thụt vào (sang phải) một khối <Ctrl + K I>
Trang 13- Đánh dấu một dòng <Ctrl + K L>
- Di chuyển một khối vào clipboard <Shift + Del>
- Dán khối từ clipboard vào vị trí con trỏ <Shift + Ins>
- Đánh dấu ký tự ở bên trái con trỏ <Shift + >
- Đánh dấu một ký tự ở bên phải con trỏ <Shift + >
- Đánh dấu cùng cột, dòng trên <Shift + >
- Đánh dấu cùng cột, dòng dưới <Shift + >
- Đánh dấu một từ ở ngay con trỏ <Ctrl + K T>
- Đánh dấu một từ ở bến trái con trỏ <Shift + Ctrl + >
- Đánh dấu một từ ở bên phải con trỏ <Shift + Ctrl + >
- Các lệnh khác
- Nạp một tập tin từ đĩa vào bộ nhớ <F3>
- Lặp lại lệnh tìm kiếm sau cùng <Ctrl + L>
4 HẰNG, KIỂU, BIẾN, BIỂU THỨC, CÂU LỆNH
4.1 Hằng
Hằng là đại lượng có giá trị không đổi trong suốt quá trình chương trình hoạt động Các hằng có thể được định nghĩa thông qua một tên gọi là tên hằng
Trang 14* Cú pháp để định nghĩa hằng như sau:
CONST Tên hằng = giá trị;
Ví dụ: Const Max = 100; CH ='A' ;
Ví dụ: Type Songuyen = Integer;
Var Danh_sách_biến : kiểu_dữ_liệu;
Trang 15Trong đó: - Danh sách biến: các biến cách nhau dấu phẩy ( , )
- Nếu có nhiều kiểu dữ liệu thì có thể viết nhiều dòng khai báo
Ví dụ: Var: m,n : Integer; x,y: Real;
* Toán hạng: là một trong các đại lƣợng có thể là các hằng, biến, hàm, biểu thức
* Toán tử: là các phép toán tác động lên dữ liệu, nhƣ các phép toán số học, quan hệ,
luận lý
Ví dụ:
Biểu thức nguyên: giá trị trả về là một số nguyên: 3 + 5 - 2 * 4 0
Biểu thức số thực: giá trị trả về là một số thực: 9 / 2 - 4 0.5 Biểu thức logic : giá trị trả về kiểu boolean: true hoặc false:
(2+5) > (5+10) false
(2 +5) < (5+10) True
'A' > 'B' false
Thứ tự ƣu tiên của các phép toán trên biểu thức:
1 Các phép toán 1 ngôi: Phép toán đảo dấu (lấy số đối); cặp dấu ngoặc( );
Trang 164.5.1 Câu lệnh đơn giản
* Phép gán: dùng để gán giá trị cho một biến nào đó, ký hiệu : =
- Cú pháp: Tên biến : = biểu thức;
- Ý nghĩa: giá trị vế phải đựơc tính toán đem lưu trữ vào biến ở vế trái
- Chú ý: Tên biến và giá trị biểu thức phải cùng kiểu dữ liệu
Ví dụ: a:=10; a:= a * 2;
* Lời gọi thủ tục:
Dùng để gọi một thủ tục chuẩn hoặc thủ tục do người dùng định nghĩa
Cú pháp: Tên thủ tục (danh sách tham số);
Danh sách tham số có thể có hoặc không, được đặt trong dấu ngoặc ( ), bao gồm các biến các biểu thức, được đặt phân cách với nhau bởi dấu phẩy
Ví dụ: Begin
Câu lệnh 1;
Câu lệnh 2;
Begin Câu lệnh 3; câu lệnh phức hợp Câu lệnh 4;
- Câu lệnh điều kiện: IF, Case
- Câu lệnh lặp For, While, Repeat
Trang 175 THỦ TỤC NHẬP, XUẬT DỮ LIỆU
5.1 Thủ tục nhập dữ liệu từ bàn phím
(1) Read (biến 1, biến 2, ,biến n);
(2) Readln (biến 1, biến 2, ,biến n);
(3) Readln;
Dạng (1): Nhập dữ liệu từ bàn phím có kiểu tương ứng và gán cho các biến, khi
viết các biến phân cách nhau bởi dấu phẩy (,) khi nhập dữ liệu các giá trị phân cách nhau một khoảng trống, sau đó phải gõ phím Enter để kết thúc việc nhập Sau khi nhập xong dữ liệu, con trỏ ở cùng hàng với dữ liệu
Ví dụ: Read ( x,y,z);
Quy tắc nhập: 10 15 20
Dạng (2): Nhập tương tự như dạng (1) nhưng sau khi nhập dữ liệu thì con trỏ
chuyển xuống dòng dưới
Ví dụ:
Write ('Nhap cac so:');
Readln (so1, so2);
Dạng (3): tác dụng chờ nhấn một phím, thông thường dùng để dừng màn hình xem
kết quả
Ví dụ: Write ('Nhap cac so:');
Readln (so1, so2);
Writeln ('Tong =', so1 + so2);
Writeln ('Hieu =', so1 - so2);
Readln;
5.2 Thủ tục xuất dữ liệu
* Xuất dữ liệu ra màn hình:
(1) Write('Thông báo', dữ liệu);
(2) Writeln('Thông báo', dữ liệu);
(3) Writeln;
Dạng (1): Write có thể có hoặc không có thông báo Nếu có thì thông báo phải để
trong cặp dấu nháy đơn ( ' ' ) Sau khi xuất dữ liệu, con trỏ nằm cùng hàng với câu lệnh Nếu xuất nhiều dữ liệu thì phải cách nhau bởi dấu phẩy (,)
Ví dụ: Write ('Nhap tu ban phim cho so1=');
Readln (so1);
Wrile ('So vua nhap la :',so1);
Dạng (2): Writeln tác dụng tương tự dạng (1) nhưng sau khi xuất dữ liệu thì con trỏ
chuyển xuống dòng dưới
Dạng (3): tác dụng cách một dòng trống, tương tự chèn thêm một dòng
Ví dụ: a:=5;
Trang 18Wrirte (a,b, a +b);
Wrirteln;
Chú ý: - Dữ liệu có thể là hằng, biến, biểu thức, hàm
- Giá trị của các biểu thức trong câu lệnh Write, writeln phải có kiểu chuẩn
Ví dụ: Write ('Tich cua a và b la ', a*b);
* Xuất dữ liệu theo khuôn dạng:
- Số nguyên: Write(dữ liệu : n);
Ý nghĩa: giá trị của biểu thức sẽ được ghi lên màn hình theo chế độ căn phải, trong
đó n là số vị trí (cột) dành để ghi dữ liệu
- Số thực: Write (dữ liệu: n: m); n,m là số nguyên dương n > m
Ý nghĩa: giá trị của biểu thức sẽ được ghi lên màn hình theo chế độ căn phải, trong
đó n là số vị trí (cột) dành để ghi dữ liệu, m là số chữ số thập phân cần lấy
Ví dụ: a: = 350.4769;
WRITE(a:10:3); _ _ _350.477
* Xuất dữ liệu ra máy in
Trước khi xuất dữ liệu ra máy in ở đầu chương trình phải khai báo Unit Printer bằng câu lệnh:
Uses Printer;
Sau đó thực hiện lệnh xuất ra máy in, cú pháp như sau:
Write (LST, 'Thông báo:', dữ liệu); (1) Writeln (LST,'Thông báo:', dữ liệu); (2)
Dạng 1: Sau khi in, đầu in ở cùng dòng
Dạng 2: Sau khi in đầu in xuống dòng dưới
Trang 19CÂU HỎI, BÀI TẬP
1 Viết chương trình nhập vào 2 số nguyên, sau đó tính tổng, hiệu, tích của 2 số và xuất ra màn hình các kết quả
2 Viết chương trình tính lương của một nhân viên theo công thức sau:
Tiền lương = Bậc lương/30 * ngày công * Hệ số + Phụ cấp
3 Viết chương trình tính chu vi, diện tích của hình tròn khi nhập bán kính từ bàn phím
4 Viết chương trình nhập vào số nguyên N sau đó xuất ra màn hình các chữ số biểu
diễn số đó Ví dụ N = 123 thì xuất ra màn hình là 00123
5 Viết chương trình thực hiện các phép toán DIV, MOD
6 Viết chương trình tính điểm trung bình của 5 môn học của một học sinh, với:
Trang 20Chương 3 CÁC KIỂU DỮ LIỆU CHUẨN
1 CÁC KIỂU DỮ LIỆU CỦA PASCAL
Ngôn ngữ Pascal có các loại kiểu dữ liệu sau:
* Kiểu đơn giản (kiểu vô hướng)
+ Các kiểu dữ liệu chuẩn:
+ Kiểu bản ghi (Record)
+ Kiểu tập tin (File)
* Kiểu chuỗi (String)
* Kiểu con trỏ (Pointer)
* Ngoài một số kiểu dữ liệu chuẩn, người lập trình còn được phép tự định nghĩa kiểu
dữ liệu của riêng mình
Trang 21DIV phép chia lấy phần nguyên
MOD phép chia lấy phần dƣ
/ Chia 2 số nguyên cho nhau kết quả là số thực
Ví dụ: 9 DIV 2 = 4, 9 MOD 2 = 1
2.3 Các hàm chuẩn
x:=x-r (ví dụ: dec(10,2)=8)
* Lưu ý: Kiểu dữ liệu số nguyên có tính đếm được và nó có thứ tự, tính đếm được và
số thứ tự như trong Toán học
Trang 223 KIỂU SỐ THỰC
3.1 Các kiểu dữ liệu số thực
a Kiểu Real: được lưu trữ trong 6 byte, trong đó có phần nguyên và phần thập phân
được cách nhau bởi dấu chấm (dấu phẩy)
b Các kiểu dữ liệu số thực mở rộng khác
Các cách biểu diễn số thực: có 2 cách
- Biểu diễn bằng dấu chấm tĩnh: loại có dấu chấm thập phân Ví dụ: 352.435
- Biểu diễn bằng dấu chấm động: loại dấu chấm động có cấu tạo gồm 2 phần:
+ Phía bên trái chữ E là phần định trị
+ Phía bên phải chữ E là phần luỹ thừa
Ví dụ 3.512 = 35.12000000 E - 01 = 35.12.10-1
= 0.03512000 E + 2 = 0.03512.102
= 0.00035120 E + 4 = 0.0003512.104
- Các phép toán: +, -, *, /, như trong toán học
- Trong số thực không có các phép toán DIV & MOD
- Kiểu dữ liệu Real có thứ tự nhưng không đếm được
3.2 Các hàm chuẩn kiểu số thực
Ví dụ: abs (-3)=3 abs (3)=3 SQR (x) Real/ nguyên Real/ nguyên Bình phương của x: x2
SQR (3)= 9 : SQR (-3) =9
Ví dụ: SQRT (25) = 5
(Longint)
lấy phần nguyên của x
Ví dụ: Trunc(35.75) = 35
Trang 23Frac (x) Real Real Lấy phần lẻ của số thực x
- Các phép toán Logic: AND, OR, XOR, NOT
Các hàm: Odd(x), Pred(x), Succ(x)
Ví dụ: Odd(False)=0, Odd(True)=1, Pred(False)=true, Succ(False)=true
5 KIỂU KÝ TỰ (Char)
Kiểu ký tự bao gồm các ký tự có trong bảng mã ASCII
Kiểu ký tự có tính thứ tự và đếm đƣợc theo thứ tự của bảng mã ASCII, ký tự nào
có số thứ tự trong bảng mã ASCII bé thì ký tự đó bé hơn
>= So sánh lớn hơn hoặc bằng 'A' >='B'False
<= So sánh nhỏ hơn hoặc bằng 'A' <='B' True
* Các hàm chuẩn kiểu Char
Trong kiểu Char, mỗi ký tự đƣợc đặt bên trong 2 dấu nháy đơn Ví dụ: 'A' , 'C' Giả sử cho ch là 1 ký tự kiểu Char, ta có một số hàm sau:
Trang 24- Hàm Ord(ch) = cho kết quả là 1 số nguyên kiểu byte là số thứ tự mã ASCII của ký
tự ch Ví dụ: Ord('A') = 65
- Hàm Chr(n): cho kết quả là ký tự có số thứ tự mã ASCII là n
Ví dụ: Chr(65) = 'A' Cách ghi khác là dùng dấu thăng # trước số n :
Ví dụ: Chr(65) = 'A' hoặc #65 = 'A'
- Pred(ch): cho kết quả là ký tự đứng trước ký tự ch
Ví dụ: Pred ('B') = 'A'
- Succ (ch)= cho kết quả là ký tự đứng liền sau ký tự ch
Ví dụ: Succ (' B ') ='C'
- Upcase(ch) đổi chữ thường ra chữ hoa Ví dụ: Upcase ('a') = 'A'
- Inc(ch, r) tăng ký tự ch lên r phần tử Ví dụ: Inc('M',2) = 'O'
- Dec(ch, r) giảm ký tự ch xuống r phần tử Ví dụ: Dec('M',2) = 'K'
Trang 25CÂU HỎI, BÀI TẬP
1 Viết chương trình thực hiện nhập 1 số nguyên x, sau đó thực hiện các phép toán để tính và cho hiển thị lên màn hình các hàm:
Succ(x)
Sqr(x)
Sqrt(x)
Ln(x)
2 Viết chương trình thực hiện nhập 2 số nguyên, sau đó đổi chỗ 2 số đó
3 Viết chương trình thực hiện tính thể tích hình cầu, có bán kính nhập vào từ bàn
phím Cho thể tích hình cầu: v:=4/3*pi*r*r*r;
4 Viết chương trình thực hiện nhập vào hai ký tự, sau đó thực hiện cộng 2 ký tự và in kết quả ra màn hình
5 Viết chương trình thực hiện nhập vào một ký tự rồi in ra mã ASCII của ký tự đó
6 Viết chương trình nhập vào một số thứ tự mã ASCII rồi in ra ký tự tương ứng
7 Viết chương trình nhập vào một ký tự chữ thường, sau đó đổi thành chữ HOA
8 Viết chương trình nhập vào một ký tự chữ HOA, sau đó đổi thành chữ thường
9 Viết chương trình tách một số nguyên n nhập vào từ bàn phím thành 2 số a và b
Trang 26Chương 4 CÂU LỆNH CÓ CẤU TRÚC ĐIỀU KHIỂN
1 CÂU LỆNH CẤU TRÚC ĐIỀU KIỆN IF [1], [6]
1.1 Cấu trúc If Then (thiếu)
Cú pháp:
IF <BTLG> Then <câu lệnh>;
Lưu đồ cú pháp:
Ý nghĩa:
Nếu biểu thức logic BTLG có giá trị đúng (True) thì thi hành câu lệnh sau then
rồi tiếp tục thực hiện các lệnh khác của chương trình,
Nếu BT_logic sai (False) thi bỏ qua câu lệnh sau then để thực hiện các lệnh khác
Writeln('TIM SO LON NHAT TRONG 2 SO NGUYEN');
Write('-Nhap so thu nhat: '); Readln(so1);
Write('-Nhap so thu hai : '); Readln(so2);
If so1 > so2 Then Writeln('So thu nhat la so lon nhat');
If so2 > so1 Then Writeln('So thu hai la so lon nhat');
Trang 27Writeln('TIM SO LON NHAT TRONG 2 SO NGUYEN');
Write('-Nhap so thu nhat: '); Readln(so1);
If so1 > so2 Then
Writeln('+So thu nhat la so lon nhat') Else
Readln;
End
1.3 Cấu trúc If Then Else mở rộng
If <BTLG1 > Then câu lệnh 1 Else
If <BTLG2> then câu lệnh 2 Else
IF <BTLG3> then
câu lệnh 3 Else
câu lệnh ;
BT_logic
câu lệnh 1 câu lệnh 2
BT LG
Trang 281.4 Cấu trúc If Then Else lồng nhau
If <BTLG1 > Then
If <BTLG2> Then câu lệnh
Else câu lệnh Else
If <BTLGn > Then câu lệnh
Else câu lệnh ;
Ví dụ 1: Viết chương trình giải phương trình ax+b=0
Writeln(„nghiem duy nhat la: „, x:5:2 );
End Else
If b<>0 then Writeln(„phuong trinh vo nghiem‟)
Else Write(„PT vo dinh – nghiem la moi x‟);
Writeln('XEP LOAI HOC SINH');
Writeln('Nhap cac ky tu a,b,c,d,e ');
Write('-Cho biet loai: ');
Trang 29Else If loai = 'B' Then
Else If loai = 'C' Then
Ví dụ: 10, 7, 15
GT thuộc tập hằng1
GT thuộc tập hằng2
GT thuộc tập hằng n
Lệnh nLệnh 2
Trang 30- Lệnh CASE có thể được thay thế bởi nhiều lệnh IF lồng nhau và ngược lại lệnh
IF cũng có thể được thay thế bằng lệnh CASE, ví dụ IF dạng 2 có thể được thay thế bằng: CASE<BTLG> OF
- Có thể cho vừa kết hợp liệt kê vừa kết hợp kiểu đoạn con: 2, 5, 10 15, 20
* Hoạt động của câu lệnh như sau:
- Xác định giá trị của Biểu thức
- Xem xét giá trị của Biểu thức đó có nằm trong miền giá trị của tập hằng1 không Nếu có thì câu lệnh 1 được thực hiện và sau đó là kết thúc câu lệnh Nếu không thì tương tự như vậy nó làm việc với miền giá trị của tập hằng 2
- Tiếp tục như vậy nếu giá trị của biểu thức không thuộc bất cứ 1 giá trị nào thì không có câu lệnh nào thực hiện và kết thúc câu lệnh
'0' '9' : Writeln('Ban vua nhap mot ky so');
'B' : Writeln('Ban vua nhap chu B');
'C','D','E' : Writeln('Ban vua nhap mot trong cac chu C, D, E')
Trang 31Lưu đồ cú pháp:
Câu lệnh hoạt động tương tự dạng case thiếu Tuy nhiên nếu giá trị của biến chọn không thuộc miền giá trị của tập hằng nào thì câu lệnh sau từ khoá Else sẽ được thực hiện
0 : Writeln('So vua nhap la 0');
1 : Writeln('So vua nhap la 1');
2 : Writeln('So vua nhap la 2');
3 : Writeln('So vua nhap la 3');
Else Writeln(''So vua nhap khong phai la cac so 0,1,2,3');
Readln;
End
GT thuộc tập hằng1
GT thuộc tập hằng2
GT thuộc tập hằng n
Lệnh nLệnh 2Lệnh 1
Trang 32- Nếu GT1> GT2, thì câu lệnh sẽ không thực hiện lần nào
Ví dụ: Viết chương trình để tính tổng S = 1+2+ +n , với n được nhập vào từ bàn phím
Program Tong;
Uses crt;
F
Lệnh (khối lệnh) inc(BĐK)
BĐK <= GT2
T BĐK:= GT1
Trang 33- Giá trị GT1 và GT2 phải cùng kiểu
- Nếu giá trị GT1 < GT2 thì lệnh không thực hiện được lần nào
Ví dụ: Viết chương trình hiển thị các số nguyên từ n đến 1
Program Hienthiso;
Var n,i: byte;
Begin
Write ('nhap n='); Readln(n);
For i:=n DownTo 1 Do Writeln(i);
Readln;
End
F
Lệnh (khối lệnh) dec(BĐK)
BĐK >=GT2
T BĐK:= GT1
Trang 344 CẤU TRÚC CÂU LỆNH WHILE DO [1],[2]
Cú pháp:
WHILE <Điều kiện> DO < Lệnh>;
Ý nghĩa:
Câu lệnh While Do là câu lệnh lặp với số lần không biết trước
<Điều kiện> là một biến hay biểu thức cho kết quả kiểu Boolean
Nếu <Điều kiện> cho kết quả là True thì thực hiện <lệnh> tiếp tục cho đến khi Nếu <Điều kiện> cho kết quả là False thì thoát khỏi vòng lặp
Ví dụ: Viết chương trình nhập vào một số và kiểm tra xem số đó có phải là số nguyên
While (n Mod i <> 0) Do i:=i+1;
if i=n Then Writeln('-So ',n,' la so nguyen to')
Else Writeln('So ',n,' khong phai la so nguyen to');
Write('Nhap mot so (so 0 de ngung): ');
Trang 355 CẤU TRÚC REPEAT UNTIL
Cú pháp:
REPEAT <Lệnh 1 >;
<Lệnh 2 >;
<Lệnh n >;
UNTIL <Điều kiện>;
Câu lệnh lặp với số lần không biết trước
(Trong trường hợp biết trước số lần lặp ta nên dùng lệnh For)
Ví dụ 1: Viết chương trình nhập vào một số nguyên, in lên màn hình số ký số của số nguyên đó
Trang 37CÂU HỎI, BÀI TẬP
Cấu trúc If
1 Viết chương trình giải phương trình bậc nhất aX + b = 0
2 Viết chương trình giải phương trình bậc hai aX2
+ bX + c = 0
3 Viết chương trình nhập vào 1 số nguyên, yêu cầu máy kiểm tra xem số chẵn hay lẻ
4 Viết chương trình nhập vào 2 số nguyên, yêu cầu máy kiểm tra xem 2 số đó có phải
là ước số của nhau hay không?
5 Viết chương trình nhập vào 3 số nguyên bất kỳ nhưng khi xuất ra màn hình theo thứ
- Nếu tổng của 2 cạnh lớn hơn cạnh thứ ba
- Nếu 3 cạnh bằng nhau (tam giác đều)
- Nếu có 2 cạnh bằng nhau (tam giác cân)
Cấu trúc Case
8 Viết chương trình để khi bấm vào phím, máy sẽ thông báo phím vừa bấm là phím nào? Ví dụ:
- Nếu bấm các phím „Aa‟ đến „Zz‟ sẽ thông báo “Phím ký tự”
- Nếu bấm các phím 0 đến 9 sẽ thông báo “Phím ký số”
- Nếu bấm các phím „+, -, *, /‟ sẽ thông báo “Phím các phép toán học”
- Nếu bấm các phím khác như „Atl, Ctrl, Tab ‟ sẽ thông báo “Phím đặc biệt”
9 Viết chương trình tính diện tính một số hình học sơ cấp
Ví dụ: 1 – Hình vuông, 2- Chữ nhật, 3 – Tam giác, 4 – Hình thang, 5 – Hình tròn Khi chọn số nào thì sẽ nhập số liệu để tính diện tính của hình tương ứng
Trang 3816 Viết chương trình nhập vào N số nguyên, tìm số lớn nhất trong các số đó
17 Viết chương trình tính N!, với N nhập vào từ bàn phím
Cấu trúc While
18 Tính tổng: S= 1 + 2 + + n bằng câu lệnh While Do
19 Viết chương trình nhập vào các điểm thi của một sinh viên In ra màn hình điểm cao nhất, điểm thấp nhất và số điểm đã nhập vào
20 Viết chương trình tính Xn với n được nhập vào từ bàn phím
21 Viết chương trình nhập vào một số nguyên N, hãy tìm các số nguyên tố từ 2 đến N
22 Sử dụng cấu trúc While viết chương trình tìm ước số chung lớn nhất và bội số
chung nhỏ nhất của 2 số nguyên dương nhập vào từ bàn phím
Cấu trúc Repeat
23 Viết chương trình giải phương trình bậc hai aX2 – bX + c = 0 sử dụng câu lệnh lặp Repeat Until để bắt buộc nhập hệ số a< >0
24 Viết chương trình đổi một số nguyên hệ 10 sang hệ 2
25 Sử dụng cấu trúc Repeat Viết chương trình tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số nguyên dương nhập vào từ bàn phím
Trang 39Chương 5 CHƯƠNG TRÌNH CON
1 KHÁI NIỆM
1.1 Khái niệm lập trình từ trên xuống
Trong thực tế khi giải quyết các bài toán lớn, phức tạp nếu viết chương trình một mạch từ trên xuống sẽ rất khó khăn, chương trình rườm rà và phức tạp Mặt khác, khi tìm và sửa lỗi chương trình cũng sẽ nhiều khó khăn vì lỗi sẽ ảnh hưởng đến toàn bộ chương trình Vì vậy đối với các bài toán lớn cần thiết phải phân tích bài toán thành những công việc mang tính tương đối độc lập, sau đó chi tiết dần thành các công việc nhỏ hơn, “phân mảnh” theo từng cấp Pascal cho phép người lập trình “phân mảnh” chương trình trong việc giải quyết bài toán, chia chương trình lớn thành nhiều phần nhỏ rồi giải quyết từng phần một (gọi là chương trình con) Sau đó tuỳ nội dung công việc để thiết kế lắp ghép các chương trình con này lại thành một chương trình lớn Phương pháp lập trình có phân mảnh này được gọi là lập trình từ trên xuống (Top-Down Programming) tức là từ gốc đến ngọn hay còn gọi là lập trình có cấu trúc
1.2 Phân loại và cấu trúc chung của chương trình con
Turbo Pascal cho phép xây dựng hai loại chương trình con đó là thủ tục (Procedure) và hàm (Function)
- Thủ tục là một chương trình con dùng để thực hiện một số thao tác xử lý nào đó
để giải quyết một công việc cụ thể nào đó đã được phân mảnh
- Hàm là một chương trình con dùng để xác định một giá trị của đại lượng nào đó
có kiểu dữ liệu đơn giản (số, kí tự, chuỗi kí tự, logic, ) Giá trị của đại lượng ra này được gọi là giá trị trả về của hàm
Mỗi chương trình con đều có cấu trúc chung theo tuần tự như sau:
- Phần khai báo chương trình con thuộc loại thủ tục hay hàm
- Các định nghĩa và khai báo địa phương (hằng, kiểu, biến, chương trình con)
- Thân của chương trình con
2 CHƯƠNG TRÌNH CON DẠNG THỦ TỤC
2.1 Khái niệm
Chương trình con dạng thủ tục có cấu trúc tương tự một chương trình chính Pascal, chỉ khác là thay từ khoá Program bằng từ khoá Procedure, ngoài ra sau phần khai báo <tên thủ tục> có thể có hoặc không có các (tham số), dấu chấm phẩy (;) rồi đến thân của thủ tục là những câu lệnh đơn giản, câu lệnh đơn, câu lệnh phức, câu lệnh điều kiện, câu lệnh lặp, tuỳ theo chức năng và nhiệm vụ của từng thủ tục trong chương trình
Cấu trúc của thủ tục như sau:
Trang 40Procedure TênThủTục[(Tham số hình thức)];
Const Tên hằng = <Giá trị>;
Type Tên kiểu=<Kiểu dữ liệu>;
Var Tên biến: <Kiểu dữ liệu>;
Begin
Các câu lệnh;
End;
* TênThủTục: Do người lập trình đặt theo quy cách đặt tên của Pascal
* Tham số hình thức: chứa tên các tham số có vai trò nhận thông tin vào cho thủ tục
- Tham số hình thức được chia thành 2 loại:
+ Tham trị: Khi khai báo thì không có từ khoá Var đứng trước
+ Tham biến: Khi khai báo thì phải có từ khoá Var đứng trước
Ví dụ: Procedure tenTT(x,y: Real; a: Word; Var m,n: Real);
* Khai báo địa phương:
- Khai báo toàn cục là các khai báo ngay từ đầu chương trình chính, các đối tượng khai báo này dùng trong chương trình chính và trong bất kỳ chương trình con nào
- Khai báo địa phương của chương trình con nào thì chỉ được dùng cho chương trình con đó, các chương trình chính và chương trình con khác không được dùng
- Khai báo địa phương: gồm hằng, kiểu, biến, các biến này gọi là biến địa phương
* Các câu lệnh: là hệ thống câu lệnh được cài đặt nhằm thực hiện giải thuật đã thiết
kế cho thủ tục
Ví dụ: Tính tổng S = 1+2+ +n Với n được nhập vào từ bàn phím
PROCEDURE tongS1 (n: Word); {tham tri}