02.02.2022

Как решить логическое уравнение (программа на языке Паскаль)

 Как решить логическое уравнение (программа на языке Паскаль)

Мышление

Пусть дано логическое уравнение:

Найдем все его различные решения. 

Уравнение зависит от четырех логических переменных: 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 возможных.

Как решить разобранным способом такое уравнение?


логическое уравнение

Напишите программу в комментариях. Сколько решений получилось?



2 комментария:

  1. 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 решений

    ОтветитьУдалить