Форум программистов, компьютерный форум 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
28.10.2015, 00:39  [ТС]     Вычислить пример, введенный в виде строки
В общем сегодня (не без помощи препода, за что спасибо ему) довел до ума программу, теперь она работает. Оставляю здесь алгоритм, мало ли, кому-нибудь пригодится. Тему можно закрывать. Спасибо всем, кто здесь отписался!
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
#include "stdafx.h" //#include "stdlib.h", "string.h", "cstdlib"
 
 
bool IsDigit(char ch)
{
    const char Sym[] = "1234567890";
    for (int i = 0; Sym[i]; i++) if (Sym[i] == ch) return true;
    return false;
}
 
bool IsSign(char ch)
{
    return ch == '+' || ch == '-';
}
 
bool FalseSym(char ch)
{
    //const char Sym[] = "1234567890-+";
    //for (int i = 0; i <= strlen(Sym); i++) if (ch == Sym[i]) return false;
    //return true;
    return !IsDigit(ch) && !IsSign(ch);
}
 
void TakeNumber(char str[], int pos, char numb[])
{
    numb[0] = str[pos];
    numb[1] = 0;
    for (int i = pos+1; i < strlen(str); i++) 
    {
        if (IsDigit(str[i]))
        {
            char digit[2];
            digit[0] = str[i];
            digit[1] = 0;
            strcat_s(numb, 100, digit);
        }
        else break;
    }
}
 
int Sum(char str[])
{
    int count = 0;
    if (str[0] != 0)
    {
        int pos = 0;
        char numb[100];
        while (pos < strlen(str)) {
            TakeNumber(str, pos, numb);
            count += atoi(numb);
            pos += strlen(numb);
        }
        return count;
    }
}
 
void main()
{
    char Str[100];
    bool err = false;
    printf("Enter a Praxis (without spaces and equal symbol): "); gets_s(Str, _countof(Str));
    for (int i = 0; i < strlen(Str); i++) {
        if (FalseSym(Str[i])) {
            printf("There is an error in the praxis\n"); err = true; break;
        }
    }
    if (!err) for (int i = 0; i < strlen(Str); i++) {
        if (IsSign(Str[i]) && IsSign(Str[i+1])) {
            err = true;
            printf("Double signs are removed. The result is\n");
        }
    }
    if (!err) printf("%i\n", Sum(Str));
    system("pause");
    return;
}
 
Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru