- •Оглавление
- •1. Информация, ее представление и измерение
- •2. Общая характеристика процессов сбора, передачи и обработки информации
- •2.1. Системы счисления и действия в них
- •2.2. Общая характеристика процессов передачи информации
- •2.3. Кодирование и шифрование информации
- •2.4. Компьютерные вирусы
- •3. Модели решения функциональных и вычислительных задач
- •3.1. Модели и моделирование
- •3.2. Основные свойства модели и моделирования
- •Моделирование – есть метод системного анализа.
- •3.3. Классификация видов моделирования
- •3.4. Компьютерное моделирование
- •3.5. Функции алгебры логики
- •Коммутативность
- •Ассоциативность
- •Дистрибутивность
- •3.6. Булева алгебра. Функциональная полнота
- •3.7. Минимизация функций алгебры логики
- •4. Программные средства реализации информационных процессов
- •5. Технические средства реализации информационных процессов
- •6. Алгоритмизация и программирование
4. Программные средства реализации информационных процессов
Представление вычислительного устройства схемой, состоящей из логических элементов наиболее исследованный вид структурной реализации вычислительных и информационных процессов. Другой вид - реализация программой. Программа вычисляет (реализует) логические функции f(x1, ..., xn) = y, если для любого двоичного набора d = ( d1,..., dn ) при начальном состоянии элементов памяти x1 = d1 , x2 = d2 ,..., xn = dn программа через конечное число шагов останавливается и в ячейке y лежит величина f(d1, d2, ..., dn ). Если под сложностью схемы, реализующей автомат, обычно понимается число элементов схемы, то под сложностью программ можно понимать:
число команд в тексте программы;
объем промежуточной памяти;
время вычисления программы, которое характеризуется двумя величинами:
Средним временем
Максимальным временем ,
где сумма и максимум берутся по всем 2 наборам, а tp - время работы программы на одном наборе s.
Рассмотрим 2 типа программ: операторные и бинарные. Операторная программа не содержит условных переходов, порядок ее команд в точности соответствует нумерации элементов в схеме, а система команд соответствует базису схемы. Элементы схемы нумеруются числами 1,..., n таким образом, чтобы на любом пути от входа к выходу номера элементов возрастали. При этом номер 1 получит один из входных элементов, а номер n - выходной элемент.
Поскольку операторная программа не содержит условных переходов, то время ее выполнения на любом наборе одно и то же, отсюда t max = t ср.
Бинарные программы это программы, состоящие из команд типа y = d ; d = {0, 1} и условных переходов.
Замечание. Бинарные программы обладают двумя достоинствами по сравнению с операторными:
Отсутствием промежуточной памяти в процессе работы программы. Это позволяет реализовать бинарную программу на постоянных элементах памяти.
Более высоким быстродействием.
Пример. Составить для функции f = ( x1 v Øx2 ) бинарную и операторную программы.
Решение. Воспользуемся языком С++, будем иметь код:
void main()
{
bool f=0, x1,x2 ; // описание типа переменных
cout<<” Enter x1,x2\n”; // вывод на экран текста
cin>> x1>>x2; // ввод переменных
switch (x1) // оператор выбора
{
case 0: switch(x2)
{
case 0: f=1;
case 1: f=0;
}
case 1: f=1;
}
default: f=0;
cout>> f ;
}
Операторная программа пишется в базисе {&,Ø}. Для этого перепишем заданную функцию, используя формулы де Моргана.
void main()
{
bool f, x1,x2 ; // описание типа переменных
bool a,b;
cout<<” Enter x1,x2\n”; // вывод на экран текста
cin>> x1>>x2; // ввод переменных
a= 1-x1; { }
b= a * x2; { }
b= 1 - b; { }
f=b;
cout<<f;
}