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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Получить определенное число из txt файла http://www.cyberforum.ru/cpp-beginners/thread1079657.html
После отсортировки появляется файл :) Ну, так вот, мне нужно реализовать как-нибудь, чтобы он выдал мне определенное число из файла(этого же) :) Надеюсь на вашу помощь. Искал в просторах интернета - ничего не нашел.
C++ Тело на с++, интерфейс на с#. Как сляпать это добро? Ну, собственно, хочу сделать программу на с++, привязав к ней интерфейс из с#. Как осуществить привязку? Поподробнее, плиз. На спасибо не скуплюсь:) http://www.cyberforum.ru/cpp-beginners/thread1079638.html
C++ Возможно ли преобразовать в число, строку вида:
Если дана строка, например, (1+4+5+7), она может быть преобразована в число?
C++ Найти сумму чисел в диапазоне [a;b], которые при возведении в квадрат дают число с последней цифрой 6
Вводятся числа a и b. Найти сумму таких чисел в диапазоне , которые при возведении в квадрат дают число с последней цифрой 6 Помогите исправить ошибку! #include <iostream> using namespace std; int main () {
C++ Вычислить и вывести в виде таблицы значения функции, заданной рядом Тейлора http://www.cyberforum.ru/cpp-beginners/thread1079595.html
Добрый день, прошу помощи, ибо у самого курс данного языка был давно и всего не вспомню. Вычислить и вывести на экран в виде таблицы значения функции заданной с помощью ряда Тейлора на интервале от Хнач до Хкон с шагом dx c точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
C++ Ошибка в коде Форумчане, подскажите где ошибка: #include<conio.h> #include<iostream> #include<cmath> #include<cctype> #include<cstring> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); подробнее

Показать сообщение отдельно
ruTwit
6 / 6 / 1
Регистрация: 04.10.2013
Сообщений: 92
23.01.2014, 17:46     Таблица истинности
Нужно написать программу, которая строит таблицу истинности по любому заданному логическому выражению. Например, дано B&(B|A). Таблица
A B F()
0 0 0
0 1 1
1 0 0
1 1 1
В общем у меня строится все, кроме F() - итоговые значения. Знаю, что переменные дублируются, нужно подправить местами, но суть не в этом. Помогите достроить таблицу, а именно F(). Если, что готов заплатить.

Добавлено через 7 минут
Собственно код
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <string>
#include <stdlib.h>
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    string stroka;
    int n=0, m1=0, i, otkr=0, zakr=0, j, alf=0, p, logop=0, kolc=0, kollog=0, kolalf=0, g, p1=0;
    int ret, mo, number;
    char B[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
    char D[5]={'&','+','-','!','`'};
    bool a=false, b=false, d=false, f=true, t=false, h=false;
 
    int table[1024][10];
    char buk[50];
    char bukva[10];
    int itog[10];
 
    cout<<"Введите выражение"<<endl; getline(cin, stroka);
    m1=stroka.length();
    n=m1;
    char *c=new char [n];
    int *num1=new int[n];
    for (i=0; i<m1; i++)
    { 
        c[i]=stroka[i];
 
        if(c[i]=='('||c[i]==')')num1[i]=0; 
        for(j=0;j<=4;j++)
            if(c[i]==D[j])num1[i]=2;
        for(g=0;g<=25;g++)
            if(c[i]==B[g])num1[i]=1;
    }
    /*
    Блок ошибок:
    проверка количества скобок, 
    проверка правильности логических операций,
    проверка правильности написания алфавита
    проверка повторений
    */
 
    for (i=0; i<m1; i++)
    { 
        //проверка количества и правильности скобок
        if('('==c[i])otkr++;
        if(')'==c[i])zakr++;
        if(((c[i]=='(' && c[i+1]==')'))||((c[i]==')')&&(c[i+1]=='(')))
            kolc++;
    }
    if(otkr==zakr)a=true;
    //проверка правильности написания алфавита
    for(j=0;j<=25;j++)
    {
        for(i=0;i<m1;i++)
        {
            if(B[j]==c[i])alf++;
            //проверка повторений всех символов
            if(num1[i]==num1[i+1])f=false;
        }
    }
    //проверка правильности логических операций
    for(j=0;j<=4;j++)
        for(i=0;i<m1;i++)
            if(D[j]==c[i])logop++;
 
    if((a==true)&&((otkr+zakr+alf+logop)==m1)&&(kolc==0)&&(f==true))
    {
        cout<<endl<<"Выражение введено верно"<<endl;
        t=true;
        
    }
    else
    {
        cout<<endl<<"Выражение введено неверно"<<endl;
        t=false;
    }
    
    //блок решения
    if(t==true)
    {
        p1=0;
        j=0;
        p=0;
        //нахождение всех символов из алфавита
        for(i=0;i<m1;i++)
        {
            for(j=0;j<=25;j++)
                if(c[i]==B[j])
                {
                            buk[p1]=B[j];
                            p1++;
                }
        }
        //нахождение раличных символов из алфавита
        
        number=p1;
        ret=0;
        mo=0;
        //сортировка по возрастанию
        char buf;
    for(i=0;i<=p1-2;i++)
     {
      for(j=i+1;j<=p1-1;j++)
     {
        if(buk[i]>buk[j])
         { buf=buk[j];
           buk[j]=buk[i];
           buk[i]=buf;
         }
      }
    }
    //
    
    for(i=0;i<p1;i++)
    {
         if((buk[i]!=buk[i+1])||((buk[i]!=buk[i+1])&&(p1==i+1)))mo++;
    }
    n=mo;
    mo=0;
    for(i=0;i<p1;i++)
    {
         if((buk[i]!=buk[i+1])||((buk[i]!=buk[i+1])&&(p1==i+1))){bukva[mo]=buk[i];mo++;}
    }
 
 
    for(i=0;i<mo;i++)
        cout<<bukva[i]<<" ";
    cout<<endl;
    //delete []c;
    delete []num1;
 
    int m=1;
    int k=1,k1=1,i,j,N=2,t,p=0;
    m=1<<mo;
    for(i=0;i<m;i++)
        for(j=0;j<mo;j++)
            table[i][j]=0;
 
    for(int i=mo-1;i>=0;i--){
        for(int j=pow(2.0,mo-i-1);j<m;j+=k){
            for(int t=0;t<k;t++)
            {
                table[j][i]=1;
                j++;
            }
            
        }
    k*=2;
    }
 
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
            cout<<table[i][j]<<" ";
        cout<<endl;
    }
    cout<<endl;
    //итог
    char symbol[7]="1&1";
    int bunt=int(1&0);
    //int but[250];
    //for(i=0;i<m1;i++)
    //but[i]=atoi(&symbol[0]);
 
    cout<<int(symbol);
/*
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            
        if(c[)
        }
        cout<<endl;
    }
    
 
    for(i=0;i<m1;i++)
    {
        for(j=0;j<=25;j++)
 
    }
    */
    
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru