Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2010, 23:36   #1
Wera
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 14
По умолчанию приложение для вычисления значения арифметического выражения

Здравствуйте.
Помоги найти и исправить ошибку в коде

Код:
#include <iostream>
using namespace std;
double expression();
double term();


 
int main()
{
    double n;
 
 
 
cout << "Vedite zadachu ";
    
    n = expression();
 
cout<< "Rezyltat: " << n << endl;
 
   cin.get();
cin.get();
    return 0;
}
 
double expression()
{
    double result;
    char operation;
 
    result = term();
 
    while (true)
    {
        operation = cin.get();
 
        switch (operation)
        {
        case '+':
            result += term();
            break;
        case '-':
            result -= term();
            break;
        default:
          cin.putback(operation);
            return result;
        }
    }
}
 
double term()
{
    double result;
    char operation;
    double temp;
	double power;
 
    result = power;
 
    while (true)
    {
        operation =cin.get();
 
        switch (operation)
        {
        case '*':
            result *= power;
            break;
        case '/':
            
            if (temp == 0.0)
            {
              cout << "Delenie na 0!" << endl;
                exit(-1);
            }
 
            result /= temp;
            break;
        default:
           cin.putback(operation);
            return result;
        }
    }
}
Wera вне форума Ответить с цитированием
Старый 04.12.2010, 00:15   #2
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Что-то с трудом прослеживается логика, а на вскидку
Цитата:
Сообщение от Wera Посмотреть сообщение
Код:
result = power;
power не инициализирована. Может при наличии задания Вам легче будет помочь?

Последний раз редактировалось KemanSR; 04.12.2010 в 00:18.
KemanSR вне форума Ответить с цитированием
Старый 04.12.2010, 00:27   #3
Wera
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 14
По умолчанию

это должно быть приложение которое считает арифметические выражения "+" "-" "*" "/" которые водить пользователь
Wera вне форума Ответить с цитированием
Старый 04.12.2010, 00:34   #4
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

1. Действия над double?
2. Не вижу где вводятся сами значения.
3. А как программа узнает что пользователь ввёл второе число?
... простите, вро де начинает доходить, сейчас проверю.

Последний раз редактировалось KemanSR; 04.12.2010 в 00:40.
KemanSR вне форума Ответить с цитированием
Старый 04.12.2010, 00:44   #5
Wera
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 14
По умолчанию

ввод данных:
cin.get(); - ожидание потокового ввода одного символа
cin.get(); - еще раз
Wera вне форума Ответить с цитированием
Старый 04.12.2010, 01:00   #6
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Цитата:
Сообщение от Wera Посмотреть сообщение
ввод данных:
cin.get(); - ожидание потокового ввода одного символа
cin.get(); - еще раз
Я имею ввиду сами "циферки". Что числа тоже по одному символу считывать? Какого формата действия (1+1 enter или 1*3+4+-5/1,2 enter)?
KemanSR вне форума Ответить с цитированием
Старый 04.12.2010, 01:05   #7
Wera
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 14
По умолчанию

мне кажется что тут не хватает как бы функции которая "собирает" введенные данные что бы была возможность расчета формулы.
только я не знаю как ее сделать
Wera вне форума Ответить с цитированием
Старый 04.12.2010, 01:19   #8
KemanSR
Форумчанин
 
Регистрация: 03.05.2010
Сообщений: 129
По умолчанию

Извините не понимаю задания и хода мысли кода. Может утро всё-таки мудренее?
KemanSR вне форума Ответить с цитированием
Старый 04.12.2010, 01:53   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Посмотрите у Страуструпа, у него есть реализация подобного калькулятора. В 3 и Специальном изданиях - глава 6.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дерево арифметического выражения papos Помощь студентам 1 01.11.2010 18:48
Вычисление условного арифметического выражения doda666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 16.03.2010 08:02
составить функцию для вычисления значения y=P(x) многочлена для заданного аргумента x KASPEER Помощь студентам 2 12.01.2010 15:03
Составить программу для нахождения значения выражения ) dodyks Помощь студентам 4 10.05.2009 16:16
Построение арифметического выражения. Arugin Помощь студентам 5 16.03.2009 09:49