• Новости
  • Темы
    • Экономика
    • Здоровье
    • Авто
    • Наука и техника
    • Недвижимость
    • Туризм
    • Спорт
    • Кино
    • Музыка
    • Стиль
  • Спецпроекты
  • Телевидение
  • Знания
    • Энциклопедия
    • Библия
    • Коран
    • История
    • Книги
    • Наука
    • Детям
    • КМ школа
    • Школьный клуб
    • Рефераты
    • Праздники
    • Гороскопы
    • Рецепты
  • Сервисы
    • Погода
    • Курсы валют
    • ТВ-программа
    • Перевод единиц
    • Таблица Менделеева
    • Разница во времени
Ограничение по возрасту 12
KM.RU
Рефераты
Главная → Рефераты → Информатика, программирование
  • Новости
  • В России
  • В мире
  • Экономика
  • Наука и техника
  • Недвижимость
  • Авто
  • Туризм
  • Здоровье
  • Спорт
  • Музыка
  • Кино
  • Стиль
  • Телевидение
  • Спецпроекты
  • Книги
  • Telegram-канал

Поиск по рефератам и авторским статьям

Условный оператор. Блок. Оператор выбора

Условный оператор. Блок. Оператор выбора

С.А. Григорьев

Условный оператор в Паскале записывается в виде:

IF логическое выражение THEN оператор/блок [ELSE оператор/блок] логическое выражение - это любое выражение, значение которого имеет тип Boolean, блок - это последовательность операторов, заключенная в логические скобки : BEGIN операторы END; . Перед ELSE никогда не ставится ";" ! Перед END в большинстве случаев можно не ставить ";". Если значение логического выражения TRUE, то выполняется оператор или блок, стоящий после THEN, в противном случае - оператор или блок, стоящий после ELSE. Конструкция ELSE необязательна, условный оператор можно использовать и в усеченном виде, тогда при значении логического выражения FALSE не выполняется никаких действий. Операторы, входящие в условный оператор, сами могут быть условными, т.е. допускается любая вложенность условных операторов. Запишем теперь предыдущую задачу о четырех числах, используя оператор IF :

VAR a,b,c,d : Integer;

BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',

                'которых должно быть 2 и только 2 одинаковых!');

      WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;

      WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;

      IF(a=b)AND(a<>c)AND(a<>d)AND(c<>d) OR(a=c)AND(a<>b)AND(a<>d)AND(b<>d)OR

        (a=d)AND(a<>b)AND(a<>c)AND(b<>c)OR(b=c)AND(b<>a)AND(b<>d)AND(a<>d)OR

        (b=d)AND(b<>a)AND(b<>c)AND(a<>c)OR(c=d)AND(c<>a)AND(c<>b)AND(a<>b)

              THEN WRITELN('Вы довольно понятливы')

              ELSE  WRITELN('Вы ошиблись !!!');

            READLN;

       END.

Можно решить эту задачу и другим способом :

      VAR a,b,c,d  : Integer;

      CONST num : Byte = 0;

      BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',

                       'которых должно быть 2 и только 2 одинаковых!');

             WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;

             WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;

             IF a=b THEN Inc(num); IF a=c THEN Inc(num); IF a=d THEN Inc(num);

             IF b=c THEN Inc(num); IF b=d THEN Inc(num); IF c=d THEN Inc(num);

             IF num=1 THEN WRITELN('Вы довольно понятливы')

                      ELSE WRITELN('Вы ошиблись !!!');

             READLN;

       END.

Теперь попробуем записать условный оператор, реализующий более сложную логическую структуру. Пусть даны три числа d, m и y, содержащие число, месяц и год для некоторой даты; необходимо выяснить, правильна ли эта дата.

 VAR d,m : Byte; y : Word; Valid : Boolean;

 BEGIN WRITE('Введите дату '); READ(d,m,y);

        IF (m=1)OR(m=3)OR(m=5)OR(m=7)

                OR(m=8)OR(m=10)OR(m=12) THEN

           IF (d>=1)AND(d<=31) THEN Valid:=TRUE

                                ELSE Valid:=FALSE

        ELSE

        IF (m=4)OR(m=6)OR(m=9)OR(m=11) THEN

           IF (d>=1)AND(d<=30) THEN Valid:=TRUE

                                 ELSE Valid:=FALSE

        ELSE

        IF m=2 THEN

          IF (d>=1)AND(d<=28) THEN Valid:=TRUE

        ELSE

        IF d=29 THEN

           IF (y MOD 4=0)AND(y MOD 100>0)

              OR(y MOD 400=0) THEN Valid:=TRUE

                               ELSE Valid:=FALSE

        ELSE Valid:=FALSE

        ELSE Valid:=FALSE;

        IF Valid THEN WRITELN('Дата верна')

               ELSE WRITELN('Дата не верна');

 END.

