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

Вычислить пример, введенный в виде строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача Хищник-Жертва http://www.cyberforum.ru/cpp-beginners/thread1563302.html
Добрый день! Условия решаемой задачи: Разработать систему, моделирующую поведение хищников и жертв в океане. Система должна состоять из следующих классов: Ocean Состоит из двумерного массива указателей на Cell. Инициализируется размерами, количеством объектов Obstacle, Prey и Predator заполняя соответствующими объектами двумерных массив указателей на Cell. Имеет счетчик числа ходов. Имеет...
C++ Подключение папки с *.h файлами Здравствуте, имеется исодный код сервера... нужно научится компилировать его (Server.dll). Дело в том что разработчики уже не поддерживают программу, а нам нужно внести пару изменений в неё. Проблема в том что студия при построении проекта вечно ссылается на то что не может найти файлы в триугольных инклудах, хотя файлы эти в проекте вообще то есть, вот я застопарился на msdn с параметрами... http://www.cyberforum.ru/cpp-beginners/thread1563299.html
Создать иерархию типов, описывает данные - сигнал C++
Создать иерархию типов, описывает данные - сигнал, данные результат обработки и данные, как результат обработки сигнала и будучи сигнал. классы должны иметь конструкторы, включая конструктор копирования, виртуальные деструкторы, перегружены функции Вывод в поток и ввод из потока. помогите сделать в С ++
Get Color from Panel C++
Ребята, приветствую! Использую интерактивное отображение цветов с помощью панели и крашу её обычным для неё способом MyPanel -> Color = TColor(RGB(R,G,B)); Собственно радовался этому чуду пока не встал вопрос как взять цвет с покрашенной ранее панели? Первое что интуитивно могло бы придти в голову это int R = MyPanel -> GetColor(?); Добавлено через 14 минут Или ... int R =...
C++ Builder При закрытии дочерней формы с нее пропадают данные http://www.cyberforum.ru/cpp-beginners/thread1563240.html
Вопрос прост, есть главная форма на которой вызывается несколько дочерних(могут и одновременно), на одной из форм есть StringGrid, в который заносятся некоторые данные, когда форма открыта и я работаю с другими дочерними, то данные не пропадают, как только я сворачиваю или закрываю форму, а после этого работаю с другими дочерними, а потом снова вызываю мне нужную, на ней нет ни данных ни даже...
C++ Реализавать алгоритм вычисления подходящих дробей Помогите пожалуйста написать программу. Необходима реализация алгоритма вычисления подходящих дробей. подробнее

Показать сообщение отдельно
Grazio
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 3
27.10.2015, 11:42     Вычислить пример, введенный в виде строки
В общем, задача такая:
"Посчитать математическое выражение, которое задано текстовым рядом. Выражение может содержать целые положительные значения, бинарные операции со знаками сложения (+) и вычитания (-). Если пример невозможно посчитать, сообщить об ошибке."

Если в предыдущих задачах, что нам давали, я мог понять алгоритм, а проблемы были с написанием, то в этой задаче сразу проблемы с составлением алгоритма. Вот пока все, что я смог написать:

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
#include "stdafx.h" //и stdlib.h, string.h, cstdlib
 
 
bool FalseSym(char ch)
{
    const char Sym[] = "1234567890-+";
    for (int i = 0; Sym[i]; i++) if (Sym[i] == ch) return false;
    return true;
}
 
bool IsDigit(char ch)
{
    const char Sym[] = "1234567890";
    for (int i = 0; Sym[i]; i++) if (Sym[i] == ch) return true;
}
 
void TakeNumber(char str[], int pos, char numb[])
{
    strcpy(numb, "");
    for (int i = pos+1; i < strlen(str); i++) 
    {
        if (IsDigit(str[i]))
        {
            char _s[2];
            _s[0] = str[i];
            _s[1] = 0;
            return _s;
        }
        else break;
    }
}
 
int Sum(char numb[])
{
    int count = 0;
    if (numb != 0)
    {
        for (int i = 0; i <= strlen(numb); i++)
        {
            count += atoi(numb);
        }
    }
}
 
void main()
{
    char Str[100];
    printf("Enter a Praxis (without spaces and equal symbol: "); gets_s(Str, _countof(Str));
    if (FalseSym(Str[100])) printf("There is an error in the praxis");
    system("pause");
    return;
}
Пока я решил сделать так:
1) Функция FalseSym отвечает за ошибку (правда не совсем понимаю, как учесть комбинации ++ и --);
2) Общий алгоритм приблизительно такой: IsDigit отвечает за то, число в строке или нет. Дальше TakeNumber должна взять число с заданной позиции, и скопировать его в новую строку, а Sum добавлять к счетчику и давать новую позицию. Только вот не понимаю, как заставить работать. Кто может, помогите разобраться.

P.S. Честно признаюсь, в программировании я еще тупой. Очень.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru