|
12 / 10 / 5
Регистрация: 27.08.2015
Сообщений: 236
|
||||||
Объясните код06.10.2015, 13:28. Показов 788. Ответов 8
Метки нет (Все метки)
Всем доброго времени суток.
Я начинающий джава, но в связи с сложившейся ситуации необходимо разобраться в С++ коде. Я понимаю что это калькулятор, использующий обратную польскую запись, но не более. Буду очень благодарен если кто-то сможет прокомментировать данный код.
0
|
||||||
| 06.10.2015, 13:28 | |
|
Ответы с готовыми решениями:
8
объясните код Объясните код Объясните код |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 06.10.2015, 14:32 | ||
|
Если есть непонимание по каким-то конкретным местам - выдели их отдельно.
0
|
||
|
12 / 10 / 5
Регистрация: 27.08.2015
Сообщений: 236
|
||||||
| 09.10.2015, 10:03 [ТС] | ||||||
|
Tulosba, не понятна вот эта часть кода...не понятно как именно это работает:
0
|
||||||
|
|
|||||||||||||||||||||||||||
| 09.10.2015, 11:21 | |||||||||||||||||||||||||||
|
Вот это
Это должно быть интуитивно понятно
0
|
|||||||||||||||||||||||||||
|
12 / 10 / 5
Регистрация: 27.08.2015
Сообщений: 236
|
|
| 09.10.2015, 11:54 [ТС] | |
|
Kastaneda, Спасибо! А подскажите пожалуйста, используется ли в коде обратная польская запись? Просто со всем кодом уже более-менее разобрался,но так и не нашел...
Так же подскажите пожалуйста, правильно ли я понял саму структуру: программа просто берет один символ из введенных, прогоняет его по всем функциям и возвращает обработав,если он попал под условия...но на каком этапе идет само вычисление?
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 09.10.2015, 13:13 | ||
|
Например, деление происходит в строке 118, сложение и вычитание в строках 144 и 147, соответственно, возведение в степень -- 227.
0
|
||
|
12 / 10 / 5
Регистрация: 27.08.2015
Сообщений: 236
|
|||||||||||
| 09.10.2015, 17:25 [ТС] | |||||||||||
|
mporro, но mporro, вот именно сам алгоритм работы и не ясен. Допустим есть у нас выражение (2+2)*2. Функция expr() сначала прогоняет через себя "(" пропуская ее через factor() и затем через brackets(). и когда скобка туда попала она попадает под условие:
Добавлено через 2 часа 50 минут Так же, подскажите пожалуйста на счет этого участка кода:
0
|
|||||||||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 09.10.2015, 19:36 | |
|
JavJun
Операции вызывают друг друга в порядке, обратном приоритету. Само вычисление, знак равно, выраженное функцией expr, имеет самый низкий приоритет вместе с операциями сложения и вычитания, которые и выполняются в функции expr. Но expr не производит этих вычислений, пока не будут выполнены все операции более высокого приоритета. Какая более приоритетная операция, которая должна выполняться перед сложением/вычитанием? Умножение/деление! Потому expr предварительно вызывает функцию frac, чтобы выполнить в первом операнде все более приоритетные операции, а затем прибавляет/вычитает второй операнд, для которого также предварительно вызывает функцию frac, которая обслуживает операции более высокого приоритета. Точно так же поступают и другие функции: frac вызывает функцию power, которая обладает более высоким приоритетом, чем frac, а power вызывает brackets... *** О code snippets Перед скобкой может стоять знак минут, который обращает конечный результат. Если в скобках получилось 2, то знак минус превратит результат в -2. Скобки обрамляют какое-то другое выражение, в котором тоже могут быть другие операции, потому brackets либо вызывает ещё более приоритетную функцию, которая читает число, либо передаёт управление функции expr, которая разберёт выражение в скобках. Во втором кусочке кода написано, что пробельные символы из потока ввода читаются без всяких действий. Своего рода "ожидание", крутись, пока дельная информация не придёт, а пробелы игнорируй.
1
|
|
|
12 / 10 / 5
Регистрация: 27.08.2015
Сообщений: 236
|
|
| 18.11.2015, 17:44 [ТС] | |
|
Подскажите пожалуйста, а в данном коде функция cin.get() берет по одному символу и прогоняет через все функции или в каждой функции она берет по одному символу и к следующей уже передает обработанную строку?
0
|
|
| 18.11.2015, 17:44 | |
|
Помогаю со студенческими работами здесь
9
Объясните код Объясните код Объясните код Объясните код Объясните код Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|