Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.79
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
#1

Таблица истинности - C++

23.04.2012, 22:54. Просмотров 5234. Ответов 9
Метки нет (Все метки)

Доброго времени суток. Хотел поинтересоваться, пытался ли кто нибудь реализовать таблицу истинности? Последнее время стал задумываться о её реализации. И как это примерно будет выглядеть?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cactus09
Чайник
 Аватар для cactus09
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
23.04.2012, 23:21     Таблица истинности #2
Немного не догоняю чего ты хочещ сделать, что такое таблица истиности я знаю да и тем более. Но чего ты конкретно хочещ, сделать программу в которой както были эти таблицы?
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
23.04.2012, 23:24  [ТС]     Таблица истинности #3
Ну пользователь вводит функцию, по которой строится таблица истинности, и выводится в консоль.
cactus09
Чайник
 Аватар для cactus09
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
24.04.2012, 00:22     Таблица истинности #4
Набросал заготовок, пока без функции, но может пригодится
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>  
 
using namespace std;
 
void BIN (int a){
 
char binary[4]; //Массив в котором символоми записано число в BIN
 
for(int i=3;i>=0;i--){         //Заполняем массив          
 if(a%2==0){binary[i]='0';}
 else{binary[i]='1';}
 a=a/2;
 }
 
for(int i=0;i<4;i++){            //Печатаем массив
 cout<<binary[i]<<"   ";}
 cout<<endl;
 }
 
 
int main()  // Посути программа просто печатает числа от 0 до 2*2*2*2 в Bin(двуричном) виде
{  
  char mass[4];
  cout<<"x^4 x^2 x^1 x^0 y"<<endl;
  
  for(int i=0; i<2*2*2*2;i++){
  BIN(i);
  }
  
  system("PAUSE");  
  return 0;
}
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
24.04.2012, 00:46  [ТС]     Таблица истинности #5
cactus09, спасибо) Со временем думаю что нибудь придумаем
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
24.04.2012, 01:47     Таблица истинности #6
Цитата Сообщение от b0n4b Посмотреть сообщение
И как это примерно будет выглядеть?
Примерно так, вообще начинать надо с количества разрядов и логической функции. Примечание: 2 последние функции это штрих Шеффера и стрелка Пирса соответственно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main (){
    
    bool x0 = 0, x1 = 0;
    unsigned int z = 4;
    
    
    std::cout << "x1" << ' ' << "x0" << "  |x1 || x0|";
    std::cout << " |x1 && x0|" << " |x1 | x0 |" << " |x1 \\|/ x0|\n";
    std::cout << "---------------------------------------------------\n";
    while ( z-- ) {
        std::cout << x1 << " | " << x0 << "  |   " << (x1 || x0);
        std::cout << "    |" << " |   " << (x1 && x0) << "    |";
        std::cout << " |   " << !(x1 && x0 ) << "    |" << " |   ";
        std::cout << !(x1 || x0 ) << "     |\n";
        x1 = ( x0 ) ? !x1 : x1;
        x0 = !x0;        
    }
    std::cout << "---------------------------------------------------\n";
    
    return 0;
}
Volkov07
3 / 3 / 0
Регистрация: 06.01.2016
Сообщений: 8
22.03.2016, 00:37     Таблица истинности #7
На 4 переменных.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
using namespace std;
 
int main() {
 
    bool x0 = 0, x1 = 0, x2 = 0, x3 = 0;
    unsigned int z = 16;
 
    cout << "  x0 " << " x1 " << " x2 " << " x3 " << "      OR ";
    cout << "   AND " << "  NoAND " << "  NoOR\n";
    cout << "-----------------------------------------------\n";
    while (z--) {
        cout << "| " << x0 << " | " << x1 << " | " << x2 << " | " << x3 << " | -> | " << (x0 || x1 || x2 || x3);
        cout << " | " << " | " << (x0 && x1 && x2 && x3) << " | ";
        cout << " | " << !(x0 && x1 && x2 && x3) << " | " << " | ";
        cout << !(x0 || x1 || x2 || x3) << " |\n";
        {
            if (z > 8) x0 = 0;
            else x0 = 1;
        }
        {
            if (z > 12 || (z < 9 && z > 4)) x1 = 0;
            else x1 = 1;
        }
        {
            if (z > 14 || (z < 13 && z > 10) || (z < 9 && z > 6) || (z < 5 && z > 2)) x2 = 0;
            else x2 = 1;
        }
        {
            if (z % 2 == 0) x3 = 0;
            else x3 = 1;
        }
    }
    cout << "-----------------------------------------------\n";
    system("pause");
    return 0;
}
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
3365 / 1687 / 448
Регистрация: 18.10.2014
Сообщений: 3,095
22.03.2016, 03:15     Таблица истинности #8
Цитата Сообщение от b0n4b Посмотреть сообщение
Ну пользователь вводит функцию,
Это каким же это образом "пользователь вводит функцию"???
skipaq
22.03.2016, 07:10
  #9

Не по теме:

TheCalligrapher, мне кажется его уже дааавно не волнует это, ох уж эти археологи

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2016, 22:48     Таблица истинности
Еще ссылки по теме:

Таблица истинности и проверка выполнимости функции C++
Функция не выводит результат на консоль (таблица истинности) C++
Таблица истинности по формуле C++
Таблица истинности на си C++
Таблица истинности для N переменных С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Aecttann
29.03.2016, 22:48     Таблица истинности
  #10

Не по теме:

та да, археология процветает
и открою секрет: есть онлайн-сервисы, решающие эти задачи

Yandex
Объявления
29.03.2016, 22:48     Таблица истинности
Ответ Создать тему
Опции темы

Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru