Pascal - Kiểu ký tự (char)

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

pdf9 trang | Chia sẻ: maiphuongdc | Lượt xem: 22481 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Pascal - Kiểu ký tự (char), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 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ểu ký 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 Chép tập tin nguồn 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 Chép tập tin nguồn

Các file đính kèm theo tài liệu này:

  • pdfkieu_ky_tu_2152.pdf
Tài liệu liên quan