
- •Тема 1. Логіка і множини
- •1.1. Пропозиції.
- •1.2. Логічні операції над пропозиціями
- •1.3. Таблиця істинності
- •1.4. Тавтологія і логічна еквівалентність
- •1.5. Функції висловлювань і множини
- •1.6. Функції множин
- •1.7. Логіка квантифікаторів
- •Завдання для самостійної роботи
- •Текст1. Логіка пропозицій
- •Логічні значення
- •Операції над пропозиціями
- •2. Правила виводу
- •Формальне визначення числення предикатів
- •Предикати взаємного розташування
- •Не можна залишити рай, створений Кантором для математиків
- •Методи задання множин
- •Включення
- •Об’єднання множин
- •Перетин множин
- •Симетрична різниця множин
- •Добуток множин
- •Вправи для закріплення матерії
- •Як комп’ютер сприймає дані
Як комп’ютер сприймає дані
У вигляді послідовностей 0 і 1 , що називаються бітами. В цьому ж вигляді комп’ютер обробляє і зберігає дані. Звідки комп’ютер знає, що означають біти? Для того щоб полегшити орієнтування в цій зливі бітів, їх організовують в групи по 8 і ці групи називають байтами. Таким чином, комп’ютер одержує перші 8 бітів (байт) і аналізує, що це за число
00101011 означає 43,
01010100 означає 84, etc.
А коли необхідно обробляти текстові дані, “три машини”, “4 комп’ютери”, etc., як це робиться? Дуже просто! Інженери розробили бінарні коди для кожної літери, для кожної цифри, для кожного знаку, що використовується при написанні тексту. Цей код називається ASCII (American Standart Code Information Interchange).Подивіться на таблицю
в якій представлена частина ASCII в десятинній системі. Насправді ж, в комп’ютері знак (+) кодується як 00101011, літера Т як 01010100. Перетворіть ці двійкові коди в десятичні числа і ви впевнитися, що в першому випадку матимемо число 43, а в другому 84 – як в таблиці.
Уважний студент може сказати тут: “Вибачте, як може бути один байт зрозумітим і як число 43 і як знак (+)? Щось тут не так!”. Цей студент має рацію. Якщо не попередити комп’ютер як він повинен розуміти вхідні дані, він просто проігнорує їх. Тому, якщо хочемо, щоб комп’ютер сприйняв байт 00101011 як число 43, перш ніж ввести цей байт маємо послати комп’ютеру повідомлення: “integer”, звичайно, також закодоване. Якщо ж хочемо, щоб комп’ютер сприйняв байт 00101011 як (+), повідомлення має бути “char”, “string” або інше, в залежності від мови програмування. Про все це йтиме мова в курсі “Програмування”. Ось початкова частина Pascal програми, що ілюструє сказане:
Program Exemplo1;
Var x: integer; y: real; z: char;
Begin
Read(x,y,z);
End;
Команда Read спонукає комп’ютер чекати вводу даних з клавіатури. Перше, що входить, сприймається як ціле число, друге – як дробове число, третя – як літера. Причому, змінна типу integer займає в комп’ютері від двох до 4 байтів, в залежності від мови програмування, змінна типу real займає від чотирьох до 6 байтів, змінна типу char, як бачили, один байт. В першому випадку комп’ютер зчитує два чи чотири байти і тільки потім інтерпретує дані, в другому випадку зчитує чотири або 6 байтів і в третьому випадку задовольняється одним байтом. Таким способом комп’ютер розпізнає дані.
Те, про що ми говорили вище, являється лише математичною моделлю комп’ютера. Комп’ютер, це електрична машина, як холодильник, радіо і інші. В холодильнику проходження електричного струму організовано таким чином, щоб охолоджувати повітря, в радіо таким чином, щоб відтворювати звук.
В комп’ютері проходження електричного струму організовано способом, що дозволяє обробляти дані.
Електричні кола, характерні для комп’ютера
Базовий елемент комп’ютера є транзистор. На Рис. 1 показано як працює транзистор і також представлені фундаментальні електричні кола комп’ютера.
Рис. 1
Транзистор складається з трьох кристалів, з’єднаних між собою і з навколишнім світом так як показано на рис. (a). Один вихід ( colector) з’єднаний з джерелом струму Vcc (collector circuit) , другий вихід ( emitter), з заземленням (корпус комп’ютера). Кристал base регулює проходження струму через транзистор. Якщо база одержує електричний імпульс, вона становиться провідником і електричний струм від Vcc проходить через транзистор в землю, не залишаючи нічого на виході Vout.. Коли Vin = 0, транзистор не пропускає електричний струм і він спрямовується в Vout. В цьому електричному колі транзистор працює як кран, що відкриває або закриває трубу Vout таким чином, що коли Vin = 0, то Vout = 1, і навпаки, коли Vin = 1, то Vout = 0. По цій причині транзистор називають інвертором (це слово англійське, але як схоже на наше “завертіти”. Звідси всього один крок до логіки пропозицій: проходження або ж не проходження струму моделюємо логічними значеннями 1 і 0 відповідної пропозиції. Зміна стану транзистора (замкнутий або відкритий) породжує послідовність біт, що може бути прочитано комп’ютером і інтерпретовано як результат обробки даних, і навпаки, введення в комп’ютер послідовності біт породжує в ньому послідовність електричних сигналів, що може бути інтерпретовано як вхід даних.
А тепер проаналізуємо як розповсюджуються по комп’ютеру вхідні електричні сигналис, що відповідають бітам 0 і 1. Вони входять в електричні кола типу (b) або (c) na Рис. 1. Розглянемо всі можливі комбінації V1 і V2 для цих кіл. Сигнал Х на виході кіл (a), b), (c) описується відповідними таблицями на рис. 2.
Таблиця2.
Рис. 2
Це легко перевірити, якщо ви зрозуміли, як працює транзистор. Вже знаємо логічні функції NOT, AND і OR. В таблицях (а),(b)і(c)легко розпізнаємо NOT, NOT AND (NAND), NOT OR (NOR).Таблиці(d), (f)описують кола, що можна одержати з кіл (b) e (c)поставивши на виході ще один транзистор, щоб нейтралізувати NOT: NOT(NAND)=AND, NOT(NOR)=OR.Пам’ятаєте, ( P ) P. Зверху кожної таблиці знаходиться символ, що вживається для позначення відповідних кіл в електричних схемах. Ці кола і відповідні символи називають логічними портами (porta по латині означає двері, ворота). На закінчення звертаємо вашу увагу на те, що логічний порт NOT має всього один транзистор, порти NAND і NOR два транзистори, порти AND і OR три транзистори.
Зверніть увагу ще на одну річ: кожний порт має декілька входів (inputs), і тільки один вихід (output)
Одна революційна річ чекає нас попереду. Електричні схеми комп’ютерів спочатку малюють і досліджують їх дію на папері, а вже потім інженери втілюють ці схеми в машини. Тепер становиться зрозумілим роль логіки пропозицій для конструювання комп’ютерів. Не менш важливою ця роль є і для використання комп’ютера. Сукупність комп’ютерних програм (Software) являє собою математичну модель самого комп’ютера (Hardware). Будете добре знати дискретну математику – будете розуміти, як працює комп’ютер і як його ефективно використовувати!
Розглянемо електричні схеми найважливішого блоку комп’ютера – процесора і його окремих елементів (ALU, adder, shifter).