Các kiểu dữ liệu có cấu trúc – Cách khai báo

Một phần của tài liệu Giáo trình Nhập môn Tin học ThS. Đào Tăng Kiệm (Trang 38 - 41)

PHẦN III NGÔN NGỮ LẬP TRÌNH PASCAL -1

Chương 2 CÁC KIỂU DỮ LIỆU VÀ CÁCH KHAI BÁO – BIỂU THỨC

III. Các kiểu dữ liệu có cấu trúc – Cách khai báo

1. Khái niệm : Trong Turbo Pascal có 6 kiểu dữ liệu có cấu trúc: Array, Set, Record, File, String, Pointer. Muốn làm việc với các dữ liệu này, trước tiên phải khai báo tường minh chúng, một số loại có thể khai báo trực tiếp như Array, String, còn một số khác phải khai báo gián tiếp (mô tả cấu trúc – mô tả kiểu của dữ liệu trước khi khai báo chúng qua

từ khóa Type).

2. Khai báo - mô tả kiểu:

 Để mô tả một kiểu dữ liệu mới do người lập trình tự tạo dùng từ khóa TYPE có cấu trúc như sau:

TYPE

Tên kiểu = Mô tả cấu trúc

Ví dụ: Type

Thang = [1..12] ;

VT = array [1.. 50] of Real ;

Hoso = Record

HT : string [25] ;

NS: integer;

LT : array [1.. 30 ] of real ;

End;

Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal - 1 GVC: Đào Tăng Kiệm

3. Kiểu mảng (Array):

 Khái niệm:

- Mảng là loại dữ liệu có cấu trúc, là một tập hợp các phần tử có cùng kiểu dữ liệu. Mỗi mảng có một tên chung và các chỉ số để phân biệt giữa các phần tử mảng. Mảng có thể

là 1 chiều véc tơ), 2 chiều (ma trận) hoặc n chiều.

- Cũng như các biến khác, khi sử dụng mảng, phải khai báo, tuy nhiên, khác với các biến đơn, ngoài việc khai báo tên, kiểu của biến mảng còn phải khai báo số chiều, kích thước mỗi chiều của mảng để máy dành sẵn bộ nhớ cho các mảng. Mảng có thể khai báo trực tiếp trong Var hoặc khai báo gián tiếp qua Type.

- Các chỉ số của phần tử mảng phải đặt trong cặp ngoặc vuông [ ]; Chỉ số mảng phải

là số nguyên , có thể là các hằng, biến, biểu thức đơn giản. Các chỉ số ngăn cách nhau bởi dấu phẩy. Ví dụ A[i], C[i, j], B[1] ; HT [i+1] ;

- Tên và chỉ số mảng có thể viết hoa hoặc chữ thường (như nhau)

 Cách khai báo mảng:

- Khai báo trực tiếp:

Var Danh_sách_biến_mảng : array [n1 .. n2, m1.. m2, ..] of kiểu_phần_t ;

Trong đó n1,m1 là các chỉ số đầu, n2,m2 là các chỉ số cuối của mảng. Kiểu phần tử phải là một trong các kiểu đơn giản chuẩn hoặc kiểu mới (thì phải khai báo trước đó).

Ví dụ : Var A,B : array [ 1.. 30 ] of real; HT: array [ 1.. 50 ] of string [20];

C: array [ 1.. 30, 1..5 ] of integer ;

- Khai báo gián tiếp:

Type Kiểu_mảng = array [n1 .. n2, m1.. m2, ..] of kiểu_phần_tử ; Var Danh_sách_biến_mảng : Kiểu_mảng ;

Ví dụ : Type

VT1 = array [ 1.. 30 ] of real; VT2 = array [ 1.. 50 ] of string [20];

VT3 = array [ 1.. 30, 1..5 ] of integer ;

HS = record

HT, DC, Lop : string ; Diem: real ;

End;

Var A,B : VT1 ; HT :VT2 ; C: VT3;

DSSV : HS;

4. Dữ liệu kiểu bản ghi

 Khái niệm:

