Tablica (Tabela) prawdy czterech zmiennych

0

Witam!
Mam zadanie w których muszę napisać funkcję czterech zmiennych, narysować do niej schemat bramek logicznych, zrobić tablicę prawdy oraz napisać program na realizację tej funkcji (chyba chodzi o program przedstawiający tablicę prawdy?)
Wszystko zrobiłem po za programem... kompletnie nie mam pojęcia jak to zrobić... nawet nie mogę wpaść na algorytm postępowania przy takiej tablicy... moja funkcja to x1+x2 *x3+x4 = Y
Gdyby ktoś wpadł na pomysł jak zrealizować ten program, wystarczy nawet dobry algorytm... Program nie musi być w pascalu, dowolny język, może w c++ będzie łatwiej to zrobić?

Z góry bardzo dziękuje za pomoc!

0

Przepraszam że post pod postem ale jeszcze konta nie założyłem. Chciałem tylko poprawić że funkcja to (x1+x2)*(x3+x4) (Liczny to indeksy)
Tablica prawdy dla odpowiednio takich zmiennych:
x1 x2 x3 x4 y

0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1

0

Jeśli funkcję masz przypisaną na sztywno to nie ma problemu.
1 - robisz sobie tablicę intów 5x16
2 - 4 pierwsze kolumny wypełniasz wg wzoru, który sam podałeś (od biedy może być naewt na sztywno)

tab: array [1..5 , 1..16] of integer =
((0,0,0,0,0),
 (0,0,0,1,0),
 (0,0,1,0,0),     
 (0,0,1,1,0),
 (0,1,0,0,0),
 (0,1,0,1,0),
 (0,1,1,0,0),
 (0,1,1,1,0),
 (1,0,0,0,0),
 (1,0,0,1,0),
 (1,0,1,0,0),
 (1,0,1,1,0),
 (1,1,0,0,0),
 (1,1,0,1,0),
 (1,1,1,0,0),
 (1,1,1,1,0));

(tak to chyba szło, dawno paskala nie używałem)

A ostatnią kolumnę wyliczasz ze wzoru

 if ((tab[1,i] + tab[2,i]) * (tab[3,i] + tab[4,i]) > 0) then
  tab[5,i] := 1
else
  tab[5,i] := 0;

Wyświetlenie wierszami to już nie problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1