Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Информационная модель






Разработаем информационную модель. Входная переменная С и выходная переменная Х могут принимать любые значения из диапазона '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), значение 'ю' выходит за границу этого диапазона, поэтому происходит ошибка при проверке попадания значения в границы множества.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.