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

Вычисление текстовой формулы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все натуральные числа от 1 до n, суммы квадратов цифр которых равна самому числу http://www.cyberforum.ru/cpp-beginners/thread693960.html
Найти все натуральные числа от 1 до n, сумма квадратов цифр которых равна самому числу Помогите пожалуйста,или проверьте) #include <iostream> #include <conio.h> #include <math.h> using namespace std; int sum(int c); {int s=0; while c>=1 do s=s+sqr(c fmod 10);
C++ Dev-C++ нашёл ошибку и не компилит( Здравствуйте. Я пишу всем известную игру Х/О. И я застрял в начале пути из-за того что не могу оприделить ошибку которую мне выдяёт компилятор Dev-C++, конечно легче скачать с интернета чьюто работу и здать, но так ни знаний ни опыта программирования не прибавится. Буду признателен если ктонибудь подскажет в чём тут проблема. P.S если соображу раньше напишу)). #include <iostream> #include... http://www.cyberforum.ru/cpp-beginners/thread693956.html
C++ Не могу создать массив из слов
У меня есть путь к файлу который я задаю с консольки, мне надо его преобразовать в обратный типо: ( C:\PP\x.com в x.com\pp\c: ) через strtok я его разбил на под части а вот как , эти части записать в массив слов чтоб сделать реверс я не знаю( #include <stdio.h> #include <string.h> #include <conio.h> #include <fstream> using namespace std; int main(int argc, char * argv)
Переписать текстовый файл удалив строчку в которой стоит знак "?" C++
Имеется предварительно созданный текстовый файл. Удалить из него строку, в которой стоит вопросительный знак и результат (т.е. все строки кроме этой) записать в другой файл. #include <stdio.h> #include <conio.h> #include <string.h> void main () { clrscr(); int i; int a=0; int z=0;
C++ Редактирование реестра (файл реестра) http://www.cyberforum.ru/cpp-beginners/thread693932.html
Есть файл реестра, скажем C:\\file.reg. Нужно из программы на C++ отредактировать реестр с помощью этого файла, но так, чтобы при этом не появлялось предупреждение о внесении изменений в реестр. Извините за глупые вопросы, действительно очень плохо разбираюсь в WinAPI) Заранее спасибо за помощь)
C++ Из файла считать строку с пробелами Нужно, чтобы из файла считывалась строка, проблема в том, что в ней есть пробелы... можно как-нибудь считать строку с пробелами? Заранее спасибо) подробнее

Показать сообщение отдельно
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
12.11.2012, 15:42     Вычисление текстовой формулы
замени на begin() и end(), возможно сработает.
ОПН
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
#include <iostream>
#include <stack>
#include <cctype>
#include <map>
#include <sstream>
 
int main()
{
    std::string s("(22.9 + 27.1)* 4 / ((.55 + 99.45) / 2.0)"), srpn;
    std::string::size_type ind;
    while((ind = s.find(' ')) != std::string::npos) // удаление пробелов из входной строки
    {
        s.erase(ind, 1);
    }
    std::map<char, size_t> map; // карата весов символов
    map.insert(std::make_pair('*', 3));
    map.insert(std::make_pair('/', 3));
    map.insert(std::make_pair('+', 2));
    map.insert(std::make_pair('-', 2));
    map.insert(std::make_pair('(', 1));
    std::stack<char> stack;
    for(auto c : s) // формировка результирующей строки в ОПЗ
    {
        if(!isdigit(c) && ('.' != c))
        {
            srpn += ' ';
            if(')' == c)
            {
                while(stack.top() != '(')
                {
                    srpn += stack.top();
                    stack.pop();
                    srpn += ' ';
                }
                stack.pop();
            }
            else if('(' == c)
            {
                stack.push(c);
            }
            else if(stack.empty() || (map[stack.top()] < map[c]))
            {
                stack.push(c);
            }
            else
            {
                do
                {
                    srpn += stack.top();
                    srpn += ' ';
                    stack.pop();
                }
                while(!(stack.empty() || (map[stack.top()] < map[c])));
                stack.push(c);
            }
        }
        else
        {
            srpn += c;
        }
    }
    while(!stack.empty())// остаток из стека добавляется в результ. строку
    {
        srpn += stack.top();
        srpn += ' ';
        stack.pop();
    }
    std::cout << srpn << std::endl; // результирующая строка в ОПЗ
    std::stack<double> dstack;
    std::stringstream ss(srpn);
    double d, d1;
    char c;
    while(ss.get(c)) // вычисление результата
    {
        if(isdigit(c) || '.' == c)
        {
            ss.unget();
            ss >> d;
            dstack.push(d);
        }
        else if(!isspace(c))
        {
            d1 = dstack.top();
            dstack.pop();
            d = dstack.top();
            dstack.pop();
            switch(c)
            {
                case '+':
                    dstack.push(d + d1);
                    break;
                case '-':
                    dstack.push(d - d1);
                    break;
                case '*':
                    dstack.push(d * d1);
                    break;
                case '/':
                    dstack.push(d / d1);
                    break;
            }
        }
    }
    if(!dstack.empty())
    {
        std::cout << dstack.top() << std::endl; // результат
        dstack.pop();
    }
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru