- •Предисловие Цели и задачи изучения дисциплины
- •Краткая характеристика дисциплины, её место вучебном процессе
- •Лекция1. Понятие «информация». Количество информации
- •1.1. Понятие «информация» и свойства информации
- •1.2. Количество информации как мера уменьшения неопределенности знаний
- •1.3. Алфавитный подход к определению количества информации
- •1.4. Формула Шеннона
- •Контрольные вопросы
- •Лекция2. Системы счисления
- •2.1. Представление числовой информации с помощью систем счисления
- •2.2. Перевод чисел в позиционных системах счисления
- •2.3. Арифметические операции в позиционных системах счисления
- •Контрольные вопросы
- •Лекция3. Кодирование информации
- •3.1. Представление и кодирование информации
- •3.2. Двоичное кодирование информации в компьютере
- •3.3.Кодирование текстовой информации
- •3.4.Кодирование графической информации
- •3.5.Кодирование звуковой информации
- •Контрольные вопросы
- •Лекция4. Основы логики. Логические выражения
- •4.1. Формы мышления
- •4.2. Алгебра высказываний
- •4.3. Логические выражения и таблицы истинности
- •Контрольные вопросы
- •Лекция5. Логические основы компьютера
- •5.1. Логические функции
- •5.2. Логические законы и правила преобразования логических выражений
- •5.3. Логические основы компьютера
- •Контрольные вопросы
- •Лекция6. Основы алгоритмизации
- •6.1. Алгоритмы и их свойства
- •6.2. Основные алгоритмические конструкции
- •Контрольные вопросы
- •Лекция7. Основы программирования
- •7.1. Этапы решения прикладных задач с использованием компьютеров
- •7.2. Программа. Язык программирования
- •7.3. Основы программирования в системеTurboPascal
- •7.4. Структура программы на языке Паскаль
- •Контрольные вопросы
- •Лекция8. Моделирование и формализация
- •8.1. Исследование математических моделей
- •8.2. Геометрические модели
- •8.3. Геоинформационные модели
- •8.4. Оптимизационное моделирование
- •8.5. Логические модели
- •Контрольные вопросы
- •Список рекомендуемой литературы:
8.5. Логические модели
При решении логических задач можно использовать компьютерные логические модели. Создадим компьютерную модель на языке Turbo Pascal., которая позволит составить расписание уроков для учителей математики, физики и информатики.
Логическая задача. Учитель математики просит поставить ему первый или второй урок, учитель информатики — первый или третий, а учитель физики — второй или третий уроки. Какие и сколько вариантов расписания можно составить, учитывая пожелания учителей?
Формальная логическая модель. Прежде всего, необходимо каждое пожелание учителей записать в форме логических переменных, введя соответствующие обозначения для используемых высказываний. В нашем случае используем следующие обозначения:
М1 — {математика — первый урок},
М2 — {математика — второй урок},
I1 — {информатика — первый урок},
I3 — {информатика — третий урок},
F2 — {физика — второй урок},
F3 — {физика — третий урок}.
Из условия задачи следует, что каждый учитель должен провести хотя бы один урок, следовательно, можно записать следующие логические условия:
М1 v М2 = 1;
I1 v I3 = 1;
F2 v F3 = 1.
Необходимо учесть также утверждения, содержащиеся в условии задачи неявно, а именно: «ни один из предметов не может быть дважды» и «на одном уроке не могут быть одновременно два предмета». Таким образом, не могут быть истинны шесть составных высказываний, образованных из пар простых высказываний (М1 и М2, I1 и I3, F2 и F3, М1 и I1, М2 и F2, I3 и F3) с помощью операции логического сложения.
Запишем составные высказывания в форме логических выражений и осуществим тождественное преобразование логических выражений, так чтобы они были равны единице. Если одно из двух взаимоисключающих высказываний ложно, то хотя бы одно из их отрицаний истинно, то есть логическое умножение простых высказываний можно заменить логическим сложением их отрицаний:
М1 & М2 = 0;
I1 & I3 = 0;
F2 & F3 = 0;
М1 & I1 = 0;
М2 & F2 = 0;
I3 & F3 = 0;
⌐М1 v ⌐М2 = 1;
⌐I1 v ⌐I3 = 1;
⌐F2 v ⌐F3 = 1;
⌐М1 v ⌐I1 = 1;
⌐М2 v ⌐F2 = 1;
⌐I3 v ⌐F3 = 1.
Полученные девять логических условий должны быть одновременно истинны, т. е. должно быть истинно составное высказывание, в котором логически перемножаются все исходные логические условия:
(М1 v М2) & (I1 v I3) & (F2 v F3) & (⌐М1 v ⌐М2) & (⌐I1 v ⌐I3) &
& (⌐F2 v ⌐F3) & (⌐М1 v ⌐I1) & (⌐М2 v ⌐F2) & (⌐I3 v ⌐F3) = 1.
Задача, таким образом, свелась к определению всех возможных комбинаций исходных данных, то есть М1, М2, I1, I3, F2, F3, при которых логическое выражение истинно.
Компьютерная модель. Таким образом, задача сводится к перебору всех возможных комбинаций логических аргументов и определению значений логического выражения для каждой такой комбинации. Это можно реализовать с помощью вложенных циклов со счетчиком, в каждом из которых рассматриваются два значения аргументов: True и False.
Однако в цикле со счетчиком переменная Счетчик должна быть обязательно числового типа, логические значения она принимать не может. Поэтому необходимо использовать числовую форму представления логических значений, логическому 1 значению False соответствует число 0, а логическому значению True соответствует — 1.
Перебор вариантов будем осуществлять с помощью вложенных циклов, а для того чтобы таблицы истинности выводились программой в привычном виде, необходимо при выводе их на печать после переменной ставить формат вывода.
Program p1;
Var M1,M2,I1,I3,F2,F3: integer;
Begin
For M1:=0 to 1 do
begin
For M2:=0 to 1 do
begin
For I1:=0 to 1 do
begin
For I3:=0 to 1 do
begin
For F2:=0 to 1 do
begin
For F3:=0 to 1 do
if (M1 OR M2) AND (I1 OR I3) AND (F2 OR F3) AND (NOT M1 OR NOT M2) AND (NOT I1 OR NOT I3) AND
(NOT F2 OR NOT F3) AND (NOT M1 OR NOT I1) AND (NOT M2 OR NOT F2) AND (NOT I3 OR NOT F3)=1
then writeln(M1:2, M2:2, I1:2, I3:2, F2:2, F3:2)
end
end
end
end
end
End.
На экране будут напечатаны два набора значений логических переменных, при которых выполняются все логические условия:
1 0 0 1 1 0
0 1 1 0 0 1
В первом варианте истинны М1, I3, F2, то есть первый урок - математика, второй — физика, третий — информатика.
Во втором варианте истинны логические переменные М2, I1, F3, то есть первый урок — информатика, второй — математика, третий — физика.