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

Вычислить выражение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка "чтение памяти невозможно" во время перехода к строке с функцией http://www.cyberforum.ru/cpp-beginners/thread1246413.html
При запуске программы вижу ошибку "чтение памяти невозможно" во время перехода к строке с функцией ext() Не могу понять в чем дело, может просто с указателями неправильно работаю или еще что?! ...
C++ Зерно генерации для нормального распределения Seed для normal distribution Влияет ли на генерируемую последовательномть с помощью std::normal_distribution зерно генерации srand(seed)? http://www.cyberforum.ru/cpp-beginners/thread1246412.html
Нужен сайт с материалами, лекциями и примерами решения задач C++
Здравствуйте, подскажите пожалуйста сайт, портал или что то подобное для изучения программирования на С++. Хотелось бы иметь место откуда можно почитать и посмотреть примеры... Поделитесь если не...
C++ Статическая и динамическая линковка - в чем преимущество каждой?
Помогите разобраться со статической и динамической линковкой. Я правильно понял, что статическая линковка упаковывает все либы в екзешник и потом его можно запустить на любой машине без этих либ, а с...
C++ Анализ данных с COM порта. Есть ли способ чтения файла в процессе его изменения? http://www.cyberforum.ru/cpp-beginners/thread1246326.html
Здравствуйте форумчане, передо мной стала задача, которую я никак не могу осилить, а именно анализ данных с COM порта. Принимать данные с COM порта я научился. Не судите строго идея может быть...
C++ Как на основе того что лежит в переменной сделать переменную в объекте? 1. Ну есть у нас переменная string arg1 = "MyVar"; string arg2 = "propereties"; и потом можно было обратится через объект cout << object.MyVar; //отобразит propereties 2. Но может такое быть... подробнее

Показать сообщение отдельно
Alexandr_1982
177 / 74 / 17
Регистрация: 04.11.2013
Сообщений: 385
Записей в блоге: 4
24.08.2014, 10:59
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
#include <stdio.h>
#include <stdlib.h>
 
int pow1(int a, int b){ if(b ==1) return a; return a*pow1(a, --b);}
int main(){
 
char* x="(((5^2-4^2)^2-3^2)^2-2^2)^2-1^2)^2/0";
int i; int state; int op1, op2;
for(i=0, state = 0; x[i]!='/0'; i++)
{
switch(x[i])
{
case '(': switch(state){ case 0: state =1; break; case 1: state=2; break; case 2: state=3; break; default: break;} break;
case ')': switch(state){ case 6: op2-=op1; printf("op2:%d\n", op2); state=7; break; case 9: state= 2; break; default: break;} break;
case '^': switch(state){ case 4: state=5; break; case 7: op1= op2; state= 9; break; case 8: state= 9; break; default: break;} break;
case '-': switch(state){ case 6: op2=op1; state=7; break; default:break;} break;
case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
switch(state){ case 1: case 2: case 3: op1 = x[i]-'0'; state=4; break;
case 9: case 5: op1= pow1(op1, x[i]-'0'); printf("%d\n", op1); state =6;
case 7: op1 = x[i]-'0'; state=8; break; default: break;}
break;
default: break;}
}
return 0;
}
Подобные задачи делаются рекурсией, как правильно заметили выше.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru