Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Тип 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 ответил Санёк

Вот то, что мне было нужно. Спасибо.




Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru