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

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

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

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

02.11.2012, 04:09. Просмотров 665. Ответов 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(); , как быть кто подскажет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 04:09     Повтор арифметической операции
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
02.11.2012, 06:31     Повтор арифметической операции #2
Цитата Сообщение от I love myguitar Посмотреть сообщение
многоразовые операции
чаво?
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) " и так до бесконечности , так вот немогу подключить в этом цикле функцию что бы вводить числа для следующего примера
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 15:41     Повтор арифметической операции
Еще ссылки по теме:

Повтор программы после ввода символа - C++
На форуме уже данная тема была, но не один из примеров приведенных в ней не работает... Как реализовать повтор программы, с помощью char...

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

Реализовать повтор программы по усмотрению пользователя - C++
сделать повтор программы по желанию пользователя #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; ...

как организовать повтор ввода данных - C++
Как на примере этого кода сделать возврат к воду чисел а при нажатие esc или же ctrl+z - выходило с программы! Заранее спасибо! ...


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

Или воспользуйтесь поиском по форуму:
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
02.11.2012, 15:41  [ТС]     Повтор арифметической операции #5
Сударь вы гениальны cin.clear();while(cin.get()!='\n');//Очистка потока Весьма премногобдагодарен !!!
Yandex
Объявления
02.11.2012, 15:41     Повтор арифметической операции
Ответ Создать тему
Опции темы

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