Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу разобраться с решением задачи http://www.cyberforum.ru/cpp-beginners/thread1012461.html
Необходимо написать код с использованием указателей... Даны натуральное число m, целые числа а1, ...,аm и целочисленная квадратная матрица порядка m. Строку с номером i матрицы назовем отмеченной,...
C++ Найти минимальный элемент для каждой диагонали матрицы (не могу изменить цикл) Полное условие задачи: Дана квадратная матрица A порядка M. Найти минимальный элемент для каждой ее диагонали, параллельной главной (начиная с одноэлементной диагонали A). Помогите изменить цикл.... http://www.cyberforum.ru/cpp-beginners/thread1012456.html
двусвязный список натуральных чисел, заканчивается нулем C++
С клавиатуры вводится последовательность натуральных чисел, заканчивается нулем. Упорядочить эту последовательность по возрастанию и вывести результат на экран, указав количество повторений каждого...
с++ кинотеатр C++
Здравствуйте не могли бы вы помочь мне написать программу на C++ "Кинотеатр" , программа будет в курсавой работе сам не сильно шарю в C++ . Сделайте кто нибудь пожалуйста простую какую нибудь с базой...
C++ Массив(сумма, макс. число), ввод текста с клавиатуры и сохранение в *.txt http://www.cyberforum.ru/cpp-beginners/thread1012447.html
Написать программу, которая формирует массив 5x5 и вычисляет сумму элементов массива, и наибольшую величину массива с указанием строки и столбца. Я тут начал что знаю точно, но не все получается....
C++ Найти элементы в массиве Помогите пожалуйста, я новичок, задали такую задачу: найти элементы которые присутствуют в одном экземпляре либо только в массиве А, либо только в массиве В. подробнее

Показать сообщение отдельно
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2013, 21:23
Цитата Сообщение от 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru