Тип Char — порядковый тип!
В таблице кодов вы могли заметить такую закономерность:
'0'<’1’< '2'< '3'< ...< '9'<... <'А'< 'В'< 'С'< ...< 'X' < 'Y' < 'Z’... (коды символов упорядочены).
Таким образом, для каждого элемента типа Char всегда есть предшествующий и последующий элементы.
Такой тип данных называется порядковым.
Тип Char — порядковый тип.
Тип Integer также является порядковым.
Пример 3.3.
Стандартные функции, применяемые к порядковому типу
Program Letter3;
var
Х1,Х2,ХЗ,Х4: Char;
begin
X1: ='L';
writeln(Xl) ;
X2:=Pred (X1); { Функция Pred возвращает предшествующий элемент относительно значения переменной X1 }
writeln('Pred=',X2);
X3:=Succ (X1); { Функция Succ возвращает последующий элемент относительно значения переменной X1 }
writeln('Succ=',ХЗ);
readln
end.
При выполнении программа выведет на экран следующее:
L
Pred=K
Succ=M
Задание 3.1.
Напишите программу расшифровки 4-буквенного однословного сообщения. Для получения 4 букв нужно ввести 3 строки:
- из первой строки прочесть только первую букву;
- из второй строки прочесть только первую букву;
- из третьей строки прочесть первую и вторую буквы.
Далее расшифровать полученные четыре буквы по такому алгоритму: вместо первой и третьей букв подставить соответственно буквы, отстоящие от них по алфавиту на две буквы назад, а вторую и четвертую буквы оставить без изменения.
Для проверки возьмите пример, приведенный ниже.
Ввод:
FINISHED
OR
PENDING?
На выводе должно быть слово DONE.
Задание 3.2.
Известно, что коды прописных (заглавных) букв латинского алфавита следуют в таблице непрерывно друг за другом. Коды строчных букв латиницы также следуют непрерывно друг за другом на расстоянии 32 символов от прописных (ниже по таблице).
Если ord('A') = 65, то ord('A')+32 = 97, и это код строчной буквы «а», то есть chr(ord('A')+32) = 'а'.
Напишите программу, в которой вы вводите прописную букву (только латиницу!), а получаете ее строчной эквивалент, и наоборот, по строчной букве получаете соответствующую прописную.
ЗАМЕЧАНИЕ
С русскими символами такого порядка нет из-за особенностей организации кодовой таблицы. В частности, строчные буквы в таблице следуют не подряд, а с разрывом в середине алфавита.
Выводы
1. Все символы хранятся в компьютере в виде кодов.
2. Обычно для кодирования символов применяется таблица ASCII.
3. Каждому символу соответствует свой код.
4. Для преобразования символов в коды и обратно применяют функции ord и chr.
5. Тип Char является порядковым типом.
6. Коды буквы латинского алфавита идут последовательно.
7. Русские буквы хранятся в таблице символов ASCII с разрывом в последовательности кодов.
8. Для получения следующего и предыдущего символов используют соответственно функции succ и pred.
Контрольные вопросы
1. Сколько всего различных символов кодируется таблицей ASCII?
2. Какой объем памяти требуется для кодирования одного символа? А 15 символов?
3. Какой тип данных в Паскале предназначен для хранения символьной информации? Сколько символов можно поместить в одну переменную этого типа?
4. Какой код у буквы «F»? Какой символ кодируется кодом 87?
5. В программе определены 3 переменные (a,b,c:char;). В ответ на инструкцию readln(b,а,с); пользователь ввел текст Леша. В каком месте памяти оказалась каждая из введенных букв?
6. Каков будет результат выполнения инструкции c:=succ(pred(succ('D')))?
7. Какое значение получит переменная i в операторе i := pred(ord('F’) - 2)?
<< Назад В начало Далее >>
Комментарии: 2014-10-25 ответил Санёк
Вот то, что мне было нужно. Спасибо.
Добавить свой комментарий:
|
|