Схема за изчисление. Линейни алгоритми - схема, структура и изчисление. Превключвател две от три

  • 27.08.2020
2.1 Разработване на алгоритъма.

Алгоритъм- това е

а. описание на последователността от действия за решаване на проблем или постигане на цел;

б. правила за извършване на основни операции по обработка на данни;

° С. описание на изчисленията по математически формули.

Преди да започнете разработването на алгоритъм, е необходимо ясно да разберете проблема: какво се изисква да се получи в резултат, какви първоначални данни са необходими и какви са налични, какви са ограниченията за тези данни. След това трябва да напишете какви действия трябва да бъдат предприети, за да получите желания резултат от първоначалните данни.

На практика най-често се срещат следните форми на представяне на алгоритми:

Словесни (записи на естествен език);

Графични (изображения от графични символи);

Псевдокодове (полуформализирани описания на алгоритми на условен алгоритмичен език, включително както елементи на програмния език, така и фрази на естествен език, общоприети математически нотации и др.);

Програмиране (текстове на езици за програмиране).

Вербалният начин на писане на алгоритми е описание на последователните етапи на обработка на данни. Алгоритъмът е зададен в свободна форма на естествен език.

Пример. Запишете алгоритъма за намиране на най-големия общ делител (НОД) на две естествени числа.

Алгоритъмът може да бъде както следва:

1.задаване на две числа;

2. ако числата са равни, тогава вземете някое от тях като отговор и спрете, в противен случай продължете алгоритъма;

3. определя по-голямото от числата;

4. заменете по-голямото от числата с разликата между по-голямото и по-малкото от числата;

5.повторете алгоритъма от стъпка 2.

Описаният алгоритъм е приложим за всякакви естествени числа и трябва да доведе до решението на задачата. Убедете се сами, като използвате този алгоритъм, за да определите най-големия общ делител на 125 и 75.

Вербалният метод не е широко разпространен поради следните причини:

Такива описания не са строго формализирани;

Страдате от многословност на записите;

Те допускат неяснота при тълкуването на отделните предписания.

Графичният начин на представяне на алгоритмите е по-компактен и ясен в сравнение с вербалния.

В графично представяне алгоритъмът е изобразен като последователност от взаимосвързани функционални блокове, всеки от които съответства на изпълнението на едно или повече действия.

Това графично представяне се нарича блок-схема или блок-схема.

Псевдокодът е система от нотации и правила, предназначена за последователно записване на алгоритми.

Той заема междинно място между естествените и официалните езици.

От една страна, той е близък до обикновения естествен език, така че алгоритмите могат да се пишат и четат на него като обикновен текст. От друга страна, псевдокодът използва някои формални конструкции и математическа нотация, което приближава нотацията на алгоритъма до общоприетата математическа нотация.

Псевдокодът не приема строгите синтактични правила за писане на команди, присъщи на формалните езици, което улеснява писането на алгоритъм на етапа на проектиране и прави възможно използването на по-широк набор от команди, предназначени за абстрактен изпълнител. Псевдокодът обаче обикновено съдържа някои конструкции, присъщи на формалните езици, което улеснява преминаването от писане в псевдокод към писане на алгоритъм на формален език. По-специално, в псевдокод, както и във формалните езици, има функционални думи, чието значение е определено веднъж завинаги. Няма единна или формална дефиниция на псевдокод, следователно са възможни различни псевдокодове, които се различават по набора от служебни думи и основни (основни) конструкции.

2.2 Блокова схема.

Блоковата диаграма е графично представяне на алгоритъм, в който той е изобразен като последователност от взаимосвързани функционални блокове, всеки от които съответства на изпълнението на едно или повече действия.

В блоковата диаграма всеки тип действие (въвеждане на изходни данни, изчисляване на стойности на изрази, условия за проверка, контрол на повторението на действията, завършване на обработката и т.н.) съответства на геометрична фигура, представена под формата на символ на блок. Блоковите символи са свързани с преходни линии, които определят реда, в който се извършват действията.

Ето най-често използваните символи.

Име на символа Обозначение и пример за попълване Обяснение
процес Изчислително действие или последователност от действия
Решение Проверка на условията
Модификация Старт на цикъла
Предварително дефиниран процес Изчисления по подпрограма, стандартна подпрограма
Вход изход Общи I/O
Старт-стоп Начало, край на алгоритъма, влизане и излизане от подпрограма
документ Резултати от печат

Блокът "процес" се използва за обозначаване на действие или последователност от действия, които променят стойността, формата на представяне или разположението на данните. За да се подобри яснотата на диаграмата, няколко отделни блока за обработка могат да бъдат комбинирани в един блок. Представянето на отделни операции е доста безплатно.

Блокът "решение" се използва за индикация на условни контролни преходи. Всеки блок "решение" трябва да посочва въпроса, условието или сравнението, които дефинира.

Блокът "модификация" се използва за организиране на циклични структури. (Думата модификация означава модификация, трансформация). Параметърът на цикъла се записва вътре в блока, за който за всяко повторение са посочени неговата начална стойност, гранично условие и стъпка на промяна на стойността на параметъра.

Блокът "предварително дефиниран процес" се използва за обозначаване на извиквания към помощни алгоритми, които съществуват автономно под формата на някои независими модули, и за извиквания към библиотечни рутинни процедури.

Пример. Начертайте блокова схема на алгоритъм за определяне на височините 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а, з б, з в , изведете резултатите и спрете.

2.3 Алгоритмни структури.

Алгоритмите могат да се разглеждат като някои структури, състоящи се от отделни основни (т.е. основни) елементи. Естествено, при такъв подход към алгоритмите изучаването на основните принципи на тяхното проектиране трябва да започне с изучаването на тези основни елементи.

Логическата структура на всеки алгоритъм може да бъде представена чрез комбинация от три основни структури: следване, разклоняване и цикъл.

Основните конструкции се характеризират с наличието на един вход и един изход.

1. Основната структура е следната.Той се формира от последователност от действия, следващи едно след друго:

2. Основната структура на разклонението.Осигурява, в зависимост от резултата от проверката на условието (да или не), избора на един от алтернативните начини на алгоритъма. Всеки от пътищата води до общ изход, така че алгоритъмът ще продължи да работи, независимо кой път е поет.

структура разклоняванесъществува в четири основни варианта:

Ако-тогава-иначе;

Изборът е различен.

1) if-then if условие тогава действие край ако 2) ако-тогава-иначе ако условие тогава действие 1 в противен случай действие 2 край ако 3) избор на избор при условие 1: действие 1 при условие 2: действие 2. ... ... ... ... ... ... ... ... ... ... ... при условие N: действия N край на избор 4) избор-друг избор при условие 1: действие 1 при условие 2: действие 2. ... ... ... ... ... ... ... ... ... ... ... ако условие N: действия N в противен случай действия N + 1 край на избор

Пример. Начертайте блок-схема на алгоритъма за изчисление на функцията

Основната структура е цикъл. Осигурява многократно изпълнение на набор от действия, който се нарича тялото на цикъла.

Структурата на цикъла съществува в три основни варианта:

Тип контур за.

Инструктира да се изпълни тялото на цикъла за всички стойности на някаква променлива (параметър на цикъла) в посочения диапазон.

Тип контур докато.

Инструктира да се изпълни тялото на цикъла, стига условието, записано след думата до момента, е изпълнено.

Тип контур направи докато.

Инструктира да се изпълни тялото на цикъла, стига условието, записано след думата до момента, е изпълнено. Условието се проверява след изпълнение на тялото на цикъла.

Обърнете внимание, че циклите за и за сега се наричат ​​също цикли с предварителна проверка на условието, а циклите правят - засега - цикли с последваща проверка на условието. С други думи, телата на циклите за и за сега може да не се изпълнят нито веднъж, ако условието за край на цикъла първоначално не е вярно. Направете тялото на цикъла - докато не бъде изпълнено поне веднъж, дори ако условието за края на цикъла първоначално не е вярно.

Цикъл за i от i1 до i2 стъпка i3 тяло на цикъла (последователност от действия) край на цикъла цикъл while условие тялото на цикъла (последователност от действия) край на цикъла цикъл прави тялото на цикъла (последователност от действия), докато условието е края на цикъла

с дадена точност (за даден ред на променлива мощност необходимата точност ще бъде постигната, когато следващият член стане по-малък по абсолютна стойност).

Изчисляването на суми е типична циклична задача. Характерна особеност на нашия специфичен проблем е, че броят на термините (и следователно броят на повторенията на тялото на цикъла) не е известен предварително. Следователно, изпълнението на цикъла трябва да приключи в момента, в който се постигне необходимата точност.

При съставянето на алгоритъма е необходимо да се има предвид, че знаците на членовете се редуват и степента на числото x в числителите на термините се увеличава.

Решаване на този проблем "челно" чрез изчисляване на всяка i-та стъпка на частичния сбор

S: = S + (- 1) ** (i-1) * x ** i / i,

получаваме много неефективен алгоритъм, който изисква много операции. Много по-добре е да организираме изчисленията по следния начин: ако обозначим числителя на който и да е член с буквата p, тогава следващият член ще има числителя -p * x (знакът минус осигурява редуването на знака на термините) , и самият термин m

ще бъде равно на p / i, където i е номерът на термина.

Алгоритъм, който включва итеративен цикъл, се нарича итеративен алгоритъм. Итеративните алгоритми се използват за прилагане на итеративни числени методи. При итеративните алгоритми е необходимо да се гарантира, че е постигнато условието за излизане от цикъла (сближаване на итерационния процес). В противен случай алгоритъмът ще зацикли, т.е. основното свойство на алгоритъма - ефективност, няма да бъде изпълнено.

Вложени цикли.

Има случаи, когато е необходимо да се повтори определена последователност от изрази вътре в тялото на цикъла, тоест да се организира вътрешният цикъл. Тази структура се нарича цикъл в цикъл или вложени цикли. Дълбочината на влагане на цикли (тоест броят на вложените цикли) може да варира.

Когато използвате такава структура, за да спестите машинно време, е необходимо да преминете от вътрешния цикъл към външния всички изрази, които не зависят от параметъра на вътрешния цикъл.

Примервложени цикли за. Изчислете сумата от елементите на дадена матрица A (5.3).

Примервложени цикли все още. Изчислете произведението на онези елементи от дадена матрица A (10,10), които се намират в пресечната точка на четни редове и четни колони.

При внедряване на алгоритми за обработка на аналогови сигнали често се налага изчисляване на математически функции. Най-често срещаните функции са логаритмични и експоненциални функции. Тези функции се използват в схеми за намаляване и увеличаване на динамичния обхват на предавания или записан сигнал (компандиране). Друго често приложение на схемите за изчисляване на математически функции на експонента и логаритъм е изчисляването на произведението и разделянето на входните сигнали.

За изчисляване на нелинейна функция често се използва операционен усилвател, покрит с отрицателна обратна връзка. Като пример, Фигура 1 показва схема на логаритмичен усилвател.


Фигура 1. Схема на логаритмичен усилвател

В тази схема в веригата с отрицателна обратна връзка е включен нелинеен елемент (полупроводников диод), който има експоненциална зависимост на тока от приложеното напрежение. В резултат на обратната връзка зависимостта на изходното напрежение от входа става логаритмична. Коефициентът на усилване на тази логаритмична схема се определя от R1. Обикновено схемата на логаритъм се основава на единична печалба.

Ако в тази схема се използва диод с квадратна волт-амперна характеристика, тогава той ще изчисли квадратния корен от входния сигнал. Удобно е да се използва в схеми за определяне на амплитудата на сигнала при квадратурна обработка на сигнала.

(1),

По подобен начин се изчислява функцията, която е обратна на логаритмичната степен. Само в този случай нелинейният елемент е свързан не към веригата за обратна връзка, а към входа на усилвателя. Фигура 2 показва диаграма за изчисляване на експонентата на операционен усилвател.


Фигура 2. Схема за изчисляване на степента

Ако в тази верига се използва диод с квадратна волт-амперна характеристика, тогава веригата ще изчисли квадрата на входното напрежение и може да се използва като схема за определяне на мощността на входния сигнал.

С тези схеми за математически изчисления може да се изчисли произведението на два аналогови сигнала. В този случай добре известното свойство на логаритмите се използва за замяна на произведението на променливите със сумата от логаритмите на тези променливи. За обратното преобразуване използвайте функцията за изчисляване на степента. В този случай основата на логаритъма изобщо не е важна.

(2),

Схема за умножение, която прилага формула (1) върху операционни усилватели, е показана на фигура 3.



Фигура 3. Схема на умножител на базата на операционни усилватели

Въпреки простотата на изпълнение, такава схема се използва рядко, т.к умножението е възможно само с положителни входни стойности. Поради това обикновено се използват умножителни схеми, базирани на базата.

За изчисляване на функции не винаги е възможно да се избере нелинеен елемент с дадена характеристика на напрежението. В този случай можете да използвате линейната аппроксимация на функцията на парчета. На операционен усилвател е лесно да се приложи всяко усилване, просто като се промени стойността на резистора във веригата за обратна връзка, като по този начин се зададе наклона на функцията. Превключването на резистори при промяна на входното напрежение се извършва най-лесно на диодни ключове, към които се подава определеното от нас блокиращо напрежение. Подобна схема е показана на фигура 4.


Фигура 4. Схема на функционален усилвател

Транзисторните умножители често се използват за изчисляване на по-сложни функции. В най-простия случай входовете X и Y могат да се комбинират и да се получи схема за изчисляване на квадрата от входния сигнал ( Y = X 2).

Могат да се използват като електронни регулатори на напрежението. Чрез прилагане на постоянно напрежение към един от входовете е възможно да се регулира нивото на променливото напрежение, приложено към изхода на изхода.

литература:

Заедно със статията "Схеми за изчисляване на математически функции" четете:

Общи инструкции
За синтеза на вериги в Разд. 5.1 описва следните стъпки:
1. Описание на функцията на необходимата верига.
2. Присвояване на входни и изходни променливи и присвояване на стойности 0 и 1.
3. Съставяне на таблица на истинността.
4. Определяне на необходимите логически операции.
5. Опростяване и при необходимост трансформиране на веригата.
Ако таблицата на истинността е известна, тогава е препоръчително да започнете 4-тия етап със съставянето на нормалната форма ИЛИ. Тя ще бъде максимално опростена с помощта на диаграма на Karnot. В края на стъпка 4 се получава опростена логическа функция, според която можете да сглобите логическа цифрова схема.
В стъпка 5 се проверява дали е възможно и рационално по-нататъшно опростяване на функцията, намерена с помощта на алгебрата на логиката. Ако е така, тогава трябва да се направи опростяване.
Сега трябва да разберем какви логически елементи са налични. Логическата функция трябва да бъде трансформирана така, че да съдържа само наличните логически елементи. След това можете да сглобите веригата.

Цифрова верига за включване и изключване от множество места

С помощта на логически порти е необходимо да се синтезира верига, която функционира като верига за включване и изключване от множество места. Изходното състояние трябва да се промени само ако състоянието на един от входовете се промени. Ако и двата входа променят състоянието си, тогава изходното състояние не трябва да се променя. Веригата трябва да бъде изградена върху елементите ИЛИ НЕ.
Желаната схема има два входа и един изход. Входните променливи се наричат ​​A и B. Изходната променлива е обозначена Z (Фигура 5.47).
Таблицата на истинността на верига с две входни променливи има 4 опции (фиг. 5.48). Първоначалното състояние Z за първата опция може да бъде зададено по всякакъв начин. Избрано Z = 0.
При прехода от опция 1 към опция 2 променлива А променя състоянието си. Променлива B не променя състоянието. Ако само един от входовете промени състоянието си, то според поставената задача изходът Z трябва да промени състоянието си. Z трябва да е равно на 1.
При прехода от вариант 2 към вариант 3 променливите A и B променят своите състояния. Z не трябва да се променя. При преминаване от опция 3 към опция 4 променлива A променя състоянието си от 0 на 1. B остава равно на 1. Така Z трябва да промени състоянието си от 1 на 0. Таблицата на истинността е готова. Може да изглежда различно, ако изберем Z = 1 в опция 1.
За таблицата на истинността (фиг. 5.48) трябва да запишете нормалната форма ИЛИ. Изглежда така:
Z = (AaB) w (AaB).
Ако въведете нормалната форма ИЛИ в диаграмата на Карно, тогава можете да видите, че по-нататъшното опростяване е невъзможно (фиг. 5.49).
Тъй като веригата трябва да бъде изградена върху елементите OR-HE, е необходимо да се трансформират уравненията:
Z = (AaB) w (AaB) -,
Z = (AaB) v (AaB),
Z = AaBaAaB.

Ориз. 5.50 Цифрова схема

Веригата, изградена според трансформираното уравнение, е показана на фиг. 5,50.

Превключвател две от три

