ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Умовний оператор. Блок. Оператор вибору
         

     

    Інформатика, програмування

    Умовний оператор. Блок. Оператор вибору

    С.А. Григор'єв

    Умовний оператор в Паскалі записується у вигляді:

    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/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status