Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kurs_toi1.docx
Скачиваний:
89
Добавлен:
02.05.2015
Размер:
753.33 Кб
Скачать

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, то есть первый урок — информатика, второй — матема­тика, третий — физика.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]