Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

логическое уравнение или как сократить д.н.ф

12K
19 ноября 2005 года
AlenaR
7 / / 19.11.2005
нужно написать программу которая по таблице истинности составляет логическое уравнение с последующей его минимизацией.Составить уравнение получилось, а вот как его минимизировать (упростить) не знаю. Пишу на Борланд С++
кто-нибудь может поделиться исходником для сокращения логического уравнения, буду очень благодарна.
1
20 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by AlenaR
нужно написать программу которая по таблице истинности составляет логическое уравнение с последующей его минимизацией.Составить уравнение получилось, а вот как его минимизировать (упростить) не знаю. Пишу на Борланд С++
кто-нибудь может поделиться исходником для сокращения логического уравнения, буду очень благодарна.


Как правило лучше привести свое решение, конкретизировав что не получается. Если нужен готовый исходник - плиз - в данной теме.
Тогда лучше конкретизировать размер "очень благодарна" :)
Переезжаем. Пристегнитесь.

2.2K
20 ноября 2005 года
123tk
57 / / 28.06.2003
Цитата:
Originally posted by AlenaR
нужно написать программу которая по таблице истинности составляет логическое уравнение с последующей его минимизацией.Составить уравнение получилось, а вот как его минимизировать (упростить) не знаю. Пишу на Борланд С++
кто-нибудь может поделиться исходником для сокращения логического уравнения, буду очень благодарна.

Есть метод карт Карно. В инете можно что-то поискать, но метод очень хорошо и доступно описан в книге Точчи, Уидмер - Цифровые системы.

12K
20 ноября 2005 года
AlenaR
7 / / 19.11.2005
Цитата:
Originally posted by kot_
Как правило лучше привести свое решение, конкретизировав что не получается. Если нужен готовый исходник - плиз - в данной теме.
Тогда лучше конкретизировать размер "очень благодарна" :)
Переезжаем. Пристегнитесь.



Получилось у меня вот так, вроде все работает:

#include <stdio.h>;
#include <conio.h>;
#include <iostream.h>;
void oshibka(void);
void main ()
{
clrscr();
typedef int bool;
bool x[10], y[10],y1[10],z[10];
int i,razm;
//oshibka();
cout<<"Введите количество строк таблицы истинности"<<endl;
cin>>razm;
for (i=1;i<=razm;i++)
{
label:
cout<<"Введите"<<i<<"х-массива_"<<endl;
cin>>x;
if((x!=0) && (x!=1))
{oshibka();
goto label;}
cout<<"Введите"<<i<<"у-массива_"<<endl;
cin>>y;
cout<<"Введите"<<i<<"элемент y1-массива_"<<endl;
cin>>y1;
cout<<"Введите"<<i<<"элемент z-массива"<<endl;
cin>>z;
}
int k=0;
for (i=1;i<=razm;i++)
if (z==1){
if(k==1)cout<<"+";
if (x!=1) cout<<"!x";else cout<<"x";
if(y!=1) cout<<"!y"; else cout<<"y";
if(y1!=1)cout<<"!y1";else cout<<"y1";
k=1;
}
cout<<"=z";
getch();
}

void oshibka(void)
{cout<<"Вы должны ввести 0 или 1"<<endl;}

Работает, но вот как сократить получившуюся формулу?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог