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

Решение уравнения, заданного символьной строкой

25.12.2014, 20:44. Показов 3043. Ответов 1
Метки нет (Все метки)

Как наладить процесс в этой программе? что нужно изменить в коде чтобы работало?

Это программа, которая вычисляет значение выражения N0O1N1O2…OkNk, где Ni – целое число, Oi – один из двух знаков простейших арифметических действий: сложение (+) и вычитание (–). Считать, что данные введены корректно: в строке заданы только цифры и указанные знаки действий. Ниже представлен рекомендуемый вид диалога во время работы программы. Данные, вводимые пользователем, выделены жирным шрифтом.

Введите арифметическое выражение,

например, 45+5-3-125+2 (пробелы и другие знаки недопустимы)

Значение выражения 354-457+74+2-37 = -64
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 "stdafx.h"
#include <locale.h>
#include <cmath>
#include <iostream>
#include "stdlib.h" 
using namespace std;
 
void _tmain()
{
    setlocale (LC_CTYPE, "Russian_Russia, 1251");
    char st[40]; // строка
    char buf[10]; // изображение очередного числа
    char op=0; // оператор
    int rez; // значение выражения
    int n; // очередное число
    
    cout << "Введите арифметическое выражение";
    cout << "например 4+5-3-5+2  "; 
    cout << "пробелы и другие знаки недопустимы";
    cout << "->" ; 
    cin >> st;
    //cout << st;
    rez = 0; // значение выражения 
    // выделить число
    {
    int i=0,j=0;
    while (st[i] >= '0' && st[i] <= '9')
    buf[j++] = st[i++];
    buf[j] = '\0'; 
    n = atoi(buf);} // преобразовать строку в целое
    // выполнить действие
    switch ( op )
    {
    case '+': rez += n; break;
    case '-': rez -= n; break;
    case ' ': rez = n;  break;} // первое число примера
    cout << "Значение введенного выражения: " << rez; 
    system("pause"); 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2014, 20:44
Ответы с готовыми решениями:

Решение биквадратного уравнения, заданного в виде строки в рантайме
Как решить биквадратное уравнение вида &quot;ax^4+bx^2+c&quot;, при том что уравнение задается во время...

Работа с символьной строкой
1) Ввести с клавиатуры символьную строку, состоящую из десятичных цифр и символа '.' (точка :))...

Простенькая программа с символьной строкой. Надо найти ошибку.
Программа, которая ищет в введённой строке вукву A и заменяет её на букву B и выводит полученную...

Удалить из символьной строки символы из заданного диапазона
Удалить из символьной строки символы из заданного диапазона символов. Без string и vector, с...

1
Модератор
Эксперт С++
12780 / 10236 / 6150
Регистрация: 18.12.2011
Сообщений: 27,407
25.12.2014, 20:56 2
Калькулятор с четырьмя арифметическими действиями
Простейший калькулятор
Мини калькулятор или деление на ноль
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2014, 20:56
Помогаю со студенческими работами здесь

Удалить из символьной строки символы из заданного диапазона
Удалить из символьной строки символы из заданного диапазона символов. С помощью цикла for.

Удалить из символьной строки символы из заданного диапазона символов
Удалить из символьной строки символы из заданного диапазона символов. Без string, с помощью for.

Вычисление значения выражения, заданного текстовой строкой
с++ Как можно получить ответ примера, заложенного в текстовой строке, например &quot;10 * 20 - 100 + 40...

решение заданного дифференциального уравнения,построить график полученного решения
решение заданного дифференциального уравнения, построить график полученного решения.


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

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

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