- •1 Системы счисления и действия в них
- •2. Пространство сообщений. Коды обнаружения и исправления ошибок.
- •3 . Шифрование информации методом замены.
- •4. Компьютерные вирусы.
- •5. Основные свойства модели и моделирования.
- •6. Компьютерное моделирование.
- •7. Функции алгебры логики.
- •9. Операторные и бинарные программы.
- •10. Логические схемы. Элементная база.
- •11. Алгоритмизация.
- •13. Информатика. Информация. Алфавит.
- •14 Основные свойства информации:
- •15. Мера информации.
- •16. Методы получения информации.
- •17. Симметричные критосистемы.
- •18. Шифрование информации методом перестановки.
9. Операторные и бинарные программы.
Рассмотрим 2 типа программ: операторные и бинарные. Операторная программа не содержит условных переходов, порядок ее команд в точности соответствует нумерации элементов в схеме, а система команд соответствует базису схемы. Элементы схемы нумеруются числами 1,..., n таким образом, чтобы на любом пути от входа к выходу номера элементов возрастали. При этом номер 1 получит один из входных элементов, а номер n - выходной элемент.
Бинарные программы это программы, состоящие из команд типа y = ; = {0, 1} и условных переходов.
Замечание. Бинарные программы обладают двумя достоинствами по сравнению с операторными:
Отсутствием промежуточной памяти в процессе работы программы. Это позволяет реализовать бинарную программу на постоянных элементах памяти.
Более высоким быстродействием.
Пример. Составить для функции 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"