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

     

     

     

     

     

         
     
    Логічний тип даних. Операції порівняння
         

     

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

    Логічний тип даних. Операції порівняння.

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

    Логіка, або Булевського, дані призначені для зберігання логічних значень "істина" або "брехня". Логічні змінні та константи мають тип Boolean і займають в пам'яті 1 байт. Існує всього два логічні константи - TRUE і FALSE. Тип Boolean - це порядковий тип, тому для нього визначені функції Ord, Pred, Succ та процедури Inc і Dec (втім, досить рідко застосовуються), причому Ord (FALSE) = 0, Ord (TRUE) = 1. Перш ніж перейти до логічних операцій, розглянемо операції порівняння, яких у Паскалі існує шість:

    = одно;

    <> не одно;

    <менше;

    <= менше або дорівнює;

    > більше;

    > = більше або дорівнює.

    Операції порівняння визначені для будь-яких однотипних операндів (числових, символьних, логічних); для числових даних, так само, як і у випадку арифметичних операцій, зроблено виняток - ви можете порівнювати два числових вираження будь-яких типів, але порівнювати число і символ, число і логічну величину, символ і логічну величину не можна! Результат операції порівняння є TRUE або FALSE, залежно від того, виконано або не виконано умову. Числа порівнюються між собою природним чином, символи - У відповідності з їх номерами, а для логічних величин справедливо нерівність FALSE

    NOT - логічне заперечення;

    AND - логічне "і";

    OR - логічне "або";

    XOR - логічне що виключає "або".

    Правила виконання цих операцій такі:

    NOT - унарний (тобто застосовна до одного операнд) операція:

    NOT FALSE = TRUE, NOT TRUE = FALSE.

    Правила виконання бінарних операцій AND, OR і XOR наведені в таблиці 3.

    Таблиця

    Правила виконання бінарних операцій        

    Операнд         

    Результат операції             

      

    a         

    b         

    a AND b         

    a OR b         

    a XOR b             

    FALSE         

    FALSE         

    FALSE         

    FALSE         

    FALSE             

    FALSE         

    TRUE         

    FALSE         

    TRUE         

    TRUE             

    TRUE         

    FALSE         

    FALSE         

    TRUE         

    TRUE             

    TRUE         

    TRUE         

    TRUE         

    TRUE         

    FALSE     

    Пріоритет операції NOT (як і будь-якої унарний операції) найвищий, наступний пріоритет у операції AND, та найнижчою пріоритет - у операцій OR і XOR. Вирази можуть містити не тільки різні логічні операції, але й операції порівняння та арифметичні, тому відзначимо, що пріоритет логічних і арифметичних операцій вище, ніж операцій порівняння. Існує функція, визначена для цілочисельних аргументів і має логічне значення, - це функція

    30. Odd (x).

    Вона повертає TRUE, якщо значення x непарне, і FALSE, якщо воно парне. Логічні значення можна виводити процедурою WRITE, але вводити логічні змінні процедурою READ не можна. Тепер спробуємо записати програму, що використовує логічні дані.

    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;

    WRITELN ( 'Вашу тямущість можна оцінити як',

    (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 ));

    READLN;

    END.

    Програма виведе TRUE, якщо введені дані задовольнили умові, і FALSE - в іншому випадку.

    Розглянемо тепер бітові операції: AND, OR, XOR, ShL і ShR, які визначені для цілочисельних операндів (операції AND, OR і XOR збігаються з написання з логічними операціями, але останні визначені тільки для логічних операндів). Операції AND, OR і XOR виконуються над кожною парою відповідних бітів операндів за тими ж правилами, що і логічні операції, якщо нульовий біт вважати помилковим, а одиничний - істинним. Наведемо простий приклад:

    VAR a, b: BYTE;

    BEGIN a: = 100;

    b: = 200;

    WRITELN (a AND b, '', a OR b, '', a XOR b);

    END.

    Програма виведе числа 64, 236, 172. Яким чином вони отримані? Двійкове подання числа 100 одно 0110 0100, двійкове подання числа 200 одно 1100 1000. Виконаємо над цими числами, наприклад, операцію XOR:

    0110 0100

    1100 1000

    XOR

    1010 1100.

    Отримали двійкове число 1010 1100 = 128 +32 +8 +4 = 172.

    Операції ShL і ShR називаються операціями відповідно лівого зсуву і правого зсуву. Вони зрушують біти першого операнда на кількість розрядів, рівне значенню другу операнда, звільнилися розряди заповнюються нульовими битами. Наприклад:

    10 ShL 3 = 80

    40 ShR 3 = 5.

    Число 10 кодується як 0000 1010; зрушимо біти вліво на 3 розряду, отримаємо 0101 0000 = 64 +16 = 80. Таким чином, зрушуючи біти вліво на n розрядів, ми множимо число на 2 в ступені n, а зрушуючи вправо - ділимо на 2 в ступені n. Цією властивістю операцій зсуву користуються, коли в програмі доводиться часто множити або ділити цілі числа на ступінь двійки, тому що операції зсуву виконуються набагато швидше, ніж арифметичні операції.

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

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

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

     

     

     

     

     

     

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