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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
#1

Повтор арифметической операции - C++

02.11.2012, 04:09. Просмотров 676. Ответов 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
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
 
float number()
{
    int res =0;
    for(;;)
    {
        char c = cin.get();
        if( c >= '0' && c <= '9')
            res = res * 10 + c - '0';
        else
        {
            cin.putback(c);
            return res;
        }
    }
}
float expr();
 
float skobki()
{
    char c = cin.get();
    if( c == '(')
    {
        float x = expr();
        cin.get();
        return x;
    }
    else
    {
        cin.putback(c);
        return number();
    }
}
float factor()
{
    float x = skobki();
    for (;;)
    {
        char c = cin.get();
        switch (c)
        {
        case '*':
            x *= skobki();
            break;
        case '/':
            x /= skobki();
            break;
        default:
            cin.putback(c);
            return x;
        }
    }
}
 
float expr()
{
    float x = factor();
    for (;;)
    {
        char c = cin.get();
        switch (c)
        {
        case '+':
            x += factor();
            break;
        case '-':
            x -= factor();
            break;
        default:
            cin.putback(c);
            return x;
        }
    }
}
 
 
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    char es;
    do{
    cout << "Ведите выражение:  ";
    float res = expr();
    
    
    
    cout << "Результат:  " << res << endl; 
    
    cout << "Продолжить(y/n)  ";
    cin >> es;
    }while ( es == 'y');
 
    getchar();
    getchar();
        return 0;
}
Доброго времени суток , вот есть код который выполняет арифметические опрерации со скобками, хочу добавить в него многоразовые операции, столько скок мне надо, сам лично код не писал так как еще не могу такое вытворять , но вот расхрабрел и добавил в int main() цикл do while и выходит так что первая операция выполняеться, через "Продолжить(y/n)" повторяю операцию , а оно автоматически выводит Результат: 0 без возможности ввода данных, и не знаю я как в цикле заставить работать float res = expr(); , как быть кто подскажет.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 04:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Повтор арифметической операции (C++):

Разработать программу, которая для введенного символа арифметической операции ('+','-','/','*','%') печатает ее название - C++
Разработать программу, которая для введенного символа арифметической операции ('+','-','/','*','%') печатает ее название.

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,&gt;, &lt;,&gt; =, &lt;= И операции потокового ввода-вывода. ...

Повтор действий - C++
Здравствуйте. В задании сказано:&quot;Записи (не менее 5) вводятся с клавиатуры. Составить программу, выводящую на экран график отпусков (Ф....

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

while и последний повтор цикла - C++
Привет всем...дело вот в чём: я пишу блекджек(консольную версию) и в процессе наткнулся на трудность...у пользователя есть выбор взять...

Повтор генереруемых номеров - C++
Привет, в этой программе каждому человеку присваиваются числа. Но дело в том, что они могут повторятся. Как это исправить? Код: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
02.11.2012, 06:31 #2
Цитата Сообщение от I love myguitar Посмотреть сообщение
многоразовые операции
чаво?
0
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
02.11.2012, 07:45  [ТС] #3
Я наверное чот сильно заумно начал , проще говоря нужен простой калькулятор с простыми операциями ну там сложение, умножение, вычитание , деление + * - / , также естественно должны присутствовать
операции со скобками : ( 2 + 3) * 2 = ; и вот в выше описаном коде эта функция действует , но одноразово, тоесть после компиляции в окошке Debug ..exe (я занимаюсь в VC2010) ввожу пример
( 2 + 3) * 2 = нажимаю Enter и мне результат: 10. Чтобы ввести следующий пример мне нужно опять перекомпилировать , так вот мне хочеться этого не делать , а каким то образом подключить цикл который после решения примера тут же при первой компиляции будет срашивать " Продолжить(y/n) " и
в выше приведенном коде цикл do while работает , тоесть после результата примера следующяя строка
" Продолжить(y/n) " я выбираю продолжить "у" и мне сразу выводит
результат "0" " Продолжить(y/n) " и так до бесконечности , так вот немогу подключить в этом цикле функцию что бы вводить числа для следующего примера
0
Croessmah
Эксперт CЭксперт С++
13234 / 7506 / 846
Регистрация: 27.09.2012
Сообщений: 18,434
Записей в блоге: 3
Завершенные тесты: 1
02.11.2012, 08:28 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    setlocale(LC_ALL, "rus");
 
    char es;
    do{
    cout << "Ведите выражение:  ";
    float res = expr();   
    cout << "Результат:  " << res << endl;     
    cout << "Продолжить(y/n)  ";
    cin >> es;
     cin.clear();while(cin.get()!='\n');//Очистка потока
    }while ( es == 'y');
 
    getchar();
    getchar();
        return 0;
}
1
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
02.11.2012, 15:41  [ТС] #5
Сударь вы гениальны cin.clear();while(cin.get()!='\n');//Очистка потока Весьма премногобдагодарен !!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 15:41
Привет! Вот еще темы с ответами:

Повтор кода в dev c++ - C++
собрал вот такую штуку. подскажите, как между SetCursorPos(x,y); и if (x=302,y=499) вставить паузу к примеру в 15 секунд? #include...

Битовые операции и операции смещения языка С - C++
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает верно(переводит обычные числа в 16-ти ричные),а...

Заменить операции ifstream на операции fprintf - C++
Собственно как и написано в заголовке заменить операции ifstream на fprintf со всеми вытекающими(типо getline) необходимо мне. Помогите...

Повтор случайного числа в строке матрицы - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { const int COLUMN = 8; const int ROW = 22; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.11.2012, 15:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru