Таблица истинности - C (СИ)
Формулировка задачи:
Нужно написать программу для построения таблицы истинности функции. F ≡ ((A ↔ B) → C)∧((¬B∧A) → D)
В таблице должны содержаться след. Столбцы: • A,B,C,D
• A,B,C,D
• E :≡ A ↔ B
• G :≡ (A ↔ B) → C ≡ E → C
• H :≡ ¬B∧A
• I :≡ (¬B∧A) → D ≡ H → D
• F ≡ G∧I (общая формула)
Нельзя использовать "If", "Switch" и "?:" операторы.
Примерно таблица должна выглядеть след. Образом:
| A | B | C | D | E = A <-> B | G = E -> C | H = (NOT B) AND A | I = H->D | F |
+---+---+---+---+------------------+----------------+-------------------------------+-------------+---+
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
.
.
.
Вот мой код программы. Но почему то рассчитывается не вся таблица, а только первая строчка. Как сделать, чтобы был рассвет для всех 16 строчек?
#include<stdio.h> int A,B,C,D; int E,F,G,H,I; int j; int main(void) { printf(" | A | B | C | D |E = A <-> B | G = E -> C | H = (NOT B) AND A | I = H -> D | F |\ n" ); printf("+---+--+--+---+--------------+-------------+-----------------------+-----------------+\ n" ); for (int j =0; j < 16; j++); { D = ( j/1 ) %2; C = ( j/2 ) %2; B = ( j/4 ) %2; A = ( j/8 ) %2; E = A == B; G = (!E)|C; H = (!B)&(A); I = (!H)|D; F = G&I; printf("| %d | %d | %d | %d | %d | %d | %d | %d | %d |\n", A,B,C,D,E,F,G,H,I,F); } return 0; }
Решение задачи: «Таблица истинности»
textual
Листинг программы
for (int j =0; j < 16; j++);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д