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

Калькулятор

09.11.2019, 12:51. Показов 4289. Ответов 7

Студворк — интернет-сервис помощи студентам
На стандартном потоке ввода задаётся выражение в префиксной польской нотации, содержащее операции умножения и целочисленного деления (*, /) и 32-битные целые числа. Префиксная польская нотация (ППН) определяется рекурсивно: 1) ППН целого числа есть само это число. 2) Если E1, E2 - выражения в префиксной польской нотации, то ППН произведения E1 и E2 есть выражение "* E1 E2", ППН частного E1 и E2 есть выражение "/ E1 E2". 3) Никакое другое выражение не является выражением в ППН. Элементы входного выражения отделены пробелами.

На стандартный поток вывода напечатайте значение заданного выражения.

Указание: использовать массивы запрещается. Для реализации используйте рекурсивные функции. Решайте задачу в предположении, что при вычислении промежуточных результатов переполнений целочисленной арифметики не возникает (входные данные корректны). Количество входных данных задается структурой выражения и определяется непосредственно во время вычисления выражения.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2019, 12:51
Ответы с готовыми решениями:

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

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

Калькулятор
Здравствуйте! Задача такая: написать калькулятор, но не простой, а читающий пример из файла. Узнал, что надо привести пример в другую...

7
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.11.2019, 21:03
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
#include <iostream>
#include <string>
int
calc_PPN ()
{
    std::string word;
    std::cin >> word
    ;
    switch ( word[0] )
    {
        default:
        return std::stoi ( word );
        case '*':
        return calc_PPN() * calc_PPN();
        case '/':
        return calc_PPN() / calc_PPN();
    }
}
 
int
main()
{
    std::cout << calc_PPN();
}
0
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
09.11.2019, 21:09  [ТС]
politoto, А что делает дефолт в свитче?У меня компилятор на него жалуется.
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.11.2019, 21:27
Code
1
2
3
4
PPN ::= 
    int  
    * PPN PPN 
    / PPN PPN
int by default

Добавлено через 4 минуты
CodeKing, какие жалобы у какого именно компилятора?
Вы не могли бы уточнить?
0
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
09.11.2019, 21:49  [ТС]
politoto, Не понимает функцию stoi(word).

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
#include <iostream>
#include <string.h>
 
using namespace std;
 
int calc_RPN ()
{
    string word;
    cin >> word
    ;
    switch ( word[0] )
    {      
        case '*':
        return calc_RPN() * calc_RPN();
        case '/':
        return calc_RPN() / calc_RPN();
        default:
        return stoi(word);
    }
}
 
int main()
{
    std::cout << calc_RPN();
}
Может я что то ни то написал.
1
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.11.2019, 22:06
Лучший ответ Сообщение было отмечено CodeKing как решение

Решение

Эта функция преобразования строки в число в стандартной библиотеке начиная с с++11.
https://en.cppreference.com/w/... tring/stol

Добавлено через 5 минут
CodeKing, о том, как включить поддержку стандарта с++11 и следующих, читайте в соответствующей теме раздела
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
Если не получится, или возникнут вопросы, можете попробовать посмотреть обсуждение https://www.cyberforum.ru/faq/thread1931022.html или задать вопрос в новой теме для обсуждения возниквших у Вас проблем
0
67 / 1 / 0
Регистрация: 07.11.2019
Сообщений: 56
09.11.2019, 22:13  [ТС]
politoto, Спасибо большое за помощь.

Добавлено через 1 минуту
politoto,А вы не знаете,можно ли использовать эту функцию в Си?
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.11.2019, 22:57
В Си есть аналогичная strtol()
https://en.cppreference.com/w/c/string/byte/strtol
Обычно она и вызывается из с++ной
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.11.2019, 22:57
Помогаю со студенческими работами здесь

Калькулятор с++
Я понимаю было 100500 тем, но не могу найти нужное мне:( Задание: Напишите простую программу-калькулятор, организовав ее код в виде...

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

Калькулятор
На форуме наткнулся на тему &quot;Римский калькулятор&quot;. Вот код: Functions.cpp #include&lt;iostream&gt; const int arabar = { 1, 4, 5, ...

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

калькулятор
необходимо написать программу калькулятора, который будет выполнять 4 операции + - * /. причем на экране монитора будут отображаться эти...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru