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

Логический калькулятор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Правильно ли написана задача http://www.cyberforum.ru/cpp-beginners/thread1061515.html
здравствуйте помогите решить задачу на с++ я вроде решил но не пойму где ошибся. решение: #include <iostream> using namespace std; void main() { double S,C,X; int i,N,Z,F;
C++ Посчитать разность максимального и минимального чисел для данного подмножества Дано 5 чисел. Посчитать разность максимального и минимального чисел для данного подмножества. Результат вывести на экран http://www.cyberforum.ru/cpp-beginners/thread1061493.html
C++ Поиск трех ближайших точек к данной
Есть массив точек, заданных координатами х и y. Нужно найти три ближайшие точки к данной, чтобы данная точка была в треугольнике, вершинами которого являются искомые точки. Меня интересует самый быстрый алгоритм.
Определить, содержит ли текст (помимо букв) только одну цифру, числовое значение которой равно длине текста C++
привет. помогите решить задачу по с++. очень нужно. я ничего с ней не смог сделать. вот условие: В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст содержит (помимо букв) только одну цифру, причем ее числовое значение равно длине текста;
C++ Посоветуйте литературу или статьи по правильному составлению архитектуры кода программ http://www.cyberforum.ru/cpp-beginners/thread1061450.html
Здравствуйте программисты. Посоветуйте пожалуйста литературу или статьи по правильному составлению архитектуры кода программ. А то просто когда я начинал писать что-то более менее большое в один прекрасный момент я начал понимать что код получился очень запутанный и проще будет переписать ее заново чем исправить ошибки. Если кто знает прошу посоветовать литературу или какие нибудь статьи в...
C++ Применимы ли учебники по C к C++? Насколько различен их синтаксис? Всем привет. Дали в универе литературу к экзамену по языку C, а экзаменационные вопросы по языку С++. Применимы ли учебники по C к C++, у них синтаксис одинаковый? Буду благодарен за помощь. подробнее

Показать сообщение отдельно
Monsieurcharger
0 / 0 / 0
Регистрация: 16.12.2013
Сообщений: 2
01.01.2014, 20:40     Логический калькулятор
Написал калькулятор логических выражений, но не могу добавить функцию приоритета, со скобками все работает замечательно, но без них действия | и & имеют одинаковый приоритет, кто может помочь с написанием данной функции?

Добавлено через 1 минуту
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
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
string delete_spaces(string str)
{
string s="";
for (unsigned i=0; i<str.size(); ++i)
{
if (str[i]!=' ' && str[i]!='\t')
s+=str[i];
}
return s;
}
 
bool check(string str)
{
string s=delete_spaces(str);
 
if (s.size()==1 && s=="0")
return 0;
if (s.size()==1 && s=="1")
return 1;
if ((s.size()==2 && ((s[0]=='!')&&(s[1]=='0'))))
return 1;
if ((s.size()==2 && ((s[0]=='!')&&(s[1]=='1'))))
return 0;
int q=0;
bool det=false;
 
string s1, s2;
 
for (unsigned i=s.size()-1; i>=0; —i)
{
 
 
if (i==0 && (s[i]=='(') && q==1)
{
s.assign(s, 1, s.size()-2);
i=s.size()-1;
q=0;
}
if(i==0 && s[i]=='!' && q==0)
det=true;
if(det==true){
 
s.assign(s, 2, s.size()-3);
i=s.size()-2;
//return(!check(s1)&&!check(s2));
}
if (s[i]==')')
q+=1;
if (s[i]=='(')
q-=1;
 
if (q==0 && s[i]=='|')
{
s1.assign(s, 0, i);
s2.assign(s, i+1, s.size()-i-1);
 
if(s1.size()>2) return check(s1);
if(s2.size()>2) return check(s2);
 
if((s1[0]=='!')&&(s2[0]=='!'))
{if(s1.size()>2) return check(s1);
if(s2.size()>2) return check(s2);
if(s1[1]=='1')
s1="0";
else
s1="1";
if(s2[1]=='1')
s2="0";
else
s2="1";
}
 
if(s1[0]=='!')
{if(s1.size()>2) return check(s1);
if(s1[1]=='1')
s1="0";
else
s1="1";
}
 
if(s2[0]=='!')
{
if(s2.size()>2) return check(s2);
if(s2[1]=='1')
s2="0";
else
s2="1";
}
if(det==true) return(!(check(s1)||check(s2)));
return check(s1)||check(s2);
 
}
if (q==0 && s[i]=='&')
{
s1.assign(s, 0, i);
s2.assign(s, i+1, s.size()-i-1);
 
if((s1[0]=='!')&&(s2[0]=='!'))
{if(s1.size()>2) return check(s1);
if(s2.size()>2) return check(s2);
if(s1[1]=='1')
s1="0";
else
s1="1";
if(s2[1]=='1')
s2="0";
else
s2="1";
}
 
if(s1[0]=='!')
{if(s1.size()>2) return check(s1);
if(s1[1]=='1')
s1="0";
else
s1="1";
}
 
if(s2[0]=='!')
{
if(s2.size()>2) return check(s2);
if(s2[1]=='1')
s2="0";
else
s2="1";
}
if(det==true) return(!(check(s1)&&check(s2)));
return check(s1)&&check(s2);
}
/*if (q==0 && s[i]=='!')
{
if(s[i+1]==1)
{ 
s[i]=' ';
s[i+1]=0;
}
else {s[i+1]==1; s[i]=' ';}
s=delete_spaces(str);
}*/
}
 
}
 
int main()
{
int qwe=-1;
string s;
getline(cin,s);
qwe=check(s);
cout«check(s);
scanf("%d",qwe);
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru