0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
1

Дана строка, которая представляет арифметическое выражение. Проверить его корректность

10.10.2015, 10:18. Показов 2822. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана ленту, которая представляет арифметическое выражение. Проверить корректность заданного выражения. Вычислить его.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2015, 10:18
Ответы с готовыми решениями:

Символьная строка представляет собой арифметическое выражение. Проверить правильность расстановки скобок в этом выражении
Символьная строка представляет собой арифметическое выражение. Проверить правильность расстановки...

Дана строка, изображающая арифметическое выражение
Дана строка, изображающая арифметическое выражение вида «<цифра>±<цифра>±…±<цифра>», где на месте...

Дана строка, изображающая арифметическое выражение. Вывести значение
помогите пожалуйста решить 1)Дана строка, изображающая арифметическое выражение вида «<циф-...

Дана строка, изображающая арифметическое выражение. Вывести значение
Помогите, пожалуйста решить. Дана строка, изображающая арифметическое выражение вида «<циф-...

4
4 / 4 / 2
Регистрация: 05.10.2015
Сообщений: 27
10.10.2015, 10:38 2
А поконкретнее?
0
0 / 0 / 1
Регистрация: 06.08.2015
Сообщений: 85
10.10.2015, 10:51  [ТС] 3
8-3+(1-7*(2+4)/3)+5
0
4 / 4 / 2
Регистрация: 05.10.2015
Сообщений: 27
10.10.2015, 17:00 4
Могу предложить только вариант проверки выражения.

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
#include <iostream>
#include <string>
#include <cmath>
#include <dos.h> 
#include <clocale>
#include <cstdlib>
using namespace std;
 
int main() {
    setlocale(LC_CTYPE, "rus"); 
    char a[256];
    int b;
    bool rightness = true;
    cout << "Введите выражение\n";
    cin >> a;
    if (a[0] == '+'||a[0] == '*'||a[0] == '/'){
        rightness = false;
    }
    else if (a[strlen(a)-1]=='+'||a[strlen(a)-1]=='-'||a[strlen(a)-1]=='*'||a[strlen(a)-1]=='/'){ 
        rightness = false;
    }
    else {
        for (int i = 0; (i < strlen(a)); i++) {
            if ((a[i] == '+'||a[i] == '-'||a[i] == '*'||a[i] == '/')&&(a[i+1] == '+'||a[i+1] == '*'||a[i+1] == '/')){
                rightness = false;
                }
            if((a[i] == '/')&&(a[i+1] == '0')){ 
                rightness = false;
            }
        }
    }
    if (rightness) { 
                 cout << "Выражение верно\n";
    }
    else
    cout << "Выражение неверно\n";
    system("pause");
    return 0;
}
0
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
10.10.2015, 21:01 5
https://www.cyberforum.ru/post8176541.html
0
10.10.2015, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 21:01
Помогаю со студенческими работами здесь

Дана строка, изображающая арифметическое выражение. Найти значение выражения
дана строка, изображающая арифмитическое вырожение вида...

Дана строка символов, представляющих собой арифметическое выражение. Подсчитать результат выражения
Дана строка символов, представляющих собой арифметическое выражение. Подсчитать результат...

Строка содержит арифметическое выражение из двух чисел - выполнить его
Строка содержит арифмитическое выражение из двух чисел, между которыми стоит арифмитический знак(+...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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