Как решить логическое уравнение (программа на языке Паскаль)
Пусть дано логическое уравнение:
Найдем все его различные решения.Уравнение зависит от четырех логических переменных: A, B, C, D. Необходимо найти все возможные значения переменных, при которых выражение = 1 (истина)
Перебрать все возможные комбинации переменных можно конструкцией вложенных циклов, счетчиком каждого из которых будет выступать логическая переменная.
Заметим, что выражение содержит знаки логических операций
- \/ - ИЛИ (or),
- /\ - И (and),
- черта над переменной - инверсия (отрицание, not).
Для логических переменных будем использовать логический тип данных boolean (значения false и true).
Программа решения на языке Паскаль
var a,b,c,d,f:boolean;
begin
for a:=false to true do
for b:=false to true do
for c:=false to true do
for d:=false to true do
begin
f:=(a) or (b) and (c) or (d) and (not (c));
writeln(a,b,c,d,' ',f);
end;
end.
После запуска программы увидим таблицу истинности: значения переменных a, b, c, d и значение выражения f; в ответ нужно взять только те строки, где значение выражения f = true (истина)
Таких строк 12 из 16 возможных.
var z,x,y,f:boolean;
ОтветитьУдалитьbegin
for z:=false to true do
for x:=false to true do
for y:=false to true do
begin
f:=(not(z)) and (x) or (x) and (y);
writeln(z,' ',x,' ',y,' ',f);
end;
end.
5 решений
Верно!
Удалить