Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? https://www.cyberforum.ru/ cpp-beginners/ thread1567405.html
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из тем сайта. Подскажите, как добавить по пунктам и что сделать, чтобы открывалась библиотека #include"msoftcon.h", а то пишет, что "не удаётся открыть источник файл". Я просто перетащил мышкой файлы в обозреватель решений, но ошибка остаётся той же. ...
C++ Методы класса Сотрудник. Как указать дату?
Добрый день, начинаю осваивать ООП, очень нужны ваши комменты. Создаю класс Сотрудник, нужно ввести 3 конструктора конструктор с тремя параметрами конструктор по умолчанию (без параметров), конструктор с двумя параметрами – имя и зарплата, в этом случае день приема на работу – дата создания объекта Проблема с созданием третьего конструктора, как указать дату? Вопрос второй: нужно указать...
C++ Найти число, которое чаще всего встречается в матрице как найти число которое больше всего встречается в матрице? https://www.cyberforum.ru/ cpp-beginners/ thread1567380.html C++ Создание собственной библиотеки https://www.cyberforum.ru/ cpp-beginners/ thread1567377.html
В заданном массиве размером N, образуется из случайных чисел, нужно: Сформировать новый массив B того же размера по следующему правилу: элемент Bk равен среднему арифметическому элементов массива A с номерами от 1 до K.
C++ Вывести каждое второе слово заданного текста большими буквами
Буду очень благодарен))) Дан текст,вводиться с клавиатуры,нужно вывести каждое второе слово большими буквами
C++ Пузырьковая сортировка двумерных массивов Недавно начал изучать С++ по книге Герберта Шилдта. Заступорился на сортировке двумерных массивов, поясните пожалуйста как это работает. Особенно вот эта строчка num=(t*4)+i+1; #include <iostream> using namespace std; int main() https://www.cyberforum.ru/ cpp-beginners/ thread1567352.html
C++ Рекурсия: найти наибольший общий делитель 2-х натуральных чисел С помощью рекурсивной функции найти наибольший общий делитель 2-х натуральных чисел. #include <iostream> #include <conio.h> #include <math.h> int sum, n, max; int main() { std::cin>>n; if (n==1) result 1; https://www.cyberforum.ru/ cpp-beginners/ thread1567350.html C++ Класс Person. Сохранения и управления собственными объектами в карте с++
Здравствуйте. Нужно добавить к классу Person к имении и фамилии ещё и возраст. Вот мои наработки: #include <iostream> #include <cstdio> #include <iomanip> #include <iomanip> #include <map> #include "File1.h" using namespace std;
C++ Указатель на функцию с аргументами, как аргумент другой функции https://www.cyberforum.ru/ cpp-beginners/ thread1567323.html
У меня есть некая функция, которая принимает как аргумент другую функцию typedef void(*func_type)(); start(func_type ExecFunction); И все работает нормально, пока мне не понадобились аргументы в функции: я сделал так
C++ Распознавание базы у числа в стандартном потоке https://www.cyberforum.ru/ cpp-beginners/ thread1567293.html
Всем доброго! Задача: вводится набор чисел с различным основание (dec, hex, oct). Нужно их преобразовать в числа с десятичным основанием. Я так понимаю, пока потоку не скажешь, что у него на входе число с определенным основанием, он будет воспринимать его по умолчанию (или последнему вводу). Я пока вижу решение в запихивании очередного числа в строку, разбирательством с основанием, а...
Преобразовать void в int C++
void Matrix::operator --() //перегруженный оператор -- { int tmp=mtx; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(tmp>mtx) //ищем минимальный элемент tmp=mtx; } }
C++ Удалить в текстовом файле символ распределитель в конце строк https://www.cyberforum.ru/ cpp-beginners/ thread1567287.html
Нужно создать програму, что будет удалять в текстовом файле символ распределитель(пробел, символ табуляции) в конце строк. Нужно исползовать функции fstream.
191 / 161 / 116
Регистрация: 14.09.2013
Сообщений: 302
31.10.2015, 18:25 0

Калькулятор с парсингом строки - C++ - Ответ 8273090

31.10.2015, 18:25. Показов 14627. Ответов 12
Метки (Все метки)

Лучший ответ Сообщение было отмечено Restartuk как решение

Решение

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
#include <iostream>
#include <string>
 
using namespace std;
 
void breakArr(string s, int * sign, double * num, int * cs, int * cn) {
    string allSign = "+-*/";
    for (int i = 0; i < s.size(); ++i) {
        double c = 0;
        int fl = 0;
        while (s[i] >= '0' && s[i] <= '9') 
            fl = 1, c = c * 10 + (s[i++] - '0');
        if (fl) num[(*cn)++] = c;      
        fl = allSign.find(s[i]);
        if (fl != -1)
            sign[(*cs)++] = fl; 
    }
}
 
double changeValue(double a, double b, int sign) {
    double c;
    switch (sign) {
        case 0:
            c = a + b;
            break;
        case 1:
            c = a - b;
            break;
        case 2:
            c = a * b;
            break;
        case 3:
            c = a / b;
            break;
    }
    return c;
}
 
int main() {
    string expression;
    cout << "Enter expression: ";
    getline(cin, expression);
    expression += ' ';
    int sign[expression.size() / 2];
    double num[expression.size() / 2];
    int countSign = 0, countNum = 0;
    
    breakArr(expression, sign, num, &countSign, &countNum);
    while (countNum > 1) {
        int numOper = 0;
        for (int i = 0; i < countSign; ++i)
            if (sign[i] > 1) {
                numOper = i;
                break;
            }
        num[numOper] = changeValue(num[numOper], 
                            num[numOper + 1], sign[numOper]);
        for (int i = numOper + 1; i < countNum; i++)
            num[i] = num[i + 1];
        for (int i = numOper; i < countSign; i++)
            sign[i] = sign[i + 1];
        countNum--, countSign--;
    }
    cout << "Result: " << num[0] << endl;
    return 0;
}


Вернуться к обсуждению:
Калькулятор с парсингом строки C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2015, 18:25
Готовые ответы и решения:

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который...

Калькулятор с парсингом ввода
Всем привет, не так давно начал постигать c++. Возник вопрос как сделать программу-калькулятор, в...

Калькулятор с парсингом арифметических выражений
Народ интересует вопрос возможно ли сделать калькулятор в console приложении на C++ так что бы я...

Корень и дробная часть. Калькулятор с парсингом
Прошу вас помочь мне. Ибо все мои пробы не к чему не приводят. Я пишу консольный калькулятор. ...

12
31.10.2015, 18:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2015, 18:25
Помогаю со студенческими работами здесь

Помогите с парсингом С++!!!
Народ помогите с парсингом я в этом деле жесткий нуб скиньте ссылки на книжки какие-нибудь где есть...

Строки. Програмный калькулятор
Реализовать програмный калькулятор, запрашивающий у пользователя в виде строки символов выражение,...

Калькулятор для командной строки
Помогите пожалуйста написать калькулятор для командной строки...

Нужна программа калькулятор: вычисление значения, заданного в виде строки
Нужен калькулятор, которые не будет просить ввести отдельно числа, а будет считывать всю строку и...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru