Обработка символов. В Pascal существует стандартный тип данных, который называется символьным – char. Элемент такого типа занимает в памяти 1 байт. Этот тип является порядковым, и значения символьных переменных могут сравниваться между собой. К символьным переменным относятся: все заглавные латинские буквы ‘A’, ‘B’, ‘C’,…, ‘Z’; строчные ‘a’, ‘b’, ‘c’, …, ‘z’; цифры ‘0’, ‘1’, ‘2’, …, ‘9’; знаки препинания; всевозможные скобки; русские буквы и т.д. В программах их значения всегда заключаются в апострофы. Внутри каждого такого ряда коды символов упорядочены: ‘A’< ‘B’< ‘C’<…< ‘Z’; ‘a’< ‘b’< ‘c’< …< ‘z’; ‘0’< ‘1’< ‘2’< …< ‘9’; ‘А’< ‘Б’< ‘В’<…< ‘Я’; ‘a’< ‘б’< ‘в’< …< ‘я’. Коды всех строчных букв меньше, чем заглавных. Для работы с таким типом данных, как и для других порядковых типов, часто используются функции: № 1 функция CHR(x:byte): char 2 ORD(x:char): byte 3 UpCase(x:char):char 4 Pred(x:char):char 5 SUCC(x:char):char Назначение Возвращает символ соответствующий числу х по ASCII-коду Возвращает число соответствующий символу х по ASCII-таблице Преобразует символы из строчных букв в прописные Возвращает символ, который предшествует символу х в таблице ASCII Возвращает символ, который следует за символом х в таблице ASCII Символьные переменные могут использоваться как переменные цикла, например for i:= ‘Z’ downto ‘A’ do <оператор>; или for i:= ‘A’ to ‘Z’ do <оператор>; Упражнение №1. Заполните пустые ячейки таблицы: Значение х функция 53 CHR(x); ‘d’ Ord(x) ‘d’ UpCase(x) ‘w’ UpCase(x) ‘a’ Pred(x) ‘A’ Pred(x) ‘я’ Succ(x) Упражнение №2. Вывести в одну строку ABBCCC…ZZ…Z. Program pr1; uses crt; var i: char; k, j: integer; Begin clrscr; k:=1; for i:= ‘A’ to ‘Z’ do begin for j:=1 to k do write (i); k:=k+1; end; readln; end. Упражнение №3. Вывести в одну строку ZYY…AA…A. Program pr2; uses crt; var i: char; k, j: integer; Begin clrscr; k:=1; for i:= ‘Z’ downto ‘A’ do begin for j:=1 to k do write (i); k:=k+1; end; readln; end. результат Упражнение №4. Вывести треугольник ABC…Z BC…Z ……. Z Program pr3; uses crt; var i, l: char; j: integer; Begin clrscr; l:= ‘A’; for j:= 1 to 26 do begin for i:= ‘A’ to l do write (‘ ’ ); for i:=l to ‘Z’ do write(i); writeln; l:=succ(l); end; readln; end. Таблица ASCII символов в Паскаль