0 / 0 / 1
Регистрация: 15.10.2017
Сообщений: 6
1

Строки. Програмный калькулятор

15.05.2018, 22:11. Показов 1517. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать програмный калькулятор, запрашивающий у пользователя в виде строки символов выражение, которое необходимо вычислить, и производящий необходимые вычисления. Выражение может содержать целые числа и переменные. При наличии переменной дополнительно запрашивать у пользователя её значение.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2018, 22:11
Ответы с готовыми решениями:

Калькулятор с парсингом строки
Добрый день, дорогие программисты помогите написать калькулятор. Я ввожу строку например 5+8/7*10...

Калькулятор для командной строки
Помогите пожалуйста написать калькулятор для командной строки...

програмный код
Помогите плиз разобраться.Написали прогу, немогу понять как она работает.Конкретно нужны красные...

Програмный тест
Добрый вечер!!! Требуется создать тест ( 10 вопросов и по 3-5 вариантов ответа на каждый вопрос) с...

2
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
15.05.2018, 22:15 2
Есть наработки?
0
0 / 0 / 1
Регистрация: 15.10.2017
Сообщений: 6
15.05.2018, 22:22  [ТС] 3
Лучший ответ Сообщение было отмечено Leriks как решение

Решение

Ну в целом работает у меня возникла проблема с запросом переменной и выводе при делении только целого результата.
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
#include <iostream>
#include <conio.h>
#include <cmath>
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 ckobki()
{
      char c = cin.get();
      if(c == '(')
      {  
           float x = expr();
           cin.get();
           return x;
      }
      else 
      {
           cin.putback(c);
           return number();
      }
}
 
float factor()
{
      int x = ckobki();
      for(;;)
      {
      char c = cin.get();
      switch(c)
      {
               case '*':
                    x *= ckobki();
                    break;
               case '/':
                    x /= ckobki();
                    break;
               default:
                    cin.putback(c);
                    return x;             
      }
   }
}
 
float expr()
{
      int 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()
{
    cout << "Wwedi uravnenie: ";
    float res = expr();
    cout << "Otwet = " << res << endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2018, 22:22
Помогаю со студенческими работами здесь

Програмный рейд 1
Всем привет. Ситуация такая: хочу создать програмный рейд 1 на 10-ке. Система стоит на другом...

Програмный диск
Скажите пожалуйста как создать програмный диск Чтобы была автозагрузка как у ZVER DVD или FUCK YOU...

Калькулятор - регулярка для парсинга строки
Всем привет. Пишу строковый калькулятор. Вводится строка вида 31+4*2/(1-5)^2 и калькулятор должен...

Програмный рейд не создается
Не получается создать програмный рейд. Уточню - операционка Windows 7. Создаю по схеме во...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru