Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 17:13   #1
Elimay25
Пользователь
 
Регистрация: 29.02.2012
Сообщений: 14
По умолчанию Написать программу для построения таблицы истиности логической функции.

Логическая функция должна быть реализована в виде функции,принимающей в качестве параметров значения Х1 – Х4. Нулевые значения соответствуют логическому значению “ЛОЖЬ”, а не нулевые—“ИСТИНА”. Таблица истинности должна быть выведена в следующем ввиде. x1,x2,x3,x4.F.

Вот лабораторная готовая тока надо сделать чтоб вверху было еще написано x1,x2,x3,x4 и F соответственно. И если можете помочь описание сделать.

Лаба.

program lab_4;
var
x1,x2,x3,x4:integer;
f:array[1..10] of boolean;
i:integer;

function p1(q1,q2:boolean):boolean;{p1-Штрих Шеффера}
begin
p1:=not (q1 and q2);{p1-это q1|q2}
end;
function p2(q1,q2:boolean):boolean;{p2-Плюсик в круге}
begin
p2:=q1 and not q2 or q2 and not q1;{}
end;
function p3(q1,q2:boolean):boolean;{p3-Эквивалентность}
begin
p3:=not q1 and not q2 or q2 and q1;{}
end;

{ Производим колькуляцию, создаем матрицу.}
procedure CalculateBools;
begin
f[1]:=x1=1;
f[2]:=x2=1;
f[3]:=x3=1;
f[4]:=x4=1;
f[5]:=p1(f[3],f[1]);
f[6]:=p2(f[5],f[2]);
f[7]:=p1(f[4],f[2]);
f[8]:=p3(f[3],f[7]);
f[9]:=p2(f[6],f[8]);
f[10]:=p2(f[9],f[2]);


end;

{-Основная программа-}
begin

for x1:=0 to 1 do
for x2:=0 to 1 do
for x3:=0 to 1 do
for x4:=0 to 1 do
begin
CalculateBools;
if f[10] then i:=1 else i:=0;
writeln(x1,' ',x2,' ',x3,' ',x4,' ',i);
end;
readln;
end.
Elimay25 вне форума Ответить с цитированием
Старый 02.03.2012, 08:34   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Код:
program lab_4;
uses crt;
var{описание переменных }
x1,x2,x3,x4:integer;{ integer - целое число }
f:array[1..10] of boolean;{array - массив boolean - логический тип   }
i:integer;{ integer - целое число }
{}
function p1(q1,q2:boolean):boolean;{p1-Штрих Шеффера}{ функция  function p1(q1,q2:boolean):boolean;}
begin{начинаем }
p1:=not (q1 and q2);{p1-это q1|q2}{присваеваем переменной "p1" значение "not (q1 and q2)"}
end;{заканчиваем }
function p2(q1,q2:boolean):boolean;{p2-Плюсик в круге}{ функция  function p2(q1,q2:boolean):boolean;}
begin{начинаем }
p2:=q1 and not q2 or q2 and not q1;{}{присваеваем переменной "p2" значение "q1 and not q2 or q2 and not q1"}
end;{заканчиваем }
function p3(q1,q2:boolean):boolean;{p3-Эквивалентность}{ функция  function p3(q1,q2:boolean):boolean;}
begin{начинаем }
p3:=not q1 and not q2 or q2 and q1;{}{присваеваем переменной "p3" значение "not q1 and not q2 or q2 and q1"}
end;{заканчиваем }
{}
{ Производим колькуляцию, создаем матрицу.}{}
procedure CalculateBools;{ процедура  procedure CalculateBools;}
begin{начинаем }
f[1]:=x1=1;{присваеваем переменной "f[1]" значение "x1=1"}
f[2]:=x2=1;{присваеваем переменной "f[2]" значение "x2=1"}
f[3]:=x3=1;{присваеваем переменной "f[3]" значение "x3=1"}
f[4]:=x4=1;{присваеваем переменной "f[4]" значение "x4=1"}
f[5]:=p1(f[3],f[1]);{присваеваем переменной "f[5]" значение "p1(f[3],f[1])"}
f[6]:=p2(f[5],f[2]);{присваеваем переменной "f[6]" значение "p2(f[5],f[2])"}
f[7]:=p1(f[4],f[2]);{присваеваем переменной "f[7]" значение "p1(f[4],f[2])"}
f[8]:=p3(f[3],f[7]);{присваеваем переменной "f[8]" значение "p3(f[3],f[7])"}
f[9]:=p2(f[6],f[8]);{присваеваем переменной "f[9]" значение "p2(f[6],f[8])"}
f[10]:=p2(f[9],f[2]);{присваеваем переменной "f[10]" значение "p2(f[9],f[2])"}
{}
{}
end;{заканчиваем }
{}
{-Основная программа-}{}
begin{начинаем }
writeln('x1',' ','x2',' ','x3',' ','x4',' ',' =F');{выводим сообщение  'x1'}
for x1:=0 to 1 do{цикл от  x1:=0  до  1 }
for x2:=0 to 1 do{цикл от  x2:=0  до  1 }
for x3:=0 to 1 do{цикл от  x3:=0  до  1 }
for x4:=0 to 1 do{цикл от  x4:=0  до  1 }
begin{начинаем }
CalculateBools;{CalculateBools;}
if f[10] then i:=1 else i:=0;{иначе}
writeln(x1,'  ',x2,'  ',x3,'  ',x4,'    ',i);{выводим сообщение  x1}
end;{заканчиваем }
readln;{ждем ввода  }
end.{заканчиваем }
Вложения
Тип файла: zip перевод паскаля.zip (311.6 Кб, 22 просмотров)
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 02.03.2012 в 09:17.
denisbrain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
требуется написать программу построения бинарного дерева. nosse Помощь студентам 0 26.04.2011 19:00
Написать программу печати таблицы значений функции.... Delli Помощь студентам 2 09.12.2010 10:01
Нужно Написать программу для вычисления функции Лена Самохина Microsoft Office Word 0 02.12.2010 02:40
Разработать алгоритм и написать программу построения матрицы! Worldboss777 Помощь студентам 1 26.05.2010 11:58
Помогите, пожалуйста, дописать программу на C++ (построение эквивалентной логической функции) Anastasiya209 Помощь студентам 0 07.06.2009 23:58