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

Giáo trình ngôn ngữ lập trình pascal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 140 trang )

TRƢỜ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

0


NGÔN NGỮ LẬP TRÌNH PASCAL

GIỚ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

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

1


CHƢƠ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ị

1


NGÔN NGỮ LẬP TRÌNH PASCAL

(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:
+ Cách 1: Nhấn tổ hợp phím Alt +X hoặc
+ Cách 2: Chọn F10 ( hoặc Alt+F), sau đó chọn =>File => Exit.
- Môi trƣờng Windows:
+ Cách 1: Alt +F4
+ Cách 2: chọn File => Exit
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.
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

2


NGÔN NGỮ LẬP TRÌNH PASCAL

Ví 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ố.
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

3


NGÔN NGỮ LẬP TRÌNH PASCAL


Lƣu đồ thuật toán:
Begin
m,n

False

m<>n
True

True

m>n

False

m:=m-n

USCLN:=m

n:=n-m
End

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:
Thành phố
Huyện


Quận
Phƣờng

Quận

Phƣờng

Huyện




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
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

4


NGÔN NGỮ LẬP TRÌNH PASCAL

dung đƣợ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.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

5


NGÔN NGỮ LẬP TRÌNH PASCAL

CÂ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.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.


6


NGÔN NGỮ LẬP TRÌNH PASCAL

Chƣơng 2 CÁC THÀNH PHẦN CỦA NGÔN NGỮ PASCAL
1. CÁC KÝ HIỆU VÀ TỪ KHOÁ PASCAL
1.1 Bộ ký tự
Bộ ký tự gồm các loại sau:
- Các chữ cái: a..z; A..Z
- Các ký tự số: 0..9.
- Các dấu toán: + - * / ^ = > <
- Các ký tự đặc biệt: ? ; . : ! [ ] { } # $ @.
- Dấu gạch nối:_
- Dấu ngăn cách: ký tự trống, dấu nháy đơn: ' '
- Các ký tự điều khiển.
1.2. Từ và từ khoá
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á.
Tên không hợp lệ

Tên hợp lệ

So nguyen

Songuyen / so_nguyen

1so

So1 / so_1

Program So hoc;

Program sohoc;/ Program So_hoc;

Danh sach

Danhsach / Danh_sach

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

7



NGÔN NGỮ LẬP TRÌNH PASCAL

2. 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;
6. Procedure Xây dựng thủ tục;
7. Function Xây dựng hàm;
8. Begin
9.
Các câu lệnh;
Thân chƣơng trình
10. End.
* 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ả.
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

8


NGÔN NGỮ LẬP TRÌNH PASCAL

* 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
Di chuyển tới

Bấm phím
- 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 + >

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

9


NGÔN NGỮ LẬP TRÌNH PASCAL

- Sang từ (word) bên ph ải con trỏ
- Chuyển về đầu dòng
- Chuyển về cuối dòng
- Lên dòng trên
- Xuống dòng dƣới
- Cuốn lên một dòng
- Cuốn xuống một dòng
- Lên trang màn hình trên
- Xuống trang màn hình dƣới
- Về đầu cửa sổ
- Đến cuối cửa sổ
- Về đầu tập tin
- Đến cuối tập tin

<Ctrl + F> hoặc <Ctrl + >

<Home>
<End>
<Ctrl + E> hoặc <>
<Ctrl + X> hoặc <>
<Ctrl + W>
<Ctrl + Z>
<Ctrl + R> hoặc PgUp
<Ctrl + C> hoặc PgDn
<Ctrl + E>
<Ctrl + X>
<Ctrl + Home>
<Ctrl + End>

- Các phím Chèn xoá
Lệnh
- Thay đổi giữa kiểu Chèn / Đè
- Chèn một dòng
- Xoá một dòng
- Xoá đến cuối dòng
- Xoá ký tự
- Xoá ký tự ở bên trái con trỏ
- Xoá một từ

Bấm phím
<Ctrl + V> hoặc Ins
<Ctrl + N>hoặc <  >
<Ctrl + Y>
<Ctrl + Q Y>
<Ctrl + G> hoặc <Del>
<Backspace>

<Ctrl + T>

- Các lệnh về khối
Lệnh
- Đánh dấu đầu khối
- Đánh dấu cuối khối
- Hiển / ẩn khối
- Sao chép khối
- Di chuyển khối
- Xoá khối
- Ghi một khối vào đĩa
- Đọc một khối từ đĩa
- In một khối
- Đẩy thụt vào (sang phải) một khối
- Không đẩy thụt vào một khối
- Chuyển về đầu khối
- Chuyển tới cuối khối

Bấm phím
<Ctrl + K B>
<Ctrl + K K>
<Ctrl + K H>
<Ctrl + K C>
<Ctrl + K V>
<Ctrl + K Y>
<Ctrl + K W>
<Ctrl + K R>
<Ctrl + K P>
<Ctrl + K I>
<Ctrl + K U>

<Ctrl + Q B>
<Ctrl + Q K>

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

10


NGÔN NGỮ LẬP TRÌNH PASCAL

- Đánh dấu một dòng
- Chép một khối vào clipboard
- Di chuyển một khối vào clipboard
- Xoá một khối
- Dán khối từ clipboard vào vị trí con trỏ
- Đánh dấu ký tự ở bên trái con trỏ
- Đánh dấu một ký tự ở bên phải con trỏ
- Đánh dấu đến cuối dòng
- Đánh dấu đến đầu dòng
- Đánh dấu cùng cột, dòng trên
- Đánh dấu cùng cột, dòng dƣới
- Đánh dấu trang màn hình dƣới
- Đánh dấu trang màn hình trên
- Đánh dấu một từ ở ngay con trỏ
- Đánh dấu một từ ở bến trái con trỏ
- Đánh dấu một từ ở bên phải con trỏ
- Đánh dấu ở cuối tập tin
- Đánh dấu ở đầu tập tin

<Ctrl + K L>

<Ctrl + Ins>
<Shift + Del>
<Ctrl + Del>
<Shift + Ins>
<Shift + >
<Shift + >
<Shift + End>
<Shift + Home>
<Shift + >
<Shift + >
<Shift + PgDn>
<Shift + PgUp>
<Ctrl + K T>
<Shift + Ctrl + >
<Shift + Ctrl + >
<Shift + Ctrl + End>
<Shift + Ctrl + Home>

- Các lệnh khác
Lệnh
- Lƣu tập tin
- Nạp một tập tin từ đĩa vào bộ nhớ
- Khoảng cách Tab
- Kiểu Tab
- Bật / tắt canh lề trái
- Phục hồi một dòng bị xoá
- Đánh dấu từng vị trí (từ 0 đến 9)
- Di chuyển đến vị trí đã đánh dấu
- Trợ giúp sử dụng ngôn ngữ
- Tìm kiếm

- Tìm kiếm và thay thế
- Lặp lại lệnh tìm kiếm sau cùng
- Thoát khỏi các thao tác

Bấm phím
<Ctrl + K S> hoặc <F2>
<F3>
<Ctrl + I> hoặc <Tab>
<Ctrl + O T>
<Ctrl + O I>
<Ctrl + Q L>
<Ctrl + K n> (n=0..9)
<Ctrl + Q n> (n=0..9)
<Ctrl + F1>
<Ctrl + Q F>
<Ctrl + Q A>
<Ctrl + L>
<Esc>

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.
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

11


NGÔN NGỮ LẬP TRÌNH PASCAL


* Cú pháp để định nghĩa hằng như sau:
CONST Tên hằng = giá trị;
Ví dụ: Const Max = 100; CH ='A' ;
- Có một số hằng số do Pascal quy định sẳn:
Ví dụ: Pi = 3,1416 ta không cần phải định nghĩa lại.
Ví dụ: Tính diện tích đƣờng tròn S = R x R* pi (S đƣờng tròn)
* Các loại hằng.
- Hằng số nguyên: từ -32768 đến 32767
- Hằng số thực: phạm vi các số thực từ 1E-38 đến 1E+38 với phần định trị có
thể tới 11 chữ số có nghĩa.
Ví dụ:
134.5678
-0.012
1E8
-1.2345678901E+12
- Hằng ký tự và chuỗi ký tự:
Ví dụ: Const Ch = 'A' ;
Ten = 'Pascal';
- Hằng luận lý: có 2 giá trị đúng (True) và sai (False) thuộc kiểu Boolean
Ví dụ: Const A =True;
B=False ;
4.2. Kiểu dữ liệu
Pascal có một số kiểu dữ liệu chuẩn, ngoài ra ngƣời lập trình có thể đƣợc phép tự
định nghĩa kiểu dữ liệu của riêng mình bằng cú pháp sau:
Type
Tên_kiểu = Kiểu_giá_trị;
Ví dụ:

Type Songuyen = Integer;
Mau = (Red);

Var So1, So2: Songuyen;
c: Mau;

4.3. Biến
Biến là đại lƣợng có thể thay đổi giá trị trong chƣơng trình. Biến dùng để lƣu dữ
liệu, giá trị đó có thể nhận đƣợc từ bàn phím hoặc thông qua phép gán. Các biến khi
dùng đều phải đƣợc khai báo sau từ khoá Var kèm theo kiểu dữ liệu của chúng. Khai
báo các biến nhằm cung cấp các vùng nhớ để lƣu dữ liệu trong quá trình thực hiện
chƣơng trình.
Var
Danh_sách_biến : kiểu_dữ_liệu;

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

12


NGÔN NGỮ LẬP TRÌNH PASCAL

Trong đó: - 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;
ch: Char;
ok : Boolean;
4.4. Biểu thức
Biểu thức một tập hợp gồm nhiều toán tử và toán hạng, trong đó toán tử tác động
phù hợp lên toán hạng. Khi làm việc với biểu thức, cần quan tâm giá trị trả về của biểu
thức đó.
* 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(...);
Toán tử phụ định: NOT
2. Toán tử lớp nhân: * , / , And, Div, Mod
3. Toán tử lớp cộng : + , - , or , xor.
4. Các phép toán so sánh: >, >=, <, <= , <>, = .
Nếu cùng mức ƣu tiên thì sẽ đƣợc thực hiện ƣu tiên từ trái sang phải
Ví dụ: ( (5 +3 ) * 4 > 7) And (3 - 4 < 5)
Khi thiết kế biểu thức, tốt nhất nên sử dụng cặp dấu ngoặc để tách biệt từng nhóm.
Chú ý:
- Trong Pascal một biểu thức bản thân không thể thành một câu lệnh, mà phải đi kèm
với lệnh gán để gán kết quả của biểu thức cho một biến.
<Biến>: = <Biểu Thức>;
- Trong một biểu thức các toán hạng phải cùng kiểu hoặc phải qua một phép biến đổi
kiểu. Các toán tử phải phù hợp với các toán hạng.
4.5. Câu lệnh
Chƣơng trình của pascal là tập hợp các câu lệnh tuần tự theo cú pháp Pascal,
đƣợc thực hiện tuần tự câu ghi trƣớc thực hiện trƣớc, câu ghi sau thực hiện sau.
Pascal có hai loại câu lệnh đó là lệnh đơn giản và câu lệnh cấu trúc.
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.


13


NGÔN NGỮ LẬP TRÌNH PASCAL

4.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ụ: Writeln(đối số1, đối số2, ..);
Readln(đối số1, đối số2, ..);
ClrScr;
* Câu lệnh Goto:
Cú pháp: Goto Tên nhãn;
Ví dụ: Goto Baitap;
4.5.2. Câu lệnh có cấu trúc
* Câu lệnh ghép (phức hợp)
Trong một chƣơng trình pascal về phƣơng diện cú pháp, đó là một tập liên tiếp
các câu lệnh đơn, khi một thao tác nào đó không thể mô tả bằng một câu lệnh đơn thì
có thể sử dụng câu lệnh ghép để ghép nhiều lệnh đơn lại bằng từ khoá Begin và End.
Câu lệnh phức hợp là câu lệnh mà trong đó bao gồm nhiều câu lệnh phức tạp
hoặc nhiều câu lệnh phức khác. Câu lệnh phức hợp đƣợc mở đầu và kết thúc bởi các từ

khoá Begin và End.
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;
End;
Câu lệnh 5;
End;
* Các loại câu lệnh có cấu trúc:
- Câu lệnh ghép
- Câu lệnh điều kiện: IF, Case
- Câu lệnh lặp For, While, Repeat
- Câu lệnh With
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

14


NGÔN NGỮ LẬP TRÌNH PASCAL

5. 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;
b:=a+2;
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

15


NGÔN NGỮ LẬP TRÌNH PASCAL

Wrirte (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
WRITE(a:12:6); 
_ _350.476900
* 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);
Writeln (LST,'Thông báo:', dữ liệu);

(1)
(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.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

16


NGÔN NGỮ LẬP TRÌNH PASCAL

CÂ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:
Toán, Văn hệ số 3.
Ngoại ngữ hệ số 2.

Lý, hoá hệ số 1.
7. Viết chƣơng trình nhập 3 số nguyên dƣơng a, b, c. Hãy tính và in ra màn hình giá trị
trung bình cộng S.
8. Viết chƣơng trình nhập vào một số nguyên dƣơng N, sau đó tính tổng các số nguyên
dƣơng từ 1 đến N.
Hƣớng dẫn: 1 + 2 + 3 + ....+ N= N*(N+1) DIV 2
9. Viết chƣơng trình nhập vào một số nguyên dƣơng N, sau đó tính N!.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

17


NGÔN NGỮ LẬP TRÌNH PASCAL

Chƣơ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:
- Integer,
- Byte,
- Word,
- ShortInt
- LongInt.
- Real,
- Extended.

- Boolean.
- Char.
+ Tự định nghĩa:
- Liệt kê
- Miền con
* Kiểu cấu trúc:
+ Kiểu mảng (Array)
+ Kiểu tập hợp (Set)
+ 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.
2. KIỂU SỐ NGUYÊN [1], [2]
2.1. Các kiểu số nguyên
a. Kiểu Integer
Số nguyên kiểu Integer đƣợc lƣu trữ trong 2 Byte. Trong đó bit cao dùng để lƣu
trữ dấu và 15 bit còn lại dùng để lƣu trữ số, có 215 khả năng lƣu trữ.
Phạm vi - 215  n  215-1
-32768  32767
b. Kiểu ShortInt
Đƣợc lƣu trữ trong 1 byte trong đó bit cao đƣợc dùng để lƣu trữ dấu.
Phạm vi -128  +127
c. Kiểu Longint
Đƣợc lƣu trữ ở trong 4 byte, trong đó bit cao đƣợc dùng để lƣu trữ dấu.
Phạm vi
- 231  n  231 - 1
- 2147483648  + 2147483647
ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.


18


NGÔN NGỮ LẬP TRÌNH PASCAL

d. Kiểu Byte
Đƣợc lƣu trữ ở trong 1 byte, không có dấu, có 28 khả năng.
0  n  28-1
0  255
e. Kiểu Word
Đƣợc lƣu trữ trong 2 byte, không có dấu. Có 216 khả năng.
0  n  216 - 1
0  65535
2.2. Các phép Toán
+, - , * tƣơng tự toán học
DIV 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
Kiểu kết
Hàm
Kiểu tác động
Chức năng
quả
Pred(x)
Nguyên (x)
Integer

Pred(x) = x - 1 (số nguyên đứng trƣớc x)
Succ(x)
Nguyên (x)
Integer
Succ(x) = x + 1 (số nguyên đứng sau x)
Odd(x)
Nguyên (x)
Boolean
Odd(x) = True: x là số nguyên lẻ
Odd(x) = False: x là số chẵn.
ABS (x) Nguyên / Real Nguyên / Lấy giá trị tuyệt đối của x
Real
Ví dụ: abs (-3)=3 abs (3)=3
SQR (x) Nguyên / Real Nguyên / Bình phƣơng của x: x2
Real
SQR (3)= 9 : SQR (-3) =9
SQRT(x) Nguyên / Real Real
Lấy căn bậc 2 của x, x>0
Ví dụ: SQRT (25) = 5
Ln(x)
Nguyên / Real Real
Logarit Nepe của x
Trunc(x): Real
Integer
Lấy phần nguyên của x
(Longint) Ví dụ: Trunc(35.75)=35, Trunc(-3.05) = -3
Inc(x,r)
nguyên
nguyên
Cho kết quả: x tăng r phần tử

x:=x+r (ví dụ: Inc(10,2)=12)
Dec(x,r) nguyên
nguyên
Cho kết quả: x giảm r phần tử
......
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.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

19


NGÔN NGỮ LẬP TRÌNH PASCAL

3. 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
Kiểu
Kích thƣớc
Phạm vi
Chữ số có nghĩa
Real
6 bytes
11
2.9E-39    1.7 E+38
8 bytes


1.5E-39    3.4E+38
5.0 E-39    1.7E+308

15

10 bytes

1.9E-4951    1.1E+4932

19

Single

4 bytes

Double
Extended

7

-9.2E39    9.2E 18
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
Kiểu tác
Hàm
Kiểu kết quả
Chức năng
động
ABS (x) Real/ nguyên Real
Lấy giá trị tuyệt đối của x
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
SQRT(x) Real/ nguyên Real
Lấy căn bậc 2 của x, x>0
Ví dụ: SQRT (25) = 5
Sin(x):
Real/ nguyên Real
Cho giá trị Sin(x) (Radian)
Cos(x):
Real/ nguyên Real
Cho giá trị Cos(x) (Radian)
Arctan(x) Real/ nguyên Real
cho Arctan của x
Ln(x)
Real/ nguyên Real
Logarit Nepe của x
Exp(x)
Real/ nguyên Real

Hàm số mũ của x
Trunc(x): Real
Integer
lấy phần nguyên của x
(Longint)
Ví dụ: Trunc(35.75) = 35
Comp

8 bytes

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

20


NGÔN NGỮ LẬP TRÌNH PASCAL

Frac (x)
Real
Round(x) Real

Real
Integer
(Longint)

Lấy phần lẻ của số thực x
Làm tròn số x
Ví dụ: round(1.7) = 2, round(-1.3) = -1

4. KIỂU BOOLEAN

Kiểu Boolean có 2 giá trị là True & False, có tính thứ tự và đếm đƣợc, False < True
* Các phép toán:
- Các phép toán quan hệ: =, >, >=, <, <=, <>.
- Các phép toán Logic: AND, OR, XOR, NOT
Trong đó:
AND, OR, XOR là phép toán 2 ngôi
NOT là phép toàn 1 ngôi
A
B
A And B
A or B
A xor B
Not A
True
True
True
True
False
False
True
False
False
True
True
False
False
True
False
True
True

True
False
False
False
False
False
True
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.
* Các phép Toán:
- Phép cộng ký tự: toán tử cộng ( + ) để cộng 2 hay nhiều ký tự với nhau tạo
thành 1 chuỗi ký tự. Ví dụ
'A' + 'B' = 'AB'
- Phép toán quan hệ:
Ký hiệu
Phép toán
Ví dụ
=
So sánh bằng nhau
'A' = 'B' False
>
So sánh lớn hơn
'A' >'B'False
>=
So sánh lớn hơn hoặc bằng
'A' >='B'False

<

So sánh nhỏ hơn

'A' <'B' True

<=
<>

So sánh nhỏ hơn hoặc bằng
So sánh khác nhau

'A' <='B' True
'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:

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

21


NGÔN NGỮ LẬP TRÌNH PASCAL

- 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'

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

22


NGÔN NGỮ LẬP TRÌNH PASCAL

CÂ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.

ThS. Lê Minh Thắng - Trường Đại học Quảng Bình.

23


×