Dữ liệu kiểu chuỗi (String Type Data)

Một phần của tài liệu Giáo trình Pascal (Trang 49 - 51)

II. KIểU MảNG, KIểU CHUẩN

2. Dữ liệu kiểu chuỗi (String Type Data)

Một chuỗi dữ liệu là một loạt các ký tự đợc định nghĩa bằng từ khoá STRING theo sau là số ký tự cực đại có thể có của chuỗi ký tự. String là một kiểu cấu trúc đợc thêm vào trong Turbo Pascal.

a. Khai báo

Chúng ta có thể khai báo kiểu chuỗi ký tự String gián tiếp hoặc trực tiếp. Khai báo gián tiếp là khai kiểu trớc rồi sau đó mới khai báo biến. Cách khai báo trực tiếp là khai thẳng biến số. Chiều dài tối đa của chuỗi ký tự phải là một hằng nguyên và đợc đặt trong dấu ngoặc vuông []. Trờng hợp không khai báo thì chơng trình sẽ lấy giá trị mặc nhiên là 255 ký tự

+ Khai báo gián tiếp

TYPE

<Tên kiểu String> = STRING [hằng nguyên]; VAR

<Tên biến>: <Tên kiểu String>;

Ví dụ 8.14: TYPE

TenSV = STRING [25]; {định độ dài tối đa là 25} Diachi = STRING; {mặc nhiên có độ dài tối đa là 255} VAR

HT: TenSV; DC: Diachi;

+ Khai báo trực tiếp

VAR

<Tên biến>: STRING [hằng nguyên];

Ví dụ 8.15:

VAR

HT: STRING [25]; DC: STRING;

Chuỗi ký tự sẽ chiếm số byte trong bộ nhớ bằng số ký tự lớn nhất đã khai báo trớc cộng thêm 1 byte đầu tiên chứa số ký tự hiện có của chuỗi ký tự.

Ví dụ 8.16:

TYPE DH = STRING[10]; VAR CT: DH;

và nếu ta gán CT:= CAN THO;

Chú ý:

- Độ dài của chuỗi ký tự CT là 7 ký tự mặc dầu độ dài lớn nhất cho phép là 10. - Vì ta dùng 1 byte để chứa chiều dài nên string chỉ có tối đa là 255 ký tự. b. Các thao tác trên chuỗi

+ Phép gán

Giống nh phép gán trong các kiểu vô hớng khác, phép gán chuỗi là lệnh gắn một biến với một biểu thức ký tự để trong cặp dấu nháy đơn

Cú pháp:

<Tên biến>:= Biểu thức ký tự;

Ví dụ 8.17:

HT:= Lê Văn Hai;

DC:= Số 12/4 đờng Trần Hng ạo, TP. Cần thơ;

+ Phép cộng

Phép cộng là thuật toán nối các chuỗi lại với nhau bằng dấu cộng (+). Ví dụ trên nếu ghép HT + DC thì ta sẽ đợc:

Lê Văn Hai Số 12/4 đờng Trần Hng ạo, TP. Cần thơ

Ghi chú: Không có phép trừ, nhân, chia trong chuỗi ký tự.

+ Các phép so sánh

Các so sánh gồm có bằng nhau =, lớn hơn >, lớn hơn hoặc bằng >=, khác nhau <>, nhỏ hơn <, nhỏ hơn hoặc bằng <=

Khi so sánh 2 chuỗi ký tự thì các ký tự đợc so sánh từng cặp một từ trái sang

phải theo giá trị của bảng mã ASCII. Có 2 khả năng xảy ra khi so sánh:

- Nếu 2 chuỗi có độ dài khác nhau nhng số ký tự giống nhau cho đến độ dài chuỗi ngắn nhất thì chuỗi ngắn nhỏ hơn chuỗi dài.

Ví dụ 8.18: 'Nation' < 'National ''Lan' < 'Lang' - Nếu 2 chuỗi có độ dài và nội dung giống nhau thì bằng nhau.

Ví dụ 8.19: 'Hello' = 'Hello'

Ghi chú: Chuỗi rổng (null string, viết là '') là chuỗi không có chứa gì cả. Nó có giá trị nhỏ hơn mọi string khác rỗng.

Vì vậy: 'A' >'' và chr(32)> ''

+ Câu lệnh Read và Readln

Hai câu lệnh này đối với chuỗi cũng tơng tự nh đối với các kiểu vô hớng khác, nhng cần lu ý:

- Lệnh Read và Readln chỉ cho phép đọc tối đa 127 ký tự một chuỗi nhập từ bàn phím mặc dầu chiều dài tối đa của một chuỗi có thể đến 255 ký tự.

- Nếu ta đọc một lúc nhiều biến theo kiểu Read(biến1, biến2,..., biếnN) ( hoặc Readln(biến1, biến2,..., biếnN)) thì có thể bị nhầm lẫn khi ta nhập giá trị có độ dài v- ợt quá độ dài tối đa của biến1 thì phần vợt sẽ đợc gán cho biến2. Ngợc lại, nếu ta nhập giá trị ít hơn độ dài của biến1 thì chơng trình lại lấy các giá trị của biến2 gán thêm cho biến1 kể cả khoảng trống. Do vậy, cách tốt nhất là đối với biến kiểu String chỉ nên nhập mỗi lần 1 biến.

Ví dụ 8.20: Nên tránh viết kiểu Read(TenSV, Diachi); mà nên viết: Read(TenSV);

Read(Diachi); hoặc:

Readln(TenSV); Readln(Diachi);

- ộ dài thực tế của chuỗi là độ dài thực tế khi ta đọc vào từ bàn phím mặc dầu trớc đó ta có khai báo độ dài chuỗi. Nếu ta gõ Enter mà không gõ ký tự nào trớc đó thì mặc nhiên chơng trình hiểu đó là một chuỗi rỗng (null string hay st = '').

+ Câu lệnh Write và Writeln

Tơng tự nh trên nhng cần một số lu ý về cách viết:

- Nếu viết Write(st) hoặc Writeln(st) gọi là cách viết không qui cách thì mỗi ký tự sẽ chiếm 1 vị trí trên màn hình.

- Nếu viết Write(st: n) hoặc Writeln(st: n) gọi là cách viết theo qui cách, với n là số nguyên, thì màn hình sẽ dành n vị trí để viết chuỗi st theo lối canh trái nếu n> 0 và ngợc lại theo lối canh phải nếu n < 0.

- Một số chuỗi mà trong đó có dấu nh là một chữ viết tắt, ví dụ nh câu: Hes an Intal staff (Ông ta là một nhân viên quốc tế) thì nơi có dấu phải viết thành (đây là 2 dấu nháy đơn chứ không phải là 1 dấu nháy kép ).

Ta viết:

Writeln ( ‘ He ‘’s an Int’’al staff ‘);

Một phần của tài liệu Giáo trình Pascal (Trang 49 - 51)

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

(82 trang)
w