Системи с висок риск, като атомна електроцентрала, трябва незабавно да бъдат изключени в случай на авария. Прекъсването става автоматично с помощта на цифрова верига. В аварийните сензори, отговорни за изключване, могат да възникнат фалшиви аларми. Следователно на всяко критично място се монтират три еднакви аварийни сензора (фиг.5.51).
Изключването трябва да става само когато са задействани поне два от трите аварийни сензора. Този подход предотвратява ненужните изключвания на системата, които могат да причинят финансови загуби. Когато се задействат, аварийните сензори имат състояние 1. Системата трябва да бъде деактивирана, ако състояние 1 е активно на изхода на веригата.
Така че, необходима е верига, чийто изход има състояние 1, когато поне 2 от 3-те входа имат състояние 1. Такава схема се нарича превключвател "две от три".
Входните променливи са наречени A, B и C. Изходната променлива - Z. Нека съставим таблица на истинността според словесно описание на принципа на веригата. Когато две входни променливи са равни на 1, Z = 1. Ако и трите входни променливи са равни на 1, Z също трябва да е равно на 1. Такава таблица на истинността е показана на фиг. 5.52.
Освен това, според съставената таблица на истинността, нормалната форма OR се записва:

Ориз. 5.51.

Z = (A a B a C) v (A a B a C) v a5aC | v (^ aSaC).

Нормалната форма ИЛИ се опростява с помощта на диаграмата на Карно (фиг. 5.53). Могат да се образуват три двойни групи. Опростеното уравнение е:
Z = (AaB) w (BaC) w (AaC).
Използвайки това уравнение, можете да изградите верига (фиг.5.54).
Често под ръка са само елементите OR-HE. За да изградим верига само върху OR-HE елементи, трансформираме уравнението: в ° -
Z = (AaB) v (BaC) v ​​(AaC);
======= С О.
Z = (A l B) v (B aC) v ​​(A lC);
- ===== - = Фиг. 5.55. Превключвателна верига "две
Z = AlVlVlSlAlS. от три“ на елементите SH1I-NOT.
Съответната верига е показана на фиг. 5.55.

Проверка на четност

За откриване на грешки в кодовете (вижте раздели 8.7 и 8.8), както и за задачи за наблюдение и наблюдение, често се изисква схема, в която изходът е 1, когато четен брой входове имат състояние 1.
Това се нарича проверка на четност.
Искате да синтезирате верига с четири входа. Входните променливи са A, B, C и D. Изходната променлива е Y.
Първо трябва да съставите таблица на истинността. Y винаги ще бъде равно на 1, ако 0, 2 или 4 входни променливи са равни на 1 (Фигура 5.56).
От таблицата на истинността се получава нормалната форма ИЛИ:
Y = (A l B lS l D) \ / ^ A l B lS l (A l B lS l (A l B aS l
v (A l B lS l [A l B lS l (A l B lS l (A l B lS l D).

Отделните пълни съюзи са номерирани. Нека се опитаме да опростим нормалната форма ИЛИ с помощта на картата на Карно (фиг.5.57). Тук се сблъскваме с рядък случай, когато формирането на групи е невъзможно. Това означава, че тази нормална форма ИЛИ не е опростена и нейната диаграма е показана на фиг. 5.58.

Прагова логическа верига е верига, в която определен минимален брой входни променливи трябва да имат състояние 1, за да се появи логическа 1 на изхода.
Например, трябва да изчислите верига с пет входни променливи. Изходът трябва да бъде само 1, когато поне 4 входа са 1.
Входните променливи са с имена A, B, C, D и E. Изходната променлива е Z. Първо, трябва да дефинирате таблицата на истинността. С пет променливи са възможни 32 опции (фиг.5.59):
Z = ¦ (A l B lS l D l E ^ v (A l B lS l D l E) v (A l B lS l D l v ^ A l B lS l D l E ^ v [A l B lS l D l E ^ v (A l B lC l D l E).
Нормалната форма на ИЛИ се състои от шест пълни съюза.
Нормалната форма ИЛИ се опростява с помощта на диаграмата на Карно (фиг. 5.60). Могат да се формират 5 двойни групи. Оказва се следната опростена логическа функция:
Z = (A aBaCaE) v (A aBaDaE) v (A aBaCaD) v v (A aC a D a E) v (B aC a D a E).

Диаграмата за опростената функция е показана на фиг. 5.61. Това уравнение може да бъде допълнително опростено с помощта на алгебрата на логиката. За първите три пълни съюза (AaB) може да се извади от скобите, за последните две - (CL D). Резултатът е функция:
Z = [(A A B) A ((C A E) V (D A E) A C A X>))] V [(C AD) A ((A A E) V (B A Z))] ... Все пак не беше възможно да се постигне значително опростяване.

Схема за сравнение (компаратор)

В цифровите технологии често е необходимо да се сравняват цифровите данни помежду си. Най-простата схема за сравнение, така нареченият компаратор, сравнява състоянието на две променливи една с друга.
Нека променливите са с етикет A и B. A и B могат да бъдат равни. И може би повече от B и обратно. Компараторът има три изхода за тези три опции. Те са обозначени като X, Y и Z и техните състояния са назначени, както следва:
A = I => X = 1;
A> B ^> Y = 1;
А< В =>Z = 1.
Така че е необходимо да се синтезира верига с две входни променливи A и B и изходни променливи X, Y и Z.
При формиране на таблицата на истинността трябва да се спазват следните правила: A е по-голямо от B, ако A = 1 и B = 0. Съответно, B е по-голямо от A, ако B = 1 и A = 0. Таблицата на истинността е показана на фиг. . 5.62.
Логическите функции се получават от таблицата на истинността:
X = (AaB) v (AaB);
Y = А и В;
Z = A и B.
Тези уравнения не са допълнително опростени. Желаната верига е показана на фиг. 5.63.

Ориз. 5.62.

Ориз. 5.63.

Преди да напуснат фабриката, транзисторите се тестват, за да се гарантира, че четири важни параметъра A, B, C и D са в рамките на допустимия диапазон. За измерване се използват четири цифрови сензора. Сензорът извежда 1, ако измерената стойност е в рамките на допустимия диапазон. Ако измерената стойност е извън обхвата на допустимите стойности, сензорът извежда 0.
Транзисторите се сортират с помощта на цифрова схема. Ако и четирите стойности са в обхвата на приемливите стойности, изходната променлива M получава състояние 1. Ако само B е извън диапазона на приемливите стойности, тогава изходната променлива N получава състояние 1. Ако само B и D са извън диапазон от приемливи стойности, тогава изходната променлива U получава състояние 1. Във всички останали случаи изходът Z е 1, което означава, че транзисторът е дефектен.
Необходимо е да се изчисли схемата и да се изгради само върху елементите NAND (те също така казват "в основата на NAND").
Входът е четири променливи A, B, C и D. Изходните променливи са M, N, U и Z. M става равно на 1, ако A = 1, 5 = 1, C = 1 и D = 1. Това е опция 16 в таблицата на истинността (фиг.
5.64). ще бъде 1, ако A = 1, 5 = 0, C = 1 и D = 1 (опция 14). U ще бъде равно на 1, ако A - 1, 5 = 0,
C = 1 и D = 0 (вариант 6). Във всички останали случаи, с изключение на 6, 14 и 16, Z— 1.

Ориз. 5.64. Таблица на истинността за схемата за сортиране на транзистора. За по-голяма яснота нулите за изходната променлива не се записват.

Резултатът е следните логически функции:
М = AaBaCaD;
N = A и B a C a D; U = A a B aC a D. Функцията Z съдържа 13 пълни конюнкции. Тогава Z винаги е 1, ако нито M, нито 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 на база NAND:
M = AaBaCaD \
N = A и B aCl D;
U = AlVlSlo ",
Z = M v N v U = M и N aU;
Z = M a N a U.
От тези уравнения се получава диаграмата, показана на фиг. 5.65. Изходите M, N, U и Z могат да управляват механично устройство, което разпределя транзисторите в 4 различни контейнера.

резюмета на други презентации

"Основни алгоритмични структури" - Изпълнение на командите "тяло на цикъла". Блокова диаграма на алгоритмичната структура за „разклоняване“. Нека n = 5; i = 4. Блокова схема на цикличен алгоритъм. Край. Алгоритмична структура "избор". Нека n = 5; i = 5. Започнете. Разклонена структура. Нека n = 5; i = 6. Основните видове алгоритмични структури. Алгоритмична структура "цикъл". Положително число. Блокова схема на алгоритмичната структура "избор". Блокова схема на линеен алгоритъм.

"Видове алгоритми" - Почистване на апартаменти. Отворете чантата. Мото на урока. Ханойски кули. Името на фигурата. Гледайте анимационния филм. Съберете реколтата. Концепция за алгоритъм. Приближете се до прехода. Циклични алгоритми. Влезте в градината. Ръце. Алгоритъм на човешките действия. Графичен диктовка. Алгоритъм за запис. Алгоритъм.

Записване на цикъл в процедура. Корекция на процедурата. Основни цветове. Рисуваме стена. Какво е алгоритъм. Команда. Интерактивен урок. Рисуваме покрива. Рисуваме къща. Ние рисуваме. Рисуваме прозорци. Къщата е готова. Цикъл. знание. Променете цвета на писалката.

„Проблеми с линеен алгоритъм“ – X = 0 Няма решения. Y = 2.X = 3 Y = 1/48. Дадени са координатите на върховете на триъгълника ABC. Изчислете стойността на функцията Y при X = 2 с помощта на блок-схемата. Преобразувайте А в по-големи единици информация. Алгоритмизацията е процес на разработване на алгоритъм (план за действие) за решаване на проблем. X = -1 Няма решение. Примери за решаване на проблеми. Като се имат предвид дължините на страните на триъгълника A, B, C. Намерете площта на триъгълника S. Начертайте блокова схема на алгоритъма за решаване на задачата.

„Алгоритмични конструкции“ – Начин за представяне на алгоритми под формата на графика. Разклоняване. Представяне на алгоритми под формата на описание на последователност от действия. Форми за представяне на алгоритъм. Блокова диаграма на алгоритъма "Оформяне на тапети". Алгоритмични конструкции. Алгоритъм за решаване на проблема. Блокова схема. Графичен начин за представяне на алгоритми. Методи за представяне на алгоритми. Алгоритъм. Сложен алгоритъм. Блокови схеми на основни структури.

"Основните видове алгоритмични структури" - Запишете алгоритмите в вербална форма. Групова работа. структура. Правопис на представки. Основните видове алгоритмични структури. Проверка на самостоятелна работа. Физическа минута. Задачи за консолидиране на знания. Алгоритъм. Основна структура. Задаване на начални параметри. Рецепта за чай. Разклоняване. Намерете корена. Цикъл с постусловие. Цикъл. Блок символи. Край на алгоритъма. Основните видове агроритмични структури.

Ежедневието на всеки човек се състои в решаването на огромен брой проблеми с различна сложност по време на работа или по време на обучение. Някои задачи са толкова прости, че когато ги изпълняваме, извършваме определени действия автоматично, без дори да се замисляме. Решението на всеки проблем, дори и на най-простия, обикновено се извършва последователно в няколко стъпки. Този вид последователност при решаване на проблеми се нарича алгоритъм. Днес ще разгледаме какво представляват линейните алгоритми, как е изобразена тяхната структура, как се решават и програмират.

Алгоритмичен език

Тази концепция е точно предписание за изпълнителя да извърши определена последователност от действия, която е насочена към решаване на проблема.

Този език е средство за описание на алгоритми, които обикновено са ориентирани към потребителя.

  • Алгоритъм начало-край блок. На блока има надпис "начало" или "край".
  • Блок за въвеждане-изход на данни. Този блок е изобразен като паралелограм. Върху него са поставени следните надписи: "вход", "изход", "печат". Те също са придружени от списък с входни или съответно изходни променливи.
  • Аритметичен блок или блок за решение. Съответства на правоъгълник. Блокът трябва да има надпис: "операция", "група операции".

Тук с помощта на такива блок-схеми е изобразено решението на линейните алгоритми. След това нека поговорим за спецификата на присвояването на стойности.

Линейни изчислителни алгоритми

Основното елементарно действие в изчислителния алгоритъм е да се присвои променлива на определена стойност. В случай, че стойността на константа се определя от типа на нейната нотация, променливата ще получи конкретна стойност единствено в резултат на присвояването. Това може да стане по два начина: с помощта на командата за присвояване; с помощта на командата за въвеждане.

Пример за решаване на линеен алгоритъм

Ето пример за описание на правилата за разделяне на обикновени дроби с помощта на линеен алгоритъм, който в училищните учебници има следното съдържание:

  • числителят на дроб 1 трябва да се умножи по знаменателя на дроб 2;
  • знаменателят на дроб 1 трябва да се умножи по числителя на дроб 2;
  • изисква се да се напише дроб, в който числителят е резултат от попълване на 1 точка, а знаменателят е резултат от попълване на 2 точки. Алгебричната форма на това правило е, както следва:

a / b: c / d = (a * d) / (b * d) = m / n.

И така, нека изградим алгоритъм за разделяне на дроби за компютър. За да не се объркаме, ще използваме същите обозначения за променливите, както във формулата, която беше посочена по-горе. a, b, c, d - начални данни под формата на целочислени променливи. Целочислените стойности също са резултатът. Решението на алгоритмичен език ще бъде както следва:

алгДеление на дроби

непокътната, б, в, г, м, н

вход a, b, c, d

кон

Форма за графично решение

Диаграмата на линейния алгоритъм, описана по-горе, изглежда така:

Командата за присвояване има следния формат:

Променлива: = израз.

Знакът ": =" се чете като присвояване.

Присвояването е команда, която компютърът трябва да направи следното:

  • оценяване на израз;
  • присвояване на получената стойност на променливата.

Горният алгоритъм съдържа две инструкции като задание. В блоковата диаграма командата за присвояване трябва да бъде написана в правоъгълник, наречен изчислителен блок.

Когато се описват линейни алгоритми, няма особена нужда от стриктно спазване на строги правила при писане на изрази. Можете да ги напишете с помощта на обичайната математическа форма. В крайна сметка това не е строгият синтаксис на езика за програмиране.

В дадения пример на алгоритъма има и команда за въвеждане:

Въведете a, b, c, d.

Входна команда в блокова диаграма се записва в паралелограм, тоест в I / O блок. При изпълнение на тази команда процесорът прекъсва работата, докато потребителят не предприеме определени действия. А именно: потребителят трябва да напише входните променливи (техните стойности) на (клавиатурата) и да натиснете Enter, което е клавишът за въвеждане. Важно е стойностите да се въвеждат в същия ред като съответните променливи в списъка за въвеждане.

Линеен алгоритъм. Неговото програмиране

Както бе споменато в началото на тази статия, линейните програми могат да включват следните оператори:

  • назначение;
  • вход;
  • изход.

Тоест с помощта на изброените оператори се изпълняват алгоритми.

И така, на езика за програмиране се пише така:

НЕКА A = B, където A е променлива, B е израз. Например, A = Y + 20.

Операторът за въвеждане изглежда така:

INPUT, например: INPUT C

Операторът за извеждане на данни, стойности, се записва в следната форма:

ПЕЧАТ. Например, PRINT C.

Да вземем един прост пример. Трябва да напишем програма, която ще намери сбора от числата A и B, въведени от клавиатурата.

В езика за програмиране получаваме програмата, чийто текст е показан по-долу.

Оператори на вход, изход на езика за програмиране Pascal

Pascal не разграничава специални оператори за входни или изходни операции, които използват линейни алгоритми. В програмите обменът на информация се извършва с помощта на вградени процедури. Тъй като няма нужда от предварително описание на стандартната процедура, тя е достъпна за всяка програма, съдържаща извикване към нея. Също така името на споменатата процедура не се появява като никаква запазена дума.

Въвеждането на данни използва такива оператори за позоваване на стандартна рутина за въвеждане на данни, която вече е вградена в програмата.

Прочетете (A, B, C), където A, B, C са променливи, които трябва да бъдат въведени в RAM за запомняне.

Readlnn (x1, y, x2) - след приключване на въвеждането курсорът се премества в началото на нов ред.

Readlnn; - показва очакването на натискане на "Enter". Обикновено този израз се вмъква в текста преди последния "Край", за да се запишат резултатите от изпълнението на програмата на екрана със съдържание.

Извеждането на данни на екрана на монитора се извършва с помощта на следните оператори:

Напишете (А, В, С) - след като посочите стойностите А, В, С в един ред, курсорът не напуска текущия ред.

Writeln (z, y, z2) - след приключване на показването на стойности, курсорът на тази позиция ще се премести на нов ред.

Writeln; - показва пропускането на един ред и преминаването към началото на нов.

Именно с помощта на такива прости оператори се извършва въвеждане и извеждане на данни на езика Pascal.