![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Ввод-вывод для перечислимых типов.
Не существует стандартного способа чтения/записи значений перечислимых типов с помощью операторов 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 Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение 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}
|