Студопедия

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

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

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






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Ввод-вывод для перечислимых типов.






     

    Не существует стандартного способа чтения/записи значений перечислимых типов с помощью операторов 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}

     






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