- Bản ghi (Record) là dữ liệu có cấu trúc trong đó mỗi bản ghi có thể có nhiều trường (Field), mỗi trường có thể có kiểu dữ liệu và cấu trức khác nhau (đơn, mảng, bản ghi).

- Bản ghi có thể là đơn (1 bản ghi) hoặc tập hợp với nhau trong một mảng, trong đó mỗi phần tử mảng là một bản ghi.

- Bản ghi có thể lồng nhau: trong các trường của bản ghi lại có thể có bản ghi con.

Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal - 1 GVC: Đào Tăng Kiệm

Bộ môn Tin học Xây dựng 11

- Trước khi sử dụng bản ghi dưới dạng biến (đơn, mảng) , phải khai báo hay mô tả cấu trúc bản ghi qua từ khóa Type.

- Tên của kiểu và tên trường bản ghi cũng tuân theo cách đặt tên thông thường của Pascal.

 Cách khai báo - mô tả cấu trúc bản ghi:

Type Tên_bản ghi = Record Tên trường 1 : Kiểu ; Tên trường 2 : Kiểu ; . . .

Tên trường n : Kiểu ; End;

 Ví dụ:

Khai báo gián tiếp

Type

HosoCB = record

Hoten : string [30] ;

Diachi : string [ 50 ] ;

Gioi_tinh : Char ;

SPthang: array [1.. 12] of integer ;

Luong : real ;

End;

Var Canbo: HosoCB ;

DS: array [ 1..50] of HosoCB ;

Khai báo trực tiếp Var Canbo: record Hoten : string [30] ; Diachi : string [ 50 ] ; Gioi_tinh : Char ; SPthang: array [ 1.. 12 ] of integer ; Luong : real ;

End;

5. Dữ liệu kiểu tập hợp

 Khái niệm: Tập hợp là một số phần tử có cùng một số tính chất nào đó, có thể là các

số tự nhiên, hoặc một trong các kiểu dữ liệu vô hướng (trừ kiểu thực –Real). Trong tập hợp không có phần tử trống. Số lượng phần tử cực đại trong tập tùy thuộc vào cấu hình máy (với Turbo Pascal là 256). Một tập được đặt trong cặp ngoặc vuông [ ]. Các thành phần của tập ngăn cách nhau bởi dấu phẩy (,).

 Khai báo : tập cũng có thể khai báo trực tiếp hoặc gián tiếp qua từ khóa SET OF

Khai báo trực tiếp

Var

Danh_sách_biến: SET OF < kiểu vô hướng>

Khai báo gián tiếp

Type Tên_kiểu = SET OF < kiểu vô hướng> Var

Danh_sách_biến: Tên_kiểu

 Ví dụ

Giáo trình Nhập môn Tin học: Phần III – Ngôn ngữ lập trình Pascal - 1 GVC: Đào Tăng Kiệm

Type

T1 = Set of 5..10 ; T2 = Set of 7.. 15 Var Mon _BB: T1 ; Mon_TC :T2 ;

 Các phép tính với tập: Tập có thể tham gia các phép toán số học như : phép gán, phép hợp (+), hiệu (-), giao (*) và các phép tính so sánh (<, >, = >= ….),

Ví dụ : Phép gán : T:= T1 kết quả : tập T giống hệt T1

Phép hợp : A:= T1+ T2 kết quả A [5 .. 15] : các phần tử thuộc T1 hoặc T2

Phép hiệu: B:= T1- T2 kết quả B [5,6] : các phần tử thuộc T1không thuộc T2 Phép hợp : C:= T1* T2 kết quả C [7 .. 10] : các phần tử thuộc cả T1 và T2

Phép so sánh T1= T2 kết quả : Sai – False

Phép so sánh T1> T2 kết quả : Sai - False

Phép so sánh T1< T2 kết quả : Đúng – True vì T1 là tập con của T2

Một phần của tài liệu Giáo trình Nhập môn Tin học ThS. Đào Tăng Kiệm (Trang 38 - 41)

Tải bản đầy đủ (PDF)

(65 trang)