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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 17:33   #1
and-silaev
Новичок
Джуниор
 
Регистрация: 06.01.2011
Сообщений: 2
Вопрос Программа выводящая таблицу истинности

Здравствуйте! Вообщем получил задание на зачет. Сделал по своему, преподователю не понравилось. Другово подхода к решению задания я не знаю(в программировании практически 0), а зачет получать надо.

Язык С(Желательно)\С++
Все математические операции основываются на "Двоичной логике", то есть у нас есть 1-истина, 0-ложь(тоесть значение иксов и игриков могут быть либо 1 либо 0). Математические операции не много другие: 1+1=1, ну а остальное все как в математике.

Задание: Написать программу, выводящую таблицу истинности для следующей логической функции
y=((x1*x2)+(x1*x2))*(x3+x1*x2), где x1,x2 - инверсия
соответственно x1,x2. (Тоесть при значении х1=1 => х1=0, х1=0 => х1=1).



Преподователь дал потом "подсказку" (используя "это" нужно реализовать программу):

for(x1=0; x1<2; x1++)
{
for(x2=0; x2<2; x2++)
{
for(x3=0; x3<2; x3++)

- В таком виде перебираются значения иксов. И нужно с помощью
цикла реализовать вывод "у" соответствующего значению логической функции.

Вообщем на экране в результате должно выводитсь что-то в этом роде (Порядок строк не важет лишь бы соответствовали значения в строках):

х1 х2 х3 у
0 0 0 0
0 0 1 0
0 1 0 0
1 0 0 0
0 1 1 1
1 1 0 0
1 0 1 1
1 1 1 0

Ну вот вроде все. Объяснил как смог. Буду очень благодарен за Вашу помощь. Просто обратиться больше не куда.

Последний раз редактировалось and-silaev; 06.01.2011 в 17:38.
and-silaev вне форума Ответить с цитированием
Старый 06.01.2011, 17:49   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

У тебя же почти готовая прога есть. Оставалось вставить в цикл функцию и добавить вывод...

Код:
#include <stdio.h>
void main() {
int x1,x2,x3,y;
printf("x1 x2 x3 y\n");
for (x1=0; x1<2; ++x1)
for (x2=0; x2<2; ++x2)
for (x3=0; x3<2; x3++) 
{
y=(((!x1)&&x2) || (x1 && (!x2))) && (x3 || x1 && x2);
printf("%d  %d  %d  %d\n", x1, x2, x3, y);
}
}
Son Of Pain вне форума Ответить с цитированием
Старый 06.01.2011, 18:30   #3
and-silaev
Новичок
Джуниор
 
Регистрация: 06.01.2011
Сообщений: 2
По умолчанию

Спасибо от души. Просто я только верхушки синтаксиса Си знаю. И разбираться нет времени. Я просто не знал о существовании логических || && и !х1...... Из-за этого не знания у меня программа заняла гдето 50 строчек.... Препод. это сильно не понравилось...
and-silaev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
InjHdc – программа выводящая время в окне игры. mikityak Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 09.04.2013 00:26
программа, выводящая сообщения о нажатии клавиш мыши Pljus1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.11.2010 04:49
резидентная программа выводящая список запущенных процессо vaquero Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 02.06.2010 19:13
Программа, выводящая сама себя Gorychev Общие вопросы Delphi 45 31.01.2010 02:45