KIỂUKÝTỰ(CHAR) 6.4.1. Kýtự và biến kiểuký tự: Ký tự Mã ASCII Ký tự Mã ASCII Ký tự Mã ASCII 32 A 65 a 97 0 48 B 66 b 98 1 49 C 67 c 99 2 50 D 68 d 100 3 51 E 69 f 101 4 52 F 70 e 102 5 53 G 71 g 103 6 54 H 72 h 104 7 55 I 73 i 105 8 56 J 74 j 106 9 57 K 75 k 107 L 76 l 108 M 77 m 109 N 78 n 110 O 79 o 111 P 80 p 112 Q 81 q 113 R 82 r 114 S 83 s 115 T 84 t 116 U 85 u 117 V 86 v 118 W 87 w 119 X 88 x 120 Y 89 y 121 Z 90 z 122 Bảng 6.5 Các kýtự dùng trong máy tính điện tử được liệt kê đầy đủ trong bảng mã ASCII gồm 256 kýtự khác nhau và được đánh số thứ tựtừ 0 đến 255. Số thứ tự của mỗi kýtự còn gọi là mã ASCII của kýtự đó. Biểu 6.5 liệt kê một phần của bảng mã ASCII gồm các chữ số và chữ cái kèm theo mã của chúng. Trong bảng 6.5, kýtự có mã bằng 32 là kýtự trắng (space). Tuy có 256 kýtự khác nhau song chỉ có 128 kýtự đầu tiên là hay dùng, còn lại là các kýtự mở rộng. Các kýtự có mã từ 0 đến 31 gọi là các kýtự điều khiển, không in ra được, được dùng để điều khiển các thiết bị ngoại vi, chẳng hạn kýtự có mã là 7 dùng để tạo một tiếng kêu bip, kýtự có mã là 13 dùng để chuyển con trỏ màn hình xuống đầu dòng dưới Mỗi kýtự trong bảng mã ASCII gọi là một hằng ký tự, chiếm độ dài 1 byte, và khi viết trong Pascal phải được đặt trong cặp nháy đơn: ‘0’, ‘1’, ‘A’, ‘B’, ‘$’, Giữa các ký tự, có một thứ tự mặc nhiên theo nguyên tắc : kýtự có mã nhỏ hơn thì nhỏ hơn. Tức là: Kýtự trắng < ‘0’< ‘1’< < ‘9’< ‘A’< ‘B’< ’Z’< ‘a’< ‘b’< < ‘z’ Biến nhận gía trị là các hằng kýtự gọi là biến kiểuký tự, chúng được khai báo nhờ từ khóa CHAR, chẳng hạn như khai báo hai biến ch và ch1 dưới đây: Var ch, ch1: Char ; Khi đó có thể gán: ch:=‘A’; ch1:=‘$’; Kýtự ‘A’ gọi là gía trị của biến ch, còn ‘$’ là gía trị của biến ch1. Nhận xét: Từ bảng mã của các chữ cái ta suy ra: Mã chữ thường = Mã chữ hoa tương ứng + 32. (1) 6.4.2. Các hàm liên quan đến kýtự : Hàm PRED(ch): cho kýtự đứng ngay trước kýtự ch trong bảng mã. Ví dụ: Pred(‘B’)=‘A’ Hàm SUCC(ch): cho kýtự đứng ngay sau kýtự ch trong bảng mã. Ví dụ: Succ(‘A’)=‘B’. Hàm UpCase(ch): đổi kýtự ch thành chữ hoa. Ví dụ: Upcase( ‘a’ ) = ‘A’, Upcase( ‘b’ ) = ‘B’, Upcase( ‘A’ ) = ‘A’ . Hàm ORD(ch) : cho mã của kýtự ch. Ví dụ: Ord (‘A’) = 65, Ord (‘a’) = 97 . Hàm CHR(k) : đối số k nguyên, 0 k 255, cho kýtự có mã bằ?g k. Ví dụ: Chr (65)= ‘A’ , Chr (97)= ‘a’, Chr(32) là kýtự trắng. Có một số kýtự không có trên bàn phím, để viết chúng lên màn hình ta phải dùng lệnh Write và hàm CHR. Ví dụ: Lệnh Writeln(Chr(201)) ; in ra kýtự : + Lệnh Writeln(Chr(187)) ; in ra kýtự : + Kýtự có mã là 7 gọi là kýtự BEL (chuông), và lệnh: Write( Chr(7) ) ; hay Write(#7) ; có tác dụng phát ra một tiếng kêu bip. Chú ý: Turbo Pascal ( TP ) cho phép viết gọn Chr(k) thành #k nếu k là hằng số. Ví dụ, hai lệnh sau cùng in lên màn hình chữ A : Write(#65); Write(Chr(65)); Trong TP không có hàm đổi chữ hoa ra chữ thường, nhưng có thể làm việc này nhờ công thức (1) và hai hàm Ord và Chr : Chữ thường := Chr ( Ord(chữ hoa) + 32 ) Ví dụ 6.4: Nhập vào một số nguyên k, 0 k 255, in ra kýtự có mã là k. Chương trình kết thúc khi nhập vào số 0 : PROGRAM VIDU64 ; Uses CRT; Var k : Byte; Begin CLRSCR; Writeln(‘ Nhập số 0 để kết thúc :’); Repeat Write(‘ Nhập mã của kýtự : ‘); Readln(k); Writeln(‘ Kýtự có mã ‘, k, ‘ là ‘ , Chr(k) ); Until k=0; End. Chạy<VD64.EXE> Chép tập tin nguồn <VD64.PAS> Ví dụ 6.5: Nhập một ký tự, nếu là chữ hoa thì đổi ra chữ thường, nếu là chữ thường thì đổi ra chữ hoa. PROGRAM VIDU65; { Ðổi chữ hoa ra thường và ngược lại} Var ch, ch1 : Char; Begin Write(‘ Nhập một kýtự :’); Readln(ch); If (ch>=‘A’) and ( ch<=‘Z’) then ch1:=Chr( Ord (ch)+32) else ch1:= Upcase(ch); Writeln(ch, ‘ đã đổi ra: ‘ , ch1); Readln; End. Chạy<VD65.EXE> Chép tập tin nguồn <VD65.PAS> . KIỂU KÝ TỰ (CHAR) 6.4.1. Ký tự và biến kiểu ký tự: Ký tự Mã ASCII Ký tự Mã ASCII Ký tự Mã ASCII 32 A 65 a 97 0 48 B 66 b 98. ký tự có mã bằng 32 là ký tự trắng (space). Tuy có 256 ký tự khác nhau song chỉ có 128 ký tự đầu tiên là hay dùng, còn lại là các ký tự mở rộng. Các ký tự có mã từ 0 đến 31 gọi là các ký tự. Các ký tự dùng trong máy tính điện tử được liệt kê đầy đủ trong bảng mã ASCII gồm 256 ký tự khác nhau và được đánh số thứ tự từ 0 đến 255. Số thứ tự của mỗi ký tự còn gọi là mã ASCII của ký tự