русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод-вывод для перечислимых типов.


Дата добавления: 2014-05-03; просмотров: 663; Нарушение авторских прав


 

Не существует стандартного способа чтения/записи значений перечислимых типов с помощью операторов READ/WRITE, такого как для типа CHAR. Для того, чтобы проиллюстрировать как организуется ввод-вывод, будет разработан модуль чтения-записи для перечислимого типа Month, представляющего месяцы года. Этот модуль будет содержать две процедуры ReadMonth и WriteMonth, но не будет содержать объявлений данных. То есть это чисто вычислительный модуль.

ReadMonth преобразует три символа в файле открытом для чтения в значение типа Month, если это возможно. Например, если следующие три символа ‘J’, ‘A’, ‘N’, тогда ReadMonth вернет значение Jan типа Month. Однако если для трех считанных символов нет соответствующего значения типа Month, будет сообщено об ошибке. Простой и полезный способ сообщения об ошибке – расширить тип Month значением NoMonth. Тогда, если три считанных символа не являются сокращенным названием месяца, ReadMonth возвращает значение NoMonth.

 

Объявление типа будет следующим:

TYPE

Month = (NoMonth, Jan, Feb, Mar, Apr, May, Jun,

Jul, Aug, Sep, Oct, Nov, Dec);

 

Процедуры модуля будут в основном использоваться для чтения из INPUT и записи в OUTPUT, но дисциплина проектирования модулей требует чтобы в процедуры передавались как параметры файловые переменные, иначе придется работать с данными за пределами модуля.

 

PROCEDURE ReadMonth(VAR FIn: TEXT; VAR Mo: Month)

{Fin.3 = R и length(Fin.2) >= 3 ->

читать три символа из Fin.2, затем присвоить Mo

соответствующее значение типа Month, если это возможно,

иначе присвоить Mo значение NoMonth}

VAR

Ch1,Ch2,Ch3 : CHAR;

BEGIN{ReadMonth}

READ(FIn,Ch1,Ch2,Ch3);

IF (Ch1='J')AND (Ch2='A')AND (Ch3='N') THEN Mo:=JAN ELSE

IF (Ch1='F')AND (Ch2='E')AND (Ch3='B') THEN Mo:=FEB ELSE



IF (Ch1='M')AND (Ch2='A')AND (Ch3='R') THEN Mo:=MAR ELSE

IF (Ch1='A')AND (Ch2='P')AND (Ch3='R') THEN Mo:=APR ELSE

IF (Ch1='M')AND (Ch2='A')AND (Ch3='Y') THEN Mo:=MAY ELSE

IF (Ch1='J')AND (Ch2='U')AND (Ch3='N') THEN Mo:=JUN ELSE

IF (Ch1='J')AND (Ch2='U')AND (Ch3='L') THEN Mo:=JUL ELSE

IF (Ch1='A')AND (Ch2='U')AND (Ch3='G') THEN Mo:=AUG ELSE

IF (Ch1='S')AND (Ch2='E')AND (Ch3='P') THEN Mo:=SEP ELSE

IF (Ch1='O')AND (Ch2='C')AND (Ch3='T') THEN Mo:=OCT ELSE

IF (Ch1='N')AND (Ch2='O')AND (Ch3='V') THEN Mo:=NOV ELSE

IF (Ch1='D')AND (Ch2='E')AND (Ch3='C') THEN Mo:=DEC

ELSE Mo:=NoMonth

END; {ReadMonth}

 

 

PROCEDURE WriteMonth(VAR FOut: TEXT; VAR Mo: Month);

{Fin.3 = Ц и Mo <> NoMonth ->

вывести три символа соответствующие значению Mo, в Fout.1}

VAR

Ch1,Ch2,Ch3 : CHAR;

BEGIN {WriteMonth}

IF Mo=JAN THEN WRITE('Jan') ELSE

IF Mo=FEB THEN WRITE('Feb') ELSE

IF Mo=MAR THEN WRITE('Mar') ELSE

IF Mo=APR THEN WRITE('Apr') ELSE

IF Mo=MAY THEN WRITE('May') ELSE

IF Mo=JUN THEN WRITE('Jun') ELSE

IF Mo=JUL THEN WRITE('Jul') ELSE

IF Mo=AUG THEN WRITE('Aug') ELSE

IF Mo=SEP THEN WRITE('Sep') ELSE

IF Mo=OCT THEN WRITE('Oct') ELSE

IF Mo=NOV THEN WRITE('Nov') ELSE

IF Mo=DEC THEN WRITE('Dec')

END; {WriteMonth}

 



<== предыдущая лекция | следующая лекция ==>
Синтаксис и значение выражений перечислимого типа. | Сравнение дат.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.307 сек.