«Базові алгоритмічні структури» – виконання команд «тіла циклу». Блок-схема алгоритмічної структури «розгалуження». Нехай n = 5; i=4. Блок-схема циклічного алгоритму. Кінець. Алгоритмічна структура "вибір". Нехай n = 5; i=5. Початок. Структура «розгалуження». Нехай n = 5; i=6. Основні типи алгоритмічних структур. Алгоритмічна структура "цикл". Додатне число. Блок-схема алгоритмічної структури "вибір". Блок-схема лінійного алгоритму.
«Види алгоритмів» - Прибирання квартири. Відкрий мішок. Девіз уроку. Ханойські вежі. Назва фігури. Подивися мультфільм. Збери врожай. Уявлення про алгоритм. Підійти до переходу. Циклічні алгоритми. Увійди до саду. Долоні. Алгоритм дій людини. Графічний диктант. Запис алгоритмів. Алгоритм.
Запис циклу у процедурі. Коригування процедури. Основні кольори. Малюємо стіну. Що таке алгоритм. Команда. Інтерактивний підручник Малюємо дах. Малюємо будиночок. Малюємо. Малюємо вікна. Будиночок готовий. Цикл. Знання. Зміна кольору пера.
"Завдання на лінійний алгоритм" - X = 0 Рішень немає. Y = 2. X = 3 Y = 1/48. Дано координати вершин трикутника АВС. Обчисліть значення функції Y за X=2, використовуючи блок-схему алгоритму. Перекласти А в більші одиниці вимірювання інформації. Алгоритмізація – процес розробки алгоритму (плану дій) на вирішення задачи. X = -1 Рішень немає. Приклади розв'язання задач. Дано довжини сторін трикутника A, B, C. Знайти площу трикутника S. Складіть блок-схему алгоритму розв'язання поставленої задачі.
"Алгоритмічні конструкції" - Спосіб подання алгоритмів у вигляді графа. Розгалуження. Подання алгоритмів як опису послідовності дій. Форми представлення алгоритмів. Блок-схема алгоритму «Обклеювання шпалерами». Алгоритмічні конструкції Алгоритм розв'язання задачі. Блок-схема. Графічний спосіб представлення алгоритмів. Способи подання алгоритмів. Алгоритм. Складний алгоритм. Блок-схеми базових структур.
«Основні типи алгоритмічних структур» - Записати у словесній формі алгоритми. Робота у групах. структура. Правопис приставок. Основні типи алгоритмічних структур. Перевірка самостійної роботи. Фізмінутка. Завдання закріплення знань. Алгоритм. Основна структура. Встановлення початкових параметрів. Рецепт приготування чаю. Розгалуження. Знайдіть корінь. Цикл із постумовою. Цикл. Блокові символи. Кінець алгоритму. Основні типи агроритмічних структур.
2.1 Розробка алгоритму.Алгоритм- це
a. опис послідовності дій для вирішення задачі чи досягнення поставленої мети;
b. правила виконання основних операцій обробки даних;
c. опис обчислень за математичними формулами.
Перед початком розробки алгоритму необхідно чітко усвідомити завдання: що потрібно отримати як результат, які вихідні дані необхідні і які є, які існують обмеження на ці дані. Далі потрібно записати, які дії необхідно вжити для отримання вихідних даних необхідного результату.
Насправді найбільш поширені такі форми представлення алгоритмів:
Словесна (записи природною мовою);
Графічна (зображення із графічних символів);
Псевдокоди (напівформалізовані описи алгоритмів умовною алгоритмічною мовою, що включають як елементи мови програмування, так і фрази природної мови, загальноприйняті математичні позначення та ін);
Програмна (тексти мовами програмування).
Словесний спосіб запису алгоритмів є описом послідовних етапів обробки даних. Алгоритм задається у довільному викладі природною мовою.
приклад. Записати алгоритм знаходження найбільшого загального дільника (НДД) двох натуральних чисел.
Алгоритм може бути наступним:
1. задати два числа;
2. якщо числа рівні, то взяти будь-яке з них як відповідь і зупинитися, інакше продовжити виконання алгоритму;
3. визначити більше із чисел;
4. замінити більше із чисел різницею більшого і меншого з чисел;
5. Повторити алгоритм з кроку 2.
Описаний алгоритм застосовується до будь-яких натуральних чисел і має призводити до вирішення поставленого завдання. Переконайтеся в цьому самостійно, визначивши за допомогою цього алгоритму найбільший дільник чисел 125 і 75.
Словесний спосіб немає широкого поширення з таких причин:
Такі описи строго не формалізуються;
Страждають на багатослівність записів;
Допускають неоднозначність тлумачення окремих приписів.
Графічний спосіб представлення алгоритмів є компактнішим і наочним порівняно зі словесним.
При графічному поданні алгоритм зображується як послідовності пов'язаних між собою функціональних блоків, кожен із яких відповідає виконанню однієї чи кількох дій.
Таке графічне уявлення називається схемою алгоритму чи блок-схемою.
Псевдокод є системою позначень і правил, призначену для однакового запису алгоритмів.
Він займає проміжне місце між природною та формальною мовами.
З одного боку, він близький до звичайної природної мови, тому алгоритми можуть нею записуватися і читатися як звичайний текст. З іншого боку, у псевдокоді використовуються деякі формальні конструкції та математична символіка, що наближає запис алгоритму до загальноприйнятого математичного запису.
У псевдокод не прийняті суворі синтаксичні правила для запису команд, властиві формальним мовам, що полегшує запис алгоритму на стадії його проектування і дає можливість використовувати ширший набір команд, розрахований абстрактного виконавця. Однак у псевдокоді зазвичай є деякі конструкції, властиві формальним мовам, що полегшує перехід від запису на псевдокоді до запису алгоритму формальною мовою. Зокрема, у псевдокоді, так само, як і у формальних мовах, є службові слова, зміст яких визначений раз і назавжди. Єдиного чи формального визначення псевдокода немає, тому можливі різні псевдокоди, які відрізняються набором службових слів та основних (базових) конструкцій.
2.2 Блок-схема.
Блок-схемою називають графічне уявлення алгоритму, у якому він зображується як послідовності пов'язаних між собою функціональних блоків, кожен із яких відповідає виконанню однієї чи кількох дій.
У блок-схемі кожному типу дій (введення вихідних даних, обчислення значень виразів, перевірки умов, управління повторенням дій, закінчення обробки тощо) відповідає геометрична фігура, представлений у вигляді блокового символу. Блокові символи поєднуються лініями переходів, що визначають черговість виконання дій.
Наведемо найчастіше вживані символи.
Назва символу | Позначення та приклад заповнення | Пояснення |
Процес | Обчислювальна діяабо послідовність дій | |
Рішення | Перевірка умов | |
Модифікація | Початок циклу | |
Зумовлений процес | Обчислення за підпрограмою, стандартною підпрограмою | |
Ввід вивід | Введення-виведення у загальному вигляді | |
Пуск-зупинка | Початок, кінець алгоритму, вхід та вихід у підпрограму | |
Документ | Виведення результатів на друк |
Блок "процес" застосовується для позначення дії або послідовності дій, що змінюють значення, форму представлення чи розміщення даних. Для поліпшення наочності схеми кілька окремих блоків обробки можна поєднувати в один блок. Подання окремих операцій досить вільне.
Блок "рішення" використовується для позначення переходів керування за умовою. У кожному блоці "рішення" мають бути зазначені питання, умова чи порівняння, які він визначає.
Блок "модифікація" використовується для організації циклічних конструкцій. (Слово модифікація означає видозміну, перетворення). Всередині блоку записується параметр циклу, для якого вказуються початкове значення, гранична умова і крок зміни значення параметра для кожного повторення.
Блок "передумовлений процес" використовується для вказівки звернень до допоміжних алгоритмів, що існують автономно у вигляді деяких самостійних модулів, та для звернень до бібліотечних підпрограм.
приклад. Скласти блок-схему алгоритму визначення висот ha, hb, hc трикутника зі сторонами a, b, c, якщо
де p = (a + b + c)/2.
Рішення. Введемо позначеннятоді h a = t/a, h b = t/b, h c = t/c. Блок-схема має містити початок, введення a, b, c, обчислення p, t, h a, h b, h c , Висновок результатів та зупин.
2.3 Структури алгоритмів.
Алгоритми можна як деякі структури, які з окремих базових (тобто. основних) елементів. Природно, що за такого підходу до алгоритмів вивчення основних принципів їхнього конструювання має починатися з вивчення цих базових елементів
Логічна структура будь-якого алгоритму може бути представлена комбінацією трьох базових структур: прямування, розгалуження, цикл.
Характерною особливістю базових структур є наявність у них одного входу та одного виходу.
1. Базова структура проходження.Утворюється з послідовності дій, наступних одна одною:
2. Базова структура розгалуження.Забезпечує залежно від результату перевірки умови (так чи ні) вибір одного із альтернативних шляхів роботи алгоритму. Кожен із шляхів веде до загального виходу, тому робота алгоритму буде продовжуватися незалежно від того, який шлях буде обраний.
Структура розгалуженняіснує у чотирьох основних варіантах:
Якось інакше;
Вибір інакше.
1) якщо якщо умова то дії кінець якщо 2) якщо-то інакше якщо умова то дії 1 інакше дії 2 кінець якщо 3) вибір вибір за умови 1: дії 1 за умови 2: дії 2 . . . . . . . . . . . . за умови N: дії N кінець вибору
4) вибір-інакше вибір за умови 1: дії 1 за умови 2: дії 2 . . . . . . . . . . . .
за умови N: дії N інакше дії N+1 кінець вибору
приклад. Скласти блок-схему алгоритму обчислення функції
Базова структура циклу. Забезпечує багаторазове виконання деякої сукупності дій, що називається тілом циклу. Структура цикл існує у трьох основних варіантах:.
Цикл типу
Базова структура циклу. Забезпечує багаторазове виконання деякої сукупності дій, що називається тілом циклу. для.
Наказує виконувати тіло циклу для всіх значень певної змінної (параметра циклу) у заданому діапазоні.
Базова структура циклу. Забезпечує багаторазове виконання деякої сукупності дій, що називається тілом циклу. Бувай.
Наказує виконувати тіло циклу до тих пір, поки виконується умова, записана після слова поки що.
робити - поки
Наказує виконувати тіло циклу до тих пір, поки виконується умова, записана після слова поки що. Умову перевіряють після виконання тіла циклу. Зауважимо, що цикли для і поки називають також циклами з передперевіркою умови, а цикли робити - поки - циклами з післяперевіркою умови. Іншими словами, тіла циклів для і поки що можуть не виконатися жодного разу, якщо умова закінчення циклу спочатку не вірна. Тіло циклу робити - поки виконається як мінімум один раз, навіть якщо умова закінчення циклу спочатку не вірна. Цикл для i від i1 до i2 крок i3 тіло циклу (послідовність дій) кінець циклу
цикл поки умова тіло циклу (послідовність дій) кінець циклу
цикл робити тіло циклу (послідовність дій) поки умова кінець циклу
із заданою точністю (для даного знакочередного статечного ряду необхідна точність буде досягнута, коли чергове доданок стане по абсолютній величині менше).
Обчислення сум - типове циклічне завдання. Особливістю нашої конкретної завдання і те, що кількість доданків (отже, і число повторень тіла циклу) заздалегідь невідомо. Тому виконання циклу має завершитись у момент досягнення необхідної точності.
При складанні алгоритму слід врахувати, що знаки доданків чергуються і рівень числа х у чисельниках доданків зростає.
Вирішуючи це завдання "в лоб" шляхом обчислення на кожному i-му кроці часткової суми S:=S+(-1)**(i-1)*x**i/i ,операцій. Набагато краще організувати обчислення наступним чином: якщо позначити чисельник якогось доданку буквою р, то у наступного доданку чисельник дорівнюватиме -р*х (знак мінус забезпечує чергування знаків доданків), а саме доданок m
дорівнюватиме p/i, де i - номер доданку.
Алгоритм, до якого входить ітераційний цикл, називається ітераційним алгоритмом. Ітераційні алгоритми використовуються під час реалізації ітераційних чисельних методів. В ітераційних алгоритмах необхідно забезпечити обов'язкове досягнення умови виходу із циклу (збіжність ітераційного процесу). Інакше відбудеться зациклювання алгоритму, тобто. не виконуватиметься основна властивість алгоритму - результативність.
Вкладені цикли.
Можливі випадки, коли всередині тіла циклу необхідно повторювати деяку послідовність операторів, тобто організувати внутрішній цикл. Така структура отримала назву циклу у циклі або вкладених циклів. Глибина вкладення циклів (тобто кількість вкладених один одного циклів) може бути різною.
При використанні такої структури для економії машинного часу необхідно виносити з внутрішнього циклу до зовнішнього оператора, які не залежать від параметра внутрішнього циклу.
прикладвкладених циклів для. Обчислити суму елементів заданої матриці А(5,3).
прикладвкладених циклів поки що. Обчислити добуток тих елементів заданої матриці A(10,10), які розташовані на перетині парних рядків та парних стовпців.
При реалізації алгоритмів обробки аналогових сигналів часто доводиться здійснювати обчислення математичних функцій. Найбільш поширеними функціями є логарифмічна та експоненційна функції. Ці функції застосовуються в схемах зменшення і збільшення динамічного діапазону сигналу, що передається або записується (компандування). Ще одним поширеним застосуванням схем обчислення математичних функцій експоненти та логарифмування є обчислення твору та розподілу вхідних сигналів.
Для обчислення нелінійної функції часто застосовують операційний підсилювач, охоплений негативним зворотним зв'язком. Як приклад на малюнку 1 наведено схему логарифмічного підсилювача.
Рисунок 1. Схема логарифмічного підсилювача
У цій схемі в ланцюг негативною зворотнього зв'язкувключений нелінійний елемент (напівпровідниковий діод), який має експоненційну залежність струму від прикладеної напруги. Внаслідок дії зворотного зв'язку залежність вихідної напруги від вхідної стає логарифмічною. Коефіцієнт посилення цієї схеми логарифмування визначається R1. Зазвичай схема логарифмування розраховується на одиничний коефіцієнт посилення.
Якщо в цій схемі застосувати діод з квадратичною вольтамперною характеристикою, то вона обчислюватиме квадратний корінь від вхідного сигналу. Її зручно застосовувати у схемах визначення амплітуди сигналу під час квадратурної обробки сигналів.
(1),Подібним чином обчислюється функція, обернена до логарифмічної — експонента. Тільки цьому випадку нелінійний елемент включається над ланцюг зворотний зв'язок, але вхід підсилювача. На малюнку 2 наведено схему обчислення експоненти на операційному підсилювачі.
Малюнок 2. Схема обчислення експонентів
Якщо в даній схемі застосувати діод з квадратичною вольтамперною характеристикою, то схема обчислюватиме квадрат від вхідної напруги і її можна буде застосовувати як схему визначення вхідної потужності сигналу.
За допомогою даних схем обчислення математичних функцій можна обчислити добуток двох аналогових сигналів. При цьому використовується добре відома властивістьлогарифмів замінювати добуток змінних у сумі логарифмів цих змінних. Для зворотного перетворення застосовується функція обчислення експонентів. При цьому зовсім не важлива основа логарифму.
(2),Схема помножувача, що реалізує формулу (1) на операційних підсилювачах, наведено малюнку 3.
Рисунок 3. Схема помножувача на операційних підсилювачах
Попри простоту реалізації, така схема застосовується досить рідко, т.к. множення можливе лише позитивних вхідних значень. Тому зазвичай застосовуються схеми помножувачів, побудованих з урахуванням .
Для обчислення функцій не завжди вдається підібрати нелінійний елемент із заданою вольтамперною характеристикою. У цьому випадку можна скористатися шматково-лінійною апроксимацією функції. На операційному підсилювачі легко реалізувати будь-який коефіцієнт посилення просто змінюючи значення резистора в ланцюзі зворотного зв'язку, тим самим задаючи крутість функції. Перемикання резисторів при зміні вхідної напруги найлегше зробити на діодних ключах, на які подається задана напруга замикання. Подібна схема наведена малюнку 4.
Рисунок 4. Схема функціонального підсилювача
Помножувачі, реалізовані на транзисторах, часто використовуються для обчислення складніших функцій. У найпростішому випадку входи X та Y можна об'єднати та отримати схему обчислення квадрата від вхідного сигналу ( Y = X 2).
Їх можна використовувати як електронні регулятори напруги. Подаючи на один із входів постійна напругаможна регулювати на виході рівень змінної напруги, що подається на вихід.
Література:
Разом із статтею "Схеми обчислення математичних функцій" читають:
Повсякденне життя кожної людини полягає у вирішенні величезної кількості завдань різної складності на роботі чи під час навчання. Деякі завдання є настільки простими, що при їх виконанні ми робимо певні дії автоматично, навіть не замислюючись. Розв'язання будь-якого завдання, навіть найпростішого, як правило, здійснюється послідовно за кілька кроків. Такі послідовність під час вирішення завдань називається алгоритмом. Сьогодні ми розглянемо, що таке лінійні алгоритми, як зображується їхня структура, як здійснюється їхнє рішення та програмування.
Алгоритмічна мова
Це поняття є точним розпорядженням для виконавця здійснити певну послідовність дій, яка спрямовується на рішення поставленого завдання.
Ця мова є засобом опису алгоритмів, які орієнтовані зазвичай на користувача.
- Блок початку-кінця алгоритму. На блоці знаходиться напис «початок» або «кінець».
- Блок "введення-виведення даних". Зображується цей блок як паралелограма. На ньому розміщуються такі написи: "введення", "виведення", "друк". Також до них додається список змінних, що вводяться або, відповідно, виводяться.
- Арифметичний блок або блок рішення. Йому відповідає прямокутник. На блоці має бути напис: "операція", "група операцій".
Ось з допомогою таких блок-схем зображується рішення лінійних алгоритмів. Далі поговоримо про особливості надання значень.
Лінійні обчислювальні алгоритми
Основне елементарне дію у обчислювальному алгоритмі - це привласнення змінної величини певного значення. У разі коли значення константи визначається видом її запису, змінна величина отримає конкретне значення виключно в результаті присвоєння. Це може бути виконано за допомогою двох способів: за допомогою команди присвоєння; за допомогою команди введення.
Приклад вирішення лінійного алгоритму
Наведемо приклад опису правил розподілу звичайних дробівза допомогою лінійного алгоритму, які у шкільних підручниках мають такий зміст:
- чисельник дробу 1 потрібно помножити на знаменник дробу 2;
- знаменник дробу 1 необхідно помножити на чисельник дробу 2;
- потрібно записати дріб, у якого чисельник є результатом виконання 1 пункту, а знаменник - результатом виконання 2 пункти. Алгебраїчна форма цього правила має такий вигляд:
а/b: c/d=(а*d)/(b*d)=m/n.
Отже, збудуємо для ЕОМ алгоритм розподілу дробів. Щоб не заплутатися, використовуватимемо для змінних ті самі позначення, що й у формулі, яка була вказана вище. а, b, с, d-вихідні дані у вигляді цілочисленних змінних. Результатом також будуть цілі величини. Рішення алгоритмічною мовою буде наступним:
алгРозподіл дробів
ціла, b, с, d, m, n
введення а, b, с, d
кін
Графічна форма розв'язання
Схема лінійного алгоритму, описаного вище, має такий вигляд:
Команда надання значення має наступний формат:
Змінна: = вираз.
Знак «:=» читається як присвоїти.
Привласнення – це команда, яка необхідна для виконання комп'ютером наступних дій:
- обчислення виразу;
- надання змінної отриманого значення.
Наведений вище алгоритм містить дві команди як присвоєння. У блок-схемі команду присвоювання потрібно записувати у прямокутнику, який називається обчислювальним блоком.
Коли описуються лінійні алгоритми, немає особливої потреби у обов'язковому дотриманні суворих правилпри записі виразів. Можна їх записувати за допомогою звичайної математичної форми. Адже це не суворий синтаксис мови програмування.
У наведеному прикладі алгоритму є команда введення:
Введення а, b, с, d.
Команда введення в блок-схемі записується в паралелограмі, тобто в блоці введення-виводу. Виконуючи цю команду, процесор перериває роботу, доки користувач не здійснить певні дії. А саме: користувачеві потрібно на (клавіатурі) набрати змінні (їх значення), що вводяться, і натиснути Enter, яка виступає клавішею введення. Важливо, щоб значення вводилися в такому самому порядку, що і відповідні змінні, що розташовані у списку введення.
Лінійний алгоритм. Його програмування
Як уже говорилося на початку статті, лінійні програми можуть включати такі оператори:
- привласнення;
- введення;
- висновок.
Тобто за допомогою перерахованих операторів здійснюється алгоритми.
Отже, програмною мовою записується так:
LET А = В, де А – змінна, В – вираз. Наприклад, А = У + 20.
Оператор введення має такий вигляд:
INPUT, наприклад: INPUT З
Оператор виведення даних, значень записується в такому вигляді:
PRINT. Наприклад PRINT З.
Наведемо найпростіший приклад. Нам потрібно написати програму, яка буде знаходити суму чисел А і В, що вводяться з клавіатури.
Мовою програмування ми отримаємо програму, текст якої зображено нижче.
Оператори введення, виведення у мові програмування Паскаль
Паскаль не виділяє спеціальних операторів, які позначають операції введення чи виведення, які використовують лінійні алгоритми. У програмах обміну інформацією здійснюється за допомогою вбудованих процедур. Оскільки немає потреби попереднього опису стандартної процедури, вона доступна кожній програмі, що містить звернення до неї. Також назвою згаданої процедури не виступає якесь зарезервоване слово.
Під час введення даних використовують такі оператори для звернення до стандартної процедури введення даних, яка вже вбудована у програму.
Read (А, В, С), де А, В, С – змінні, які потрібно ввести в оперативну пам'ять для запам'ятовування.
Readlnn (х1, у, х2) - закінчивши введення, курсор переходить початку нового рядка.
Readlnn; - свідчить про очікування натискання Enter. Як правило, цей оператор вставляє в текст перед останнім «End», щоб зберегти результати виконання програми на екрані вмісту.
Виведення на екран монітора даних здійснюється за допомогою таких операторів:
Write (А, В, С) - вказавши значення А, В, С в одному рядку, курсор не залишає поточного рядка.
Writeln (z, у, z2) - закінчивши виведення значень, курсор у цій позиції перейде на новий рядок.
Writeln; - свідчить про пропуск одного рядка та перехід на початок нового.
Ось за допомогою таких простих операторів і здійснюється введення та виведення даних у мові Паскаль.
загальні вказівки
Для синтезу схем у розд. 5.1 описані такі кроки:
1. Опис функції необхідної схеми.
2. Призначення вхідних та вихідних змінних величинта присвоєння значень 0 та 1.
3. Упорядкування таблиці істинності.
4. Визначення необхідних логічних операцій.
5. Спрощення та за необхідності перетворення схеми.
Якщо відома таблиця істинності, то тепер доцільно 4 етап починати зі складання нормальної форми АБО. Вона буде максимально спрощена за допомогою діаграми Карно. Наприкінці кроку 4 виходить спрощена логічна функція, за якою можна збирати логічну цифрову схему.
У кроці 5 перевіряється, чи є подальше спрощення знайденої за допомогою логіки алгебри функції можливим і раціональним. Якщо так, то спрощення потрібно провести.
Тепер треба дізнатися, які логічні елементи є в наявності. Логічну функцію необхідно перетворити те щоб вона містила лише існуючі логічні елементи. Потім можна збирати схему.
Цифрова схема включення та вимкнення з декількох місць
За допомогою логічних елементів потрібно синтезувати схему, яка функціонує як схема включення та вимкнення з декількох місць. Вихідний стан повинен змінюватися лише у випадку, якщо змінюється стан одного із входів. Якщо обидва входи змінюють свій стан, вихідний стан змінитися не повинно. Схема має бути побудована на елементах АБО-НЕ.
Шукана схема має два входи та один вихід. Вхідні змінні називаються А та В. Вихідна змінна позначається Z (рис. 5.47).
Таблиця істинності схеми із двома вхідними змінними має 4 варіанти (рис. 5.48). Вихідний стан Z для першого варіанта може встановлюватись будь-яким чином. Вибрано Z = 0.
При переході від варіанту 1 до 2 змінна А змінює свій стан. Змінна стан не змінює. Якщо тільки один із входів змінює стан, то згідно з поставленим завданням вихід Z повинен поміняти свій стан. Z має дорівнювати 1.
При переході від варіанта 2 до варіанту 3 змінні А та змінюють свої стани. Z не повинно змінюватись. При переході від варіанта 3 до варіанту 4 змінна А змінює свій стан з 0 на 1. залишається рівною 1. Таким чином, Z має змінити стан з 1 на 0. Таблиця істинності готова. Вона могла б виглядати інакше, якби у варіанті 1 вибрали Z= 1.
Для таблиці істинності (рис. 5.48) слід записати нормальну форму АБО. Вона виглядає так:
Z = (AaB) w (AaB).
Якщо занести нормальну форму АБО у діаграму Карно, то видно, що подальше спрощення неможливе (рис. 5.49).
Так як схема має бути побудована на елементах АБО-HE, потрібно перетворити рівняння:
Z = (AaB)w(AaB)-,
Z = (AaB)v(AaB),
Z = АаВаАаВ.
Мал. 5.50 Цифрова схема
Схема, побудована згідно з перетвореним рівнянням, показано на рис. 5.50.
Перемикач «два з трьох»
Системи, пов'язані з підвищеним ризиком, наприклад, атомна електростанція, повинні бути у разі аварії відразу зупинені. Вимкнення відбувається автоматично за допомогою цифрової схеми. В аварійних датчиках, відповідальних за відключення, можуть відбуватися помилкові спрацьовування. Тому в кожному критичному місці ставлять три однакові аварійні датчики (рис. 5.51).
Відключення повинно відбуватися тільки тоді, коли спрацювали щонайменше два аварійні датчики з трьох. Такий підхід запобігає непотрібним відключенням системи, які приносять фінансові втрати. Аварійні датчики під час спрацьовування мають стан 1. Відключення системи має відбуватися, якщо на виході схеми діє стан 1.
Отже, потрібна схема, вихід якої має стан 1 тоді, коли щонайменше 2 з 3 входів мають стан 1. Така схема називається перемикач «два з трьох».
Вхідні змінні одержують імена А, В і С. Вихідна змінна - Z. Складемо таблицю істинності за словесним описом принципу дії схеми. Завжди, коли дві вхідних змінних дорівнюють 1, Z = 1. Якщо всі три вхідних змінних дорівнюють 1, Z також повинна дорівнювати 1. Така таблиця істинності показана на рис. 5.52.
Далі по складеній таблиці істинності записується нормальна форма АБО:
Мал. 5.51.
Z = (А ВАС) v (А АВАС) v a5aC|v(^aSaC).
Нормальна форма АБО спрощується за допомогою діаграми Карно (рис. 5.53). Можна утворювати три подвійні групи. Спрощене рівняння має вигляд:
Z = (AaB) w (BaC) w (AaC).
За цим рівнянням можна будувати схему (рис. 5.54).
Часто під рукою є тільки еле-А°-менти АБО-HE. Щоб побудувати схему тільки на елементах АБО-HE, перетворюємо рівняння: в °-
Z = (AaB)v(BaC)v(AaC);
======= З О.
Z = (А л B)v (Ac)v (А лС);
-=====-= Мал. 5.55. Схема перемикача «два
Z = АлВлВлСлАлС. із трьох» на елементах Ш1І-НЕ.
Відповідну схему показано на рис. 5.55.
Схема контролю парності
Для виявлення помилок у кодах (див. розд. 8.7 та 8.8), а також для завдань контролю та спостереження часто потрібна схема, в якій вихід дорівнює 1 тоді, коли парне число входів мають стан 1.
Така схема називається схемою контролю парності.
Потрібно синтезувати схему із чотирма входами. Вхідні змінні - А, В, С та D. Вихідна змінна - Y.
Спочатку необхідно скласти таблицю істинності. Y завжди дорівнюватиме 1, якщо 0, 2 або 4 вхідні змінні дорівнюють 1 (рис. 5.56).
З таблиці істинності виходить нормальна форма АБО:
Y = (А л В лС л D)\/ ^А л В лС л (А л В лС л (А л В аС л)
v(A л В лС л [А л В лС л (А л В лС л (А л В лС л D)).
Окремі повні кон'юнкції пронумеровані. Спробуємо спростити нормальну форму АБО за допомогою картки Карно (рис. 5.57). Тут ми зіткнулися з рідкісним випадком, коли освіта груп неможлива. Значить, ця нормальна форма АБО не спрощується, і її схема наведена на рис. 5.58.
Пороговою логічною схемою називається схема, в якій певна мінімальна кількість вхідних змінних повинна мати стан 1 щоб на виході з'явилася логічна 1.
Наприклад, потрібно розрахувати схему із п'ятьма вхідними змінними. На виході має бути 1 тільки тоді, коли щонайменше на 4 входах є 1.
Вхідні змінні мають імена А, В, С, D та Е. Вихідна змінна - Z. Спочатку потрібно визначити таблицю істинності. При п'яти змінних величинах можливі 32 варіанти (рис. 5.59):
Z =| л D л E^v (А л В лС л D л Е).
Нормальна форма АБО складається із шести повних кон'юнкцій.
Нормальна форма АБО спрощується за допомогою діаграми Карно (рис. 5.60). Можна утворити 5 подвійних груп. Виходить наступна спрощена логічна функція:
Z = (A aBaCaE)v (A aBaDaE)v (A aBaCaD)v v (A аС a D a E)v (В аС a D а Е).
Схема для спрощеної функції представлена рис. 5.61. Дане рівняння можна спростити за допомогою алгебри логіки. Для перших трьох повних кон'юнкцій можна винести за дужки (АаВ), для двох останніх - (С л D). Виходить функція:
Z = [(А А В) А ((С А Е) V (D А Е) А С А Х>))] V [(С A D) А ((А А Е) V (ВА Я))] . Все-таки суттєвого спрощення досягти не вдалося.
Схема порівняння (компаратор)
У цифровій техніці часто потрібно порівняти цифрові дані один з одним. Сама проста схемапорівняння, так званий компаратор, порівнює стан двох змінних один з одним.
Нехай змінні позначені А і В. А і можуть бути рівні. А може бути більше, ніж і навпаки. Компаратор має три можливих варіантів три виходу. Вони позначаються X, Y і Z та їх стану присвоюються таким чином:
А = Я => Х = 1;
А > В^> Y= 1;
А< В =>Z=1.
Отже, необхідно синтезувати схему з двома вхідними змінними А і з вихідними змінними X, Y і Z.
При формуванні таблиці істинності слід дотримуватись правил: А більше, ніж В, якщо А = 1 і В = 0. Відповідно В більше, ніж А, якщо В = 1 і А = 0. Таблиця істинності показана на рис. 5.62.
З таблиці істинності виходять логічні функції:
X = (AaB) v (AaB);
Y = А а;
Z = А в.
Ці рівняння далі не спрощуються. Шукана схема показана на рис. 5.63.
Мал. 5.62.
Мал. 5.63.
Перед відправкою із заводу транзистори перевіряються на відповідність чотирьох важливих параметрів А, В, С та D діапазону допустимих значень. Для вимірювання застосовують чотири цифрові датчики. Датчик видає 1 якщо вимірювана величина знаходиться в межах діапазону допустимих значень. Якщо вимірювана величина знаходиться поза діапазоном допустимих значень, датчик видає 0.
Сортування транзисторів відбувається з допомогою цифрової схеми. Якщо всі чотири величини знаходяться в межах діапазону допустимих значень, на виході змінна М отримує стан 1. Якщо тільки знаходиться поза діапазоном допустимих значень, то вихідна змінна N отримує стан 1. Якщо тільки В ж D знаходяться поза діапазоном допустимих значень, то вихідна змінна U отримує стан 1. У всіх інших випадках вихід Z-1, що означає, що транзистор є бракованим.
Потрібно розрахувати схему і побудувати її лише на елементах І-НЕ (також кажуть «в базисі І-НЕ»).
На вхід надходять чотири змінні А, В, С і D. Вихідними змінними є М, N, U і Z. М стає рівною 1, якщо А = 1, 5 = 1, С = 1 і D = 1. Це варіант 16 таблиці істинності (рис.
5.64). буде 1, якщо А = \, 5 = 0, С = 1 і D = 1 (варіант 14). U дорівнюватиме 1, якщо А — 1, 5 = 0,
С = 1 та D = 0 (варіант 6). В інших випадках, крім 6, 14 і 16, Z— 1.
Мал. 5.64. Таблиця істинності для схеми сортування транзисторів. Для більшої наочності нулі для вихідної змінної не записані
В результаті виходять такі логічні функції:
M = AaBaCaD;
N = А а В а З a D; U = А а В аС a D. Функція Z містить 13 повних кон'юнкцій. Z завжди тоді 1, якщо ні М, ні N, ні U не дорівнюють 1. Краще записати нормальну форму АБО для Z (див. рис. 5.64):
Z = (^4a5aCaD)v^a5aCaD^v^aBaCaZ));
Z = M v N vU. Тоді для прямого значення Z:
Z = M v N vU.
Мал. 5.65.
Знайдені функції М, Nn U спростити не можна. Вони повинні бути перераховані разом з рівнянням для Z на базис І-НЕ:
М = AaBaCaD\
N = А а В аС л D;
U = АлВлСлО",
Z = M v N v U U = Ma N aU;
Z = Ma N a U.
З цих рівнянь виходить схема, що представлена на рис. 5.65. За допомогою виходів М, N, U і Z може керуватися механічний пристрій, який розподіляє транзистори в 4 різні контейнери.