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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2017, 17:30   #1
yuliya.al18
Пользователь
 
Регистрация: 01.03.2016
Сообщений: 22
По умолчанию построить таблицу истинности,используя 0 и 1

построить таблицу истинности,используя 0 и 1
Изображения
Тип файла: jpg Безымянный.jpg (11.6 Кб, 128 просмотров)
yuliya.al18 вне форума Ответить с цитированием
Старый 17.02.2017, 10:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а что не получается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.02.2017, 11:22   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,534
По умолчанию

Чтобы не затруднять голову (пусть комп думает, он железный), можно накидать простенькую прожку :
Код:
const D07 : array [0..7] of byte = (0,1,3,2,4,5,7,6) ;

var
  Form1: TForm1  ;
  x,y,z,t1,t2,t3,t4,t5,t6,R: Boolean ;
implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
var i,j: integer ;

function impli (arg1,arg2: Boolean) : Boolean ;
Begin
   impli := not arg1 or arg2
end ;

function BtoS (arg: Boolean) : string ;
Begin
   if arg then  BtoS := ' 1' else BtoS := ' 0'
end ;

Begin
  for i := 0 to 7 do
  begin
    j := D07[i] ;
    x := (j and 4) > 0 ;
    y := (j and 2) > 0 ;
    z := (j and 1) > 0 ;
    t1 := x or y ;
    t2 := x or z ;
    t3 := impli(t1,t2) ;
    t4 := impli(y,z) ;
    t5 := not(x and z) ;
    t6 := impli(t3,t4) ;
    r := t5 = t6 ;
    Memo1.Lines.Add( BtoS(x) + BtoS(y) +  BtoS(z) + '  /' +
    BtoS(t1) + BtoS(t2) + BtoS(t3) + BtoS(t4) + BtoS(t5) +
    BtoS(t6) + ' = ' + BtoS(r))
  end ;

end ;
Имеем результат :
0 0 0 / 0 0 1 1 1 1 = 1
0 0 1 / 0 1 1 1 1 1 = 1
0 1 1 / 1 1 1 1 1 1 = 1
0 1 0 / 1 0 0 0 1 1 = 1
1 0 0 / 1 1 1 1 1 1 = 1
1 0 1 / 1 1 1 1 0 1 = 0
1 1 1 / 1 1 1 1 0 1 = 0
1 1 0 / 1 1 1 0 1 0 = 0

Вот вам и таблица истинности :
xy: | 00 01 11 10
----------------------
z: 0 |1 1 1 1
... 1 | 1 0 0 0

Т.е. сведется к банальному : результат = not x or (not y and not z)
Мож ошибся в преобразованиях, лень проверять.
"Задачи определены, цели ясны - за работу, товарищи !" © Н.С.Хрущёв


И - тишина...

Последний раз редактировалось digitalis; 18.02.2017 в 10:40.
digitalis вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
построить таблицу истинности yuliya.al18 Microsoft Office Excel 0 16.02.2017 08:41
Логический калькулятор, как построить таблицу истинности? Алексей_2012 Общие вопросы C/C++ 5 29.03.2015 11:20
Составьте таблицу истинности Andrewwwww Помощь студентам 3 27.04.2013 21:08
Используя for вывести таблицу истинности на языке Си Smart92 Помощь студентам 1 30.05.2011 17:48
Программа выводящая таблицу истинности and-silaev Помощь студентам 2 06.01.2011 18:30