Оператор выбора во многих случаях удобнее, чем условный оператор,

он записывается в виде :

CASE выражение OF

           список значений : оператор/блок

           ..................................

           список значений : оператор/блок

           [ELSE          оператор/блок]

     END;

Здесь выражение - это любое выражение порядкового типа, список значений - это список разделенных запятыми константных выражений или диапазонов, диапазон - это конструкция вида константное выражение .. константное выражение. Константным будем называть любое выражение, в которое входят только неименованные и нетипизированные константы (т.е. в константное выражение не могут входить имена переменных, функции и типизированные константы). На самом деле константные выражения - это выражения, которые могут быть вычислены до выполнения программы, а отсюда уже и вытекают ограничения на их вид. Выражение, стоящее после CASE, и все константные выражения должны быть одного типа либо все иметь целочисленные типы.

Оператор выбора выполняется следующим образом: вычисляется выражение, стоящее после CASE, затем просматриваются все списки значений, и если значение выражения попало в список значений, выполняется соответствующий оператор или блок, и выполнение оператора CASE заканчивается; если значение выражения не содержится ни в одном из списков, то выполняется оператор или блок, стоящий после ELSE. Конструкция ELSE может отсутствовать, в этом случае оператор CASE может не выполнить никаких действий. В качестве примера использования оператора выбора решим предыдущую задачу о правильной дате.

 VAR d,m : Byte;  y : Word;  Valid : Boolean;

 BEGIN WRITE('Введите дату '); READ(d,m,y);

        CASE m OF

              1,3,5,7,8,10,12 :

               CASE d OF 1..31 : Valid:=TRUE

                          ELSE Valid:=FALSE

               END;

             4,6,9,11 :

               CASE d OF 1..30 : Valid:=TRUE

                          ELSE Valid:=FALSE

               END;

              2 : CASE d OF 1..28 : Valid:=TRUE;

                            29 : Valid:=(y MOD 4=0)AND(y MOD 100>0);

                           ELSE Valid:=FALSE

                 END;

           ELSE Valid:=FALSE;

        END;

        IF Valid THEN WRITELN('Дата верна')

                ELSE WRITELN('Дата не верна');

 END.

Вы можете видеть, что задачи такого типа решаются оператором CASE гораздо проще, чем оператором IF. Решим еще одну задачу: определить, какого рода символ введен - цифра, латинская буква, русская буква или ни то, ни другое и ни третье.

  VAR c : Char;

  BEGIN WRITE('Введите символ '); READ(c);

         CASE c OF

            '0'..'9'             : WRITELN('Вы ввели цифру');

            ' a'..'z','A'..'Z'       : WRITELN('Вы ввели латинскую букву');

            'а'..'п','р'..'я','А'..'Я'  : WRITELN('Вы ввели русскую букву');

            ELSE             WRITELN('Вы ввели неизвестно что !');

          END;

  END.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://elib.albertina.ru/

Дата добавления: 30.09.2008

База рефератов на портале KM.RU существует с 1999 года. Она пополнялась не только готовыми рефератами, докладами, курсовыми, но и авторскими публикациями, чтобы учащиеся могли использовать их и цитировать при самостоятельном написании работ.


Это популяризирует авторские исследования и научные изыскания, что и является целью работы истинного ученого или публициста. Таким образом, наша база - электронная библиотека, созданная в помощь студентам и школьникам.


Уважаемые авторы! Если Вы все же возражаете против размещения Вашей публикации или хотите внести коррективы, напишите нам на почту info@corp.km.ru, мы незамедлительно выполним Вашу просьбу или требование.


официальный сайт © ООО «КМ онлайн», 1999-2025 О проекте ·Все проекты ·Выходные данные ·Контакты ·Реклама
]]>
]]>
Сетевое издание KM.RU. Свидетельство о регистрации Эл № ФС 77 – 41842.
Мнения авторов опубликованных материалов могут не совпадать с позицией редакции.

Мультипортал KM.RU: актуальные новости, авторские материалы, блоги и комментарии, фото- и видеорепортажи, почта, энциклопедии, погода, доллар, евро, рефераты, телепрограмма, развлечения.

Карта сайта


Подписывайтесь на наш Telegram-канал и будьте в курсе последних событий.


Организации, запрещенные на территории Российской Федерации
Telegram Logo

Используя наш cайт, Вы даете согласие на обработку файлов cookie. Если Вы не хотите, чтобы Ваши данные обрабатывались, необходимо установить специальные настройки в браузере или покинуть сайт.