Читайте также:
|
|
Разработаем информационную модель. Входная переменная С и выходная переменная Х могут принимать любые значения из диапазона 'A'..'Z'. Так как тип диапазон является нестандартным, то мы должны ему дать имя, например, LAT_ALF. Промежуточное данное - n, порядковый номер искомой литеры типа BYTE (см. литерный тип данных СHAR).
Таблица 11.2. Информационная модель задачи
Статус | Назначение | Имя | Тип данных |
Входная информация | исходная литера | С | LAT_ALF |
Выходная информация | искомая литера | Х | LAT_ALF |
Промежуточная информация | порядковый номер искомой литеры | n | byte |
TYPE LAT_ALF='A'..'Z';
Программная модель
PROGRAM SIM_BUK;
{ Назначение: нахождение в латинском алфавите буквы симметричной заданной относительно центра алфавита.
}
TYPE LAT_ALF='A'..'Z';
VAR n {код искомой буквы (промежуточная инф.)}: BYTE;
C {заданная латинская буква (вход.инф.)},
X {искомая латинская буква (выход.инф.)}: LAT_ALF;
BEGIN
{Ввод исходной информации}
WRITELN('Введите латинскую букву');
READLN (C);
{Расчет по формулам}
n:= ORD('A') + ORD('Z') - ORD(C);
X:= CHR(n);
{Вывод результирующей информации}
WRITELN('Буква ', X, ' симметрична букве ', C)
END.
Первый пример исполнения программы SIM_BUK
0) До выполнения программы осуществляется распределение свободного участка памяти под переменные величины, описанные в разделе переменных программы (рис.11.19). Содержимое выделенных участков памяти - неопределенное;
ОП | ||
n | ? | под хранение данного типа BYTE (1Б) |
C | ? | под хранение данного типа LAT_ALFREAL (1Б) |
X | ? | под хранение данного типа LAT_ALFREAL (1Б) |
Рис. 11.19. – Содержимое ОП
1) выполняется обращение к процедуре вывода:
WRITELN('Введите латинскую букву')
Вычисляется фактический параметр-выражение. Получается строка символов. Она выводится на экран. На экране, начиная с текущего положения курсора, появляется сообщение:
Введите латинскую букву
, и курсор переводится в начало следующей строки экрана дисплея;
2) выполняется обращение к процедуре ввода:
READLN (С)
Программа ожидает получения информации в виде одного символа с клавиатуры ПЭВМ. Человек набирает эту информацию, например, ю и нажимает клавишу ввод (Return или Enter). Эта информация должна поступить в память под именем С, но происходит прерывание решения задачи (она снимается с решения), о чем свидетельствует сообщение:
Error 201: Range СheСk error
(ошибка при проверке границ)
Действительно, множество значений для переменной С лежит в диапазоне от 'A'..'Z' (определяется типом LAT_ALF), значение 'ю' выходит за границу этого диапазона, поэтому происходит ошибка при проверке попадания значения в границы множества.
Дата добавления: 2015-01-05; просмотров: 78 | Поможем написать вашу работу | Нарушение авторских прав |