Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 21
1

Калькулятор

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

Author24 — интернет-сервис помощи студентам
Здравствуйте! Задача такая: написать калькулятор, но не простой, а читающий пример из файла. Узнал, что надо привести пример в другую форму. Например, был такой: "(9+7)/2", а стал такой: "97+2/". Вроде бы так. Но что же делать дальше надо? Ну или может ли кто-нибудь предложить иной вариант решения задачки?)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2013, 21:11
Ответы с готовыми решениями:

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include <iostream> int main(){ int a = 0; int b = 0; char operation; std::cout << "Enter first number: "; ...

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который работает с 2 числами. Возник вопрос, как...

Калькулятор
Пишу калькулятор. Прошу помощи. Вот мой код #include <iostream> #include <locale.h> #include <string.h> #include <cmath> ...

2
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
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 минуту
Для начала надо определиться с формой выражения, так как все формы парсятся по разным алгоритмам. Если инфиксное со скобками и приоритетами, то надо парсить или деревом, рекурсивно, или переобразовывать в суффиксную/постфиксную форму при первичном парсинге, а потом гонять ещё и вторичный парсинг.
1
0 / 0 / 0
Регистрация: 27.05.2012
Сообщений: 21
19.11.2013, 21:28  [ТС] 3
Тогда еще несколько вопросов) Что тут подразумевает слово "парсинг"?) Ну и почему бы не принять первую форму выражения? Числа двузначные можно же разделить пробелом, как и все другие символы, и потом считывать до окончания строки, так?) А потом, со стеком поработав, загнать преобразованное в массив...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2013, 21:28
Помогаю со студенческими работами здесь

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

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

Калькулятор в С++
Ребята, у кого есть код калькулятора, киньте пожалуйста. Буду очень благодарен.

Калькулятор
Доброго времени суток, Народ! Помогите плиз с задачей. Нужен исходник калькулятора, самого простого, на 4 действия. Заранее спасибо!!!

Калькулятор
Подскажите, что мне сделать с операндом Result чтобы функция main запускалась заново после того как есть Result. #include...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru