Khi nạp chương trình vào máy sẽ nạp các thủ tục và hàm của chương trình đó , chúng nằm thường trú trong bộ nhớ để khi nào cần sử dụng thì thực hiện bằng câu lệnh gọi thủ tục và hàm.. Các
Trang 1BÀI 01 : CHƯƠNG TRÌNH CON : THỦ TỤC VÀ HÀM TRONG PASCAL
1 GIỚI THIỆU VỀ CHƯƠNG TRÌNH CON :
Trong lập trình , có nhiều công việc cứ lặp đi lặp lại một thao tác hoặc tính toán , xử lý nào đó , thay vì phải viết những phần chương trình để giải quyết những phần việc này thì người ta tạo lập những chương trình riêng được lưu trữ trên đĩa hoặc trong bộ nhớ để khi nào sử dụng đến thì gọi ra Những chương trình con đó gọi là những thủ tục hay hàm
Trong pascal nói riêng và các ngôn ngữ lập trình bậc cao nói chung đều có các thủ tục và hàm chuẩn do nhà thiết kế ngôn ngữ tạo sẵn và cất trong thư viện các thủ tục và hàm chuẩn Ngoài ra còn cho phép người lập trình tự tạo các thủ tục và hàm của riêng họ để giải quyết những nhiệm vụ do bài toán đặt ra
Việc tổ chức chương trình con có những lợi điểm như sau :
Cấu trúc chương trình sáng sủa , khoa học , hệ thống hoá việc lập trình
Có thể chia nhỏ chương trình thành những đơn thể cho nhiều người cùng thực hiện , khiến tốc độ lập trình nhanh chóng mà còn tận dụng được trí tuệ tập thể
Các đơn thể chương trình có thể là những thủ tục hay hàm độc lập với nhau , vì vậy rất dễ dàng sửa lỗi hoặc thêm bớt nội dung cho phù hợp với nhu cầu đặt ra
2 TỔ CHỨC VÀ SỬA LỖI TRONG THỦ TỤC VÀ HÀM :
Program < Tên chương trình > ;
Uses < Tên các unit > ;
Const
< Tên hằng > = < Giá trị > ;
Var
< Danh sách các biến > : < Kiểu dữ liệu > ;
Procedure < Tên thủ tục > [ tham số ] ;
const
< Tên hằng > = < Giá trị > ;
var
< Danh sách các biến > : < Kiểu dữ liệu > ;
begin
Các lệnh của thủ tục ;
end ;
Function < Tên hàm > ( tham số hình thức ) : < Kiểu của hàm > ;
const
< Tên hằng > = < Giá trị > ;
var
< Danh sách các biến > : < Kiểu dữ liệu > ;
begin
Các lệnh của hàm ;
end ;
Begin
Procedure < Tên thủ tục > ;
Function < Tên hàm > ;
Các lệnh khác của chương trình chính ;
Trang 2End
Các thủ tục và hàm tự tạo bao giờ cũng phải đặt trước chương trình chính Khi nạp chương trình vào máy sẽ nạp các thủ tục và hàm của chương trình đó , chúng nằm thường trú trong bộ nhớ để khi nào cần sử dụng thì thực hiện bằng câu lệnh gọi thủ tục và hàm Vì vậy tốc độ thực hiện sẽ nhanh hơn so với chương trình không có cấu trúc chương trình con
Sau từ khóa Program là tên chương trình chính
Sau từ khóa Var là danh sách các biến của chương trình chính Các biến này gọi là biến chung có tác động chung cho toàn bộ chương trình , có nghĩa là trong các hàm và thủ tục đều có thể sử dụng tên của các biến này
Sau từ khóa Procedure là tên của thủ tục
Sau từ khóa Function là tên của hàm
Chú ý : Khi đặt tên các thủ tục hay hàm ta nên đặt tên mang tính gợi nhớ để dể sử dụng về sau này Các tên phải viết liền nhau và không được trùng với tên của các từ khóa chuẩn
Sau tên hàm là các tham số hình thức Các tham số này sẽ được truyền giá trị bởi tham số thực là các biến của chương trình chính
Sau tham số hình thức là kiểu dữ liệu của giá trị trả về cho hàm
Tiếp đến có thể có hoặc không có các biến riêng của hàm hoặc thủ tục
Trong mỗi hàm đều có thân của hàm , đó là các lệnh được đặt giữa hai từ khóa begin … end ;
Thân chương trình chính bắt đầu bằng từ khóa Begin và kết thúc bằng từ khóa End với dấu chấm
Trong thân chương trình chính là các câu lệnh gọi thủ tục hoặc hàm và những câu lệnh khác
3 KHAI BÁO THỦ TỤC VÀ HÀM TỰ TẠO :
KHAI BÁO THỦ TỤC :
Khi muốn thực hiện một thao tác nào đó ta nên khai báo là thủ tục
Thủ tục có cấu trúc như một chương trình trong Pascal , chỉ khác là thay từ khóa Program bằng từ khóa 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 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 , … tùy theo chức năng và nhiệmvụ của thủ tục trong chương trình
Trong một chương trình có thể có nhiều thủ tục khác nhau , mỗi thủ tục có một chức năng hoặc công dụng nào đó Các thủ tục này có thể có các biến riêng ( còn gọi là biến cục bộ hoặc biến địa phương ) Các biến này có thể trùng tên với biến chung ( còn gọi là biến toàn cục ) hoặc cũng có thể trùng với tên của các thủ tục hay hàm khác
KHAI BÁO HÀM :
Khi muốn trả về một kết quả nào đó ta nên khai báo là hàm
Các thành phần của khai báo hàm giống như khai báo thủ tục nhưng có hai chỗ khác biệt như sau : Thay từ khóa Procedure bằng từ khóa Function
Khai báo hàm phải cho biết kiểu kết quả của hàm
Chú ý : Ta có kết quả của hàm được trả về là một giá trị , còn thủ tục là một tác vụ ( công việc ) Ta sử dụng chương trình con là hàm khi :
Nếu ta muốn nhận lại một kết quả duy nhất
Kết quả phải là kiểu vô hướng hoặc con trỏ
Có sử dụng tên hàm trong biểu thức
Nếu không thỏa mãn các yếu tố trên thì chương trình con là thủ tục
Trang 34 THỦ TỤC VÀ HÀM LỒNG NHAU :
Hàm hoặc thủ tục lồng nhau cũng tương tự như các cấu trúc điều kiện hoặc cấu trúc vòng lặp lồng nhau , tức là một thủ tục này chứa một thủ tục khác , hàm này chứa hàm khác
Đối với các thủ tục và hàm tự tạo cũng cho phép thủ tục này lồng vào thủ tục khác , hàm này lồng vào hàm hoặc thủ tục khác
Trong một chương trình có thủ tục và hàm lồng nhau ta cần lưu ý một số đặc điểm sau : Thủ tục và hàm ở bên ngoài gọi thực hiện thủ tục hoặc hàm ở bên trong , không được gọi ngược lại và không được gọi cắt chéo nhau
Các biến riêng và giá trị của chúng trong các thủ tục và hàm sẽ bị mất sau khi thoát ra khỏi thủ tục và hàm đó
5 LỆNH GỌI THỦ TỤC , HÀM VÀ THOÁT KHỎI CHƯƠNG TRÌNH :
Lệnh gọi thủ tục và hàm :
Câu lệnh gọi thủ tục hay hàm là câu lệnh gọi thực hiện thủ tục hay hàm chuẩn hoặc thủ tục hay hàm tự tạo trước đó Câu lệnh này gồm có tên thủ tục hay tên hàm , tiếp theo sau có thể có hoặc không có danh sách các tham số đặt giữa hai dấu ngoặc đơn ( ) Danh sách các tham số là một dãy các biến và biểu thức được đặt cách nhau bởi dấu phẩy Trong quá trình thực hiện chương trình nếu gặp câu lệnh gọi thủ tục hay hàm , điều khiển được chuyển đến thủ tục hay hàm có tên được chỉ định , đồng thời giá trị của các tham số được truyền cho thủ tục hay hàm theo các cách : truyền bằng trị , truyền bằng biến hoặc truyền kết hợp vừa trị vừa biến Sau khi thực hiện xong thủ tục hay hàm , chương trình thực hiện tiếp tục từ câu lệnh đứng ngay sau câu lệnh gọi thủ tục hay hàm
Thủ tục thoát khỏi chương trình :
Trong lập trình nhất là những chương trình dài , hoặc ngay cả những chương trình con , đôi
lúc cũng cần dừng chương trình tại một vị trí nào đó để kiểm tra các kết quả trung gian mà không cần phải chạy hết chương trình
Thủ tục Exit ; : Nếu thủ tục Exit đặt trong chương trình con thì thoát chương trình
con giữa chừng để trở về chương trình chính Nếu Exit đặt trong chương trình chính thì sẽ chấm dứt chương trình chính , không thực hiện các lệnh còn lại sau thủ tục này
Thủ tục Halt; : Dù cho thủ tục này đặt trong chương trình con hay chương trình chính
, khi gặp thủ tục này thì sẽ chấm dứt thực hiện chương trình để trở về hệ điều hành và xuất hiện một thông báo mã thoát ExitCode Halt hoặc Halt ( 0 ) là thoát về hệ điều hành không có lỗi
6 THAM SỐ VÀ TRUYỀN THAM SỐ :
Có hai loại tham số : tham số thực và tham số hình thức
Việc cung cấp các giá trị thực cho các tham số hình thức được gọi là truyền tham số
Thứ tự truyền tham số lần lượt truyền từ trái qua phải
Có ba cách truyền tham số :
Truyền bằng trị : Tham số thực truyền cho tham số hình thức ở trong thủ tục thì sau khi truyền giá trị của tham số thực không thay đổi
Truyền bằng biến : Tham số thực truyền cho tham số hình thức ở trong thủ tục thì sau khi truyền giá trị của tham số thực đã bị thay đổi
Truyền kết hợp vừa trị , vừa biến
Chú ý :
Trang 4Các tham số hình thức khác kiểu dữ liệu với nhau trong các thủ tục , hàm thì phải phân cách nhau bởi dấu chấm phẩy Các tham số cùng kiểu thì phân cách nhau bởi dấu phẩy
Khi gọi các thủ tục , hàm thì tất cả các tham số thực phân cách nhau bởi dấu phẩy không phân biệt cùng kiểu hay khác kiểu
Các tham số thực và tham số hình thức phải giống nhau về kiểu , số lượng và vị trí của chúng trong danh sách liệt kê biến
7 BIẾN CHUNG , BIẾN RIÊNG VÀ MIỀN TÁC ĐỘNG CỦA BIẾN :
Trong một chương trình có cấu trúc chương trình con thì các biến sử dụng trong chương trình chính và chương trình con là khác nhau
Biến chung được khai báo trong chương trình chính , thời gian tồn tại của biến từ lúc vận hành chương trình cho đến khi thoát khỏi chương trình
Biến riêng được khai báo trong các chương trình con , thời gian tồn tại của biến trong phạm
vi chương trình con đang vận hành Khi thoát khỏi chương trình con thì các biến riêng và giá trị của chúng sẽ bị mất Lợi dụng đặc điểm này người ta có thể đặt tên các biến trùng nhau trong các chương trình con để tiết kiệm bộ nhớ
8 MỘT SỐ THỦ TỤC VÀ HÀM CHUẨN TRONG UNIT CRT :
a Thủ tục chuẩn :
Các thủ tục về tọa độ màn hình và con trỏ :
Thủ tục GotoXY ( x , y : integer ) ;
Dùng để đưa con trỏ đến tọa độ ( x , y ) trên màn hình
Thủ tục ClrScr ;
Dùng để xóa màn hình , đưa con trỏ về góc trên bên trái màn hình có tọa độ ( 0 , 0 ) Thủ tục Deline ;
Dùng để xóa một dòng chứa con trỏ , các dòng ở phía dưới sẽ dồn lên
Thủ tục ClrEol ;
Dùng để xóa các ký tự từ vị trí con trỏ đến cuối dòng mà không di chuyển vị trí con trỏ
Thủ tục Insline ;
Dùng để chèn thêm một dòng trống vào vị trí của con trỏ hiện hành , đẩy các dòng
ở phía dưới dịch chuyển xuống
Các thủ tục về thuộc tính màn hình :
Thủ tục về cửa sổ màn hình :
Các thủ tục về âm thanh :
Một số thủ tục khác :
a Hàm chuẩn :
Một số hàm chuẩn trong unit CRT :
Các hàm số học :
Các hàm sơ cấp :
Các hàm chuyển đổi kiểu :
Các hàm khác :
9 UNIT VÀ UNIT TỰ TẠO :
Trang 5 Có nhiều chương trình tiện ích thường xuyên sử dụng nên đã được hảng sản xuất phần mềm ngôn ngữ biên dịch sẳn , lúc nào cần thì người lập trình chỉ đem ra sử dụng mà không cần phải viết những đoạn chương trình con đó Tuy vậy , không phải lúc nào người lập trình cũng sử dụng hết các chương trình con lập sẵn nên nhà sản xuất chia nhỏ các chương trình con thành từng nhóm theo từng công dụng Mỗi nhóm gọi là một Unit và là Unit Chuẩn
Ta có thể gom các chương trình con có công dụng nào đó vào một tập tin lưu trữ độc lập trên đĩa để sau này sử dụng trong các chương trình khác
Một tập tin chương trình con nào đó sau khi đã chạy thử , sửa các lỗi và nhận thấy có nhiều ứng dụng trong lập trình thì có thể chuyển thành Unit , ta gọi là các Unit tự tạo
Cách tổ chức một Unit tự tạo gồm có ba phần :
Tên tập tin phải bắt đầu bằng từ khóa Unit tương tự như bắt đầu chương trình là từ khóa Program
Tên tập tin chương trình con phải trùng với tên tập tin Unit
Chép tập tin chương trình con vào máy nếu chưa có sẳn trên máy ( chép váo thư mục mà ta sẽ xử lý )
Khởi động Turbo Pascal và mở tập tin chương trình con , sau đó thêm tên Unit vào dòng đầu tiên của tập tin này
Phần giao diện với bên ngoài gồm các chi tiết :
Bắt đầu bằng từ khóa Interface và không có dấu chấm phẩy sau từ khóa này
Khai báo các Unit chuẩn nếu cần và mỗi Unit cách nhau bởi dấu phẩy
Khai báo các tên hằng , tên kiểu , tên biến nếu cần
Khai báo các thủ tục , các hàm : chỉ cần khai báo tên thủ tục , tên hàm với các tên hằng , các tham số và kiểu dữ liệu , kiểu kết qủa của hàm
Phần bên trong còn gọi là phần bên trong hộp đen gồm các chi tiết :
Phải bắt đầu bằng từ khóa Implementation và không được có dấu chấm phẩy sau từ khóa này
Khai báo nội dung của các thủ tục , hàm , các hằng , kiểu , biến riêng , …
Kết thúc là từ khóa End với dấu chấm
Cách gọi các Unit :
Trong chương trình chính hay trong một Unit tự tạo có sử dụng các Unit khác thì phần đầu của chương trình phải khai báo sau từ khóa Uses ; tên của các Unit chuẩn , tự tạa và các Unit phải phân cách nhau bởi dấu phẩy Khi chạy chương trình nếu xuất hiện thông báo “ File not found < tên tập tin TPU > ” tức là không tìm thấy tập tin Unit , ta sử dụng lệnh Change Dir
… trong thực đơn File để chuyển về thư mục có tập tin < tên tập tin TPU > hoặc ta phải chép tập tin này vào thư mục hiện hành
10 CÁC VÍ DỤ MINH HỌA :
BÀI 02 : KIỂU VÔ HƯỚNG : KIỂU LIỆT KÊ
1 ĐỊNH NGHĨA KIỂU :
Kiểu liệt kê được định nghĩa bằng cách liệt kê tất cả các phần tử có thể có của nó Các giá trị của kiểu được thể hiện bằng tên
Cú pháp :
Trang 6TYPE
TÊNKIỂU = ( CÁC GIÁ TRỊ ) ;
Để khai báo kiểu dữ liệu mới ta dùng từ khóa Type
Tên kiểu liệt kê là một tên tùy chọn ( có thể dùng các tên kiểu chuẩn ) được viết liền nhau hoặc nối với nhau bằng dấu gạch nối
Dấu bằng “ = ” dùng để gán các giá trị được liệt kê cho tên kiểu
Các giá trị được liệt kê là các giá trị của kiểu , mỗi giá trị phân cách nhau bởi dấu phẩy Các giá trị là các kiểu vô hướng chuẩn khác và phải đặt trong cặp dấu ngoặc đơn ( ) Giá trị trả về là phần tử thứ n trong danh sách liệt kê , phần tử đầu tiên có số thứ tự là 0
Dấu chấm phẩy “ ; ” bắt buộc phải có sau mỗi định nghĩa kiểu liệt kê
2 KHAI BÁO BIẾN :
Cú pháp 1 :
TYPE
TÊNKIỂU = ( CÁC GIÁ TRỊ ) ;
VAR
TÊNBIẾN : TÊNKIỂU ;
Khai báo biến này thông qua các tên kiểu liệt kê đã được định nghĩa trước đó
Cú pháp 2 :
VAR
TÊNBIẾN : ( CÁC GIÁ TRỊ ) ;
Khai báo này vừa khai báo biến , vừa định nghĩa kiểu liệt kê
3 XUẤT , NHẬP DỮ LIỆU :
Nhập dữ liệu :
Để nhập dữ liệu từ bàn phím ta dùng các thủ tục Read hoặc Readln nhưng không được phép nhập trực tiếp các giá trị kiểu liệt kê mà chỉ được nhập các giá trị của các biến
Ví dụ :
Type
color = ( tim , xanh , vang , trang , den ) ;
Var
mau : color ;
Begin
Writeln ( ‘ Nhap , xuat du lieu kieu liet ke ’ ) ;
Writeln ( ‘ Ban thich mau nao ? ( Nhap cac so tu 0 den 4 ) ’ ) ;
Readln ( i ) ;
mau := color ( i ) ;
Xuất dữ liệu :
Các thủ tục Write hoặc Writeln cũng không thể xuất ra màn hình hoặc máy in một giá trị kiểu liệt kê
Ví dụ :
Không thể dùng các lệnh :
writeln ( mau ) ;
writeln ( den ) ;
Trang 7writeln ( color ( i ) ) ;
Chỉ được dùng :
if mau = den then writeln ( ‘ Ban thich mau den ’ ) ;
4 CÁC PHÉP TOÁN :
Các phép toán quan hệ = ; > ; < ; > = ; < = ; < > có thể được áp dụng cho kiểu liệt kê với điều kiện cả hai toán hạng phải cùng kiểu Cơ sở của phép so sánh này là thứ tự sắp xếp các giá trị của kiểu liệt kê , tức là thứ tự các giá trị được đưa vào trong định nghĩa kiểu
5 CÁC HÀM TRONG KIỂU LIỆT KÊ :
Hàm Succ ( x ) ; cho kết quả là giá trị đứng kế tiếp sau x
Hàm Pred ( x ) ; cho kết quả là giá trị đứng kế tiếp trước x
Hàm Ord ( x ) ; cho kết quả là số thứ tự của x
Chú ý : Kết quả của hàm Succ và Pred thuộc cùng kiểu với kiểu của đối số Kiểu kết quả của hàm Ord là số nguyên
6 CÁC VÍ DỤ MINH HỌA :
BÀI 03 : KIỂU MIỀN CON
1 ĐỊNH NGHĨA KIỂU :
Các kiểu dữ liệu đếm được (vô hướng) như integer , char , byte , boolean , liệt kê bao gồm các giá trị được sắp xếp theo một thứ tự nhất định từ đầu tới cuối Ta có thể không sử dụng tất cả mà chỉ cần sử dụng một khoảng giá trị nào đó trong các khoảng này Khoảng giá trị đó trong Pascal gọi là kiểu miền con
Cú pháp :
TYPE
TÊNKIỂU = ( < CẬN TRÊN > < CẬN DƯỚI > ) ;
2 KHAI BÁO BIẾN :
Cú pháp 1 :
TYPE
TÊNKIỂU = ( < CẬN TRÊN > < CẬN DƯỚI > ) ;
VAR
TÊNBIẾN : TÊNKIỂU ;
Cú pháp 2 :
VAR
TÊNBIẾN : ( < CẬN TRÊN > < CẬN DƯỚI > ) ;
3 VÍ DỤ :
Type
Nam = 1900 2000 ;
Var
Namsinh : Nam ;
Trang 8Thangsinh : 1 12 ;
4 CHÚ Ý :
Tất cả các quy tắc áp dụng cho kiểu liệt kê đều có thể áp dụng cho kiểu miền con
Khi thực hiện một phép toán gán thì Pascal sẽ kiểm tra xem giá trị được gán có nằm trong miền được xác định hay không , nếu không máy sẽ thông báo lỗi và chương trình sẽ bị dừng lại khi gặp lỗi
Khi dùng kiểu miền con để nhập dữ liệu thì ta nên dùng câu lệnh If để kiểm tra miền giá trị
Kiểu liệt kê và miền con là những kiểu đếm được nên ta có thể sử dụng chúng làm biến kiểm soát trong cấu trúc điều kiện Case … of … , trong vòng lặp for … do … và còn làm chỉ số cho các mảng Array giúp cho chương trình trở nên dễ viết , dễ hiểu và dễ sửa khi gặp lỗi
Sử dụng kiểu miền con trong lập trình có nhiều ưu điểm , chương trình dễ đọc hơn rất nhiều , hơn nữa rất dễ phát hiện lỗi khi thực hiện chương trình thông qua các thủ tục kiểm tra các giá trị sẽ được gán cho các biến
Ưu điểm nổi bật của kiểu dữ liệu này là rất tiết kiệm bộ nhớ
Hàm Ord có thể được dùng để biến đổi các giá trị kiểu vô hướng thành các giá trị kiểu nguyên
Trong Pascal chuẩn thì không có cách nào để biến đổi từ kiểu số nguyên thành kiểu vô hướng , khả năng đổi ngược trở lại kiểu này được thực hiện bằng cách dùng tên kiểu cần đổi đến như là một tên hàm , tiếp theo là một tham số đặt trong dấu ngoặc đơn , tham số này có thể là giá trị thuộc về bất kỳ kiểu vô hướng nào trừ kiểu số thực Real
5 CÁC VÍ DỤ MINH HỌA :
BÀI 04 : KIỂU TẬP HỢP
1 ĐỊNH NGHĨA KIỂU :
Trong Pascal chỉ cho phép dạng tập hợp gồm tối đa 256 phần tử và các phần tử của tập hợp bắt buộc phải có cùng một kiểu gọi là kiểu cơ bản Kiểu cơ bản phải là kiểu đếm được tức là thuộc các kiểu vô hướng hay miền con nhưng không được là kiểu số thực
Cú pháp :
TYPE
TÊNKIỂU = SET OF < KIỂU ĐƠN GIẢN > ;
2 KHAI BÁO BIẾN :
Cú pháp 1 :
TYPE
TÊNKIỂU = SET OF < KIỂU ĐƠN GIẢN > ;
VAR
TÊNBIẾN : TÊNKIỂU ;
Cú pháp 2 :
VAR
TÊNBIẾN : SET OF < KIỂU ĐƠN GIẢN > ;
Trang 93 CÁC BIỂU THỨC TẬP HỢP :
Các giá trị tập hợp có thể được tính từ các giá trị tập hợp khác thông qua các biểu thức tập hợp
Biểu thức tập hợp bao gồm các hằng , các biến , kiến trúc tập hợp kết hợp với các toán tử tập hợp
Một hằng tập hợp trong Pascal có dạng : [ Danh sách các phần tử ]
Một tập hợp rỗng được ký hiệu [ ] là tập hợp không chứa bất kỳ biểu thức nào để chỉ
ra kiểu cơ sở của nó và nó tương thích với mọi kiểu tập hợp
4 CÁC KIẾN TRÚC TẬP HỢP :
Một kiến trúc tập hợp bao gồm một hoặc nhiều dạng chỉ định phần tử phân cách nhau bởi dấu phẩy và toàn bộ được đặt giữa hai dấu ngoặc vuông [ ]
Dạng chỉ định phần tử của tập hợp là một biểu thức cùng kiểu với kiểu cơ sở của tập hợp hoặc cũng có thể là miền giá trị được biết dưới dạng hai biểu thức đặt cách nhau bởi dấu chấm chấm “ ”
5 CÁC PHÉP TOÁN TRÊN TẬP HỢP :
Phép gán ( := ) :
Các giá trị có được từ các biểu thức có thể gán cho các biến của kiểu tập hợp bằng toán tử gán ( := ) Tập hợp rỗng có thể đem gán cho mọi biến của các kiểu tập hợp khác nhau
Phép nhân ( * ) :
Phép nhân gọi là tích ( còn gọi là giao ) của hai tập hợp A và B là tập hợp C gồm các phần tử chung cho cả hai tập hợp đó
Phép cộng ( + ) :
Phép cộng gọi là tổng ( còn gọi là hội ) của hai tập hợp A và B là tập hợp C gồm các phần tử của hai tập hợp đó
Phép trừ ( - ) :
Phép trừ gọi là hiệu của hai tập hợp A và B là tập hợp C gồm các phần tử thuộc A mà không thuộc B và ngược lại
Phép so sánh :
Hai tập hợp đem ra so sánh phải có cùng kiểu cơ bản
Kết quả của các phép so sánh là giá trị kiểu Boolean
Hai tập hợp gọi là bằng nhau nếu chúng có các phần tử như nhau từng đôi một không kể thứ tự sắp xếp các phần tử trong hai tập hợp Ngược lại là khác nhau Phép so sánh “ < = ” có giá trị True nếu tất cả các phần tử của tập hợp thứ nhất
đều thuộc tập hợp thứ hai
Phép so sánh “ > = ” có giá trị True nếu tất cả các phần tử của tập hợp thứ hai đều thuộc tập hợp thứ nhất
Chú ý :
Trong kiểu tập hợp , Pascal không sử dụng phép so sánh “ < ” hoặc “ > ” Muốn sử dụng hai phép so sánh này ta dùng :
If ( A < = B ) and ( A< >B ) then writeln ( ‘ A < B ’ ) ;
Để kiểm tra xem hai tập hợp A và B có phần tử nào chung không ta dùng :
If A * B = [ ] then writeln ( ‘ A va B khong co phan tu chung ’) ;
Trang 10 Toán tử IN :
Toán tử IN là toán tử kiểm tra phần tử đại diện của một tập hợp Toán hạng thứ hai thuộc kiểu tập hợp , còn toán hạng thứ nhất là một biểu thức cùng kiểu với kiểu cơ bản của tập hợp đó Kết quả kiểm tra cho trị Boolean : True nếu toán hạng thứ nhất là phần tử của toán hạng thứ hai , ngược lại cho trị là False
Độ ưu tiên của các toán tử :
Độ ưu tiên của các toán tử lần lượt như sau :
Độ ưu tiên thứ nhất là toán tử nhân ( * )
Độ ưu tiên thứ hai là toán tử cộng ( + ) và toán tử trừ ( - )
Độ ưu tiên thứ ba là toán tử quan hệ ( = ; < = ; > = ; < > ) và toán tử IN Trong một biểu thức nếu các toán tử có độ ưu tiên như nhau sẽ lần lượt thực hiện từ trái qua phải Các phép toán nằm trong dấu ngoặc bao giờ cũng được tính toán trước
6 NHẬP VÀ XUẤT DỮ LIỆU :
Các thủ tục Read , Readln và Write , Writeln không thể dùng để nhập hoặc xuất trực tiếp dữ liệu của kiểu tập hợp , ta có thể thực hiện các thủ tục này khi kiểu cơ bản của tập hợp là số nguyên
7 CÁC VÍ DỤ MINH HỌA :
BÀI 05 : KIỂU CHUỖI
1 ĐỊNH NGHĨA KIỂU :
Chuỗi ký tự là kiểu dữ liệu không chuẩn hay còn gọi là kiểu dữ liệu có cấu trúc gồm một chuỗi các kí tự trong bảng mã ASCII
Cú pháp :
TYPE
TÊNKIỂU = STRING [ n ];
* TYPE , STRING là các từ khóa
* TÊNKIỂU phải viết liền nhau , mang tính gợi nhớ Ký tự đầu tiên phải là chữ sau đó có thể sử dụng ký tự số và dấu gạch nối
* n là số ký tự tối đa trong kiểu hoặc biến
Ví dụ :
Type
Ho_ ten = string [24] ; Que_quan = string ;
2 KHAI BÁO BIẾN :
Cú pháp 1 :
TYPE
Tên_Kiểu = string [ n ] ;
VAR
Tên_Biến : Tên-Kiểu ;
Cú pháp 2 :
VAR