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

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

Войти
Регистрация
Восстановить пароль
 
Kir555
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 21
#1

Калькулятор - C++

19.11.2013, 21:11. Просмотров 393. Ответов 2
Метки нет (Все метки)

Здравствуйте! Задача такая: написать калькулятор, но не простой, а читающий пример из файла. Узнал, что надо привести пример в другую форму. Например, был такой: "(9+7)/2", а стал такой: "97+2/". Вроде бы так. Но что же делать дальше надо? Ну или может ли кто-нибудь предложить иной вариант решения задачки?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 21:11     Калькулятор
Посмотрите здесь:

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

Калькулятор в С++ - C++
Доброго времени суток. Нужно разработать класс «Калькулятор» Вид данных: квадрат; Необходимо осуществить ввод и вывод координат...

Калькулятор на C++ - C++
Доброго времени суток! У меня возник вопрос. При вводе чисел в cmd, они у меня просто складываются, но код (мне кажется) правильный. Думаю...

калькулятор - C++
Здравствуйте!! У меня возникла проблема. Мне нужно ввести выражение и занести его в массив. Символов не ограничено. Заранее спасибо. ...

калькулятор - C++
Всем привет, извините, что постю сюда эту тему, но выхода нет((( Проблема состоит в том что надо сделать калькулятор из множества действий...

Калькулятор - C++
#include "stdafx.h" #include <stdio.h> #include <iostream> #include <conio.h> using namespace std; int main() { ...

Калькулятор - C++
В идеале, то что представлено ниже является калькулятором с 4-мя действиями (+,-,*,/) и с произвольным количеством переменных. Но вот не...

Калькулятор - C++
Есть такое условие: If(b=='+') s=a+b; как сделать так чтобы я мог додавать не два числа а a+b+...+n

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

Калькулятор на С++ - C++
калькулятор в принципе готов, надо только сделать запрет деления на 0, помогите кто чем может #include<stdio.h> #include<conio.h> ...

Калькулятор на С - C++
калькулятор в принципе готов, надо только сделать деление на дробные числа, помогите кто чем может пожалуйста

Калькулятор - C++
Строковый калькулятор методом обратной польской нотации, со скобками. Есть у кого нить код? Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2013, 21:23     Калькулятор #2
Цитата Сообщение от Kir555 Посмотреть сообщение
Узнал, что надо привести пример в другую форму. Например, был такой: "(9+7)/2", а стал такой: "97+2/".
вот как раз 97+2/ не пойдёт, так как цифры не разделены. Хорошо, если имелось ввиду (9+7)/2. А если (93+47)/26? Ты из этого слепишь 9347+26/. А что это значит? (9+347)/26? Или (934+7)/26? А может (93+47)/26? А значения то разные! Уж хотябы
9
7
+
2
/, но ни как не в строчку. Или 9 7+2/. Числа разделяются пробелами, а цифры числа нет. А можно и прямо с инфиксной формы, то есть (9+7)/2. И даже +9 7/2, или
+
9
7
/
2. Какую бы форму выражения ты ни выбрал, нужен парсер. А можно ещё так:
9+7
/2, где знак операции в начале строки означает, что левый операнд - результат предыдущего выражения, какими бы ни были приоритеты его операций.

Добавлено через 3 минуты
Инфиксные выражения со скобками и приоритетами парсятся сложней всего, если каждое отдельное выражение содержит ровно одну операцию (
9+7
/2
), то сложность парсинга ни как не отличается от сложности реакции на ввод в обычном калькуляторе. Для суффиксных и постфиксных выражений нужен стек, то есть сам расчёт усложняется, но парсинг максимально прост.

Добавлено через 1 минуту
Для начала надо определиться с формой выражения, так как все формы парсятся по разным алгоритмам. Если инфиксное со скобками и приоритетами, то надо парсить или деревом, рекурсивно, или переобразовывать в суффиксную/постфиксную форму при первичном парсинге, а потом гонять ещё и вторичный парсинг.
Kir555
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 21
19.11.2013, 21:28  [ТС]     Калькулятор #3
Тогда еще несколько вопросов) Что тут подразумевает слово "парсинг"?) Ну и почему бы не принять первую форму выражения? Числа двузначные можно же разделить пробелом, как и все другие символы, и потом считывать до окончания строки, так?) А потом, со стеком поработав, загнать преобразованное в массив...
Ответ Создать тему
Опции темы

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