Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БИЛЕТ 1 Системы счисления и действия в них.docx
Скачиваний:
7
Добавлен:
15.04.2019
Размер:
272.61 Кб
Скачать

9. Операторные и бинарные программы.

Рассмотрим 2 типа программ: операторные и бинарные. Операторная программа не содержит условных переходов, порядок ее команд в точности соответствует нумерации элементов в схеме, а система команд соответствует базису схемы. Элементы схемы нумеруются числами 1,..., n таким образом, чтобы на любом пути от входа к выходу номера элементов возрастали. При этом номер 1 получит один из входных элементов, а номер n - выходной элемент.

Бинарные программы это программы, состоящие из команд типа y =  ;  = {0, 1} и условных переходов.

Замечание. Бинарные программы обладают двумя достоинствами по сравнению с операторными:

  1. Отсутствием промежуточной памяти в процессе работы программы. Это позволяет реализовать бинарную программу на постоянных элементах памяти.

  2. Более высоким быстродействием.

Пример. Составить для функции f = ( x1 v x3 ) & (x5 &  x4 v x2) бинарную и операторную программы.

Решение. Воспользуемся языком С++, будем иметь код:

void main()

{

bool f=0, x1,x2,x3,x4,x5 ; // описание типа переменных

cout<<” Enter x1,x2,x3,x4\n”; // вывод на экран текста

cin>> x1>>x2>>x3>>x4>>x5; // ввод переменных

switch (x1) // оператор выбора

case 0: switch(x3)

case 0: f:=1;

case 1: f:=0;

case 1: f:=1;

switch ( f)

case 1: switch ( x5)

case 0: switch (x2)

case 0: f:= 0;

case 1: f:= 1;

case 1: switch (x4)

case 0: f:= 1;

case 1: switch (x2)

case 0: f:= 0;

case 1: f:= 1;

case 0: f=0;

default: f=0;

cout>> f ;

}

Операторная программа пишется в базисе {&,}. Для этого перепишем заданную функцию, используя формулы де Моргана.

f = (x1 & x3 ) & ( ( x5 & x4 ) & x2 )

void main()

{

bool f, x1,x2,x3,x4,x5 ; // описание типа переменных

cout<<” Enter x1,x2,x3,x4\n”; // вывод на экран текста

cin>> x1>>x2>>x3>>x4>>x5; // ввод переменных

a= 1-x1; { }

b= a  x3; { }

b= 1 - b; { }

a= 1 - x4; { }

c= a  x5 ; { }

c= 1 - c ; { }

a= 1 - x2 ; { }

c= c  a; { }

c= 1 - c; { }

f= b c;

cout<<f;

}

10. Логические схемы. Элементная база.

Логический вентиль (вентиль) – это своего рода элемент, из которого состоят электронные узлы ЭВМ. Он работает по принципу крана, открывая или закрывая путь сигналам.

Логические схемы предназначены для реализации различных функций алгебры логики и реализуются с помощью трех базовых логических элементов (вентилей, логических схем, переключательных схем). Они воспроизводят функции полупроводниковых схем.

Логические функции отрицания, дизъюнкции и конъюнкции реализуют логические схемы, называемые инвертором, дизъюнктором и конъюнктором.

Логическая функция "инверсия", или отрицание, реализуется логической схемой (вентилем), называемой инвертор.

Дизъюнкцию реализует логическое устройство (вентиль) называемое дизьюнктор

Конъюнкцию реализует логическая схема (вентиль), называемая конъюнктором.

Пример. В двоичной системе таблицу суммирования цифры x и цифры y и получения цифры z с учетом переноса p в следующий разряд можно изобразить таблицей вида:

x

y

z

p

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

Эту таблицу можно интерпретировать как совместно изображаемую таблицу логических функций (предикатов) вида

Логический элемент, соответствующий этим функциям, называется одноразрядным сумматором и имеет следующую схему (обозначим ее как или – если мы хотим акцентировать именно выбранный, текущий i-й разряд) (рис. 5.7):

Рис. 5.8. Схема "черного ящика 1"