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

Текстовый калькулятор

05.11.2022, 22:30. Показов 3183. Ответов 3

Author24 — интернет-сервис помощи студентам
нужна помощь с заданием в университете:

Написать калькулятор для строковых выражений вида '<число> <операция> <число>', где <число> - не отрицательное целое число меньшее 100, записанное словами, например "тридцать четыре", <арифметическая операция> - одна из операций "плюс", "минус", "умножить". Результат выполнения операции вернуть в виде текстового представления числа. Пример calc("двадцать пять плюс тринадцать") -> "тридцать восемь"
Оформить калькулятор в виде функции, которая принимает на вход строку и возвращает строку.
Заранее спасибо за помощь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2022, 22:30
Ответы с готовыми решениями:

Задача по Python Текстовый калькулятор
Прошу помощи в задаче, начал решение, но совершенно не знаю как выполнить до конца её. Заранее...

Текстовый калькулятор
Нужна помощь с заданием: Написать калькулятор для строковых выражений вида '&lt;число&gt; &lt;операция&gt;...

Текстовый калькулятор
Помогите с задачей. Есть файл calc.txt, в котором хранятся записи вида 100 + 34 23 / 4 то...

Текстовый калькулятор
Доброго времени суток. Мне было дано следующее задание: Сделайте текстовый калькулятор Пусть у...

3
Эксперт Python
8213 / 4333 / 1837
Регистрация: 27.03.2020
Сообщений: 7,154
06.11.2022, 02:03 2
Лучший ответ Сообщение было отмечено Ramdy как решение

Решение

Как вариант
Python
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
s = 'тринадцать умножить восемьдесят восемь'
dct_1 = {v: k for k, v in enumerate('один два три четыре пять шесть семь восемь девять десять одиннадцать двенадцать тринадцать четырнадцать пятнадцать шестнадцать семнадцать восемнадцать девятнадцать'.split(), 1)}
dct_10 = {v: 10*k for k, v in enumerate(' двадцать тридцать сорок пятьдесят шестьдесят семьдесят восемьдесят девяносто'.split(), 2)}
dct_100 = {v: 100*k for k, v in enumerate('сто двести триста четыреста пятьсот шестьсот семьсот восемьсот девятьсот'.split(), 1)}
dct_1000 = {v: 1000*k for k, v in enumerate('одна тысяча,две тысячи,три тысячи,четыре тысячи,пять тысяч,шесть тысяч,семь тысяч,восемь тысяч,девять тысяч'.split(','), 1)}
dct_ = {'плюс': '+', 'минус': '-', 'умножить': '*'}
 
dct = {**dct_1, **dct_10, **dct_100, **dct_1000, **dct_}
 
d = 0
for elem in s.split():
    if type(dct[elem]) == int:
        d += dct[elem]
    else:
        res = d
        op = dct[elem]
        d = 0
 
if op == '+':
    res += d 
elif op == '-':
    res -= d 
else:
    res *= d 
 
dct_text = {v: k for k, v in dct.items()}
 
txt = []
if res < 0:
    txt.append('минус')
    res *= -1
elif res == 0:
    txt.append('ноль')
 
k = 1000
while k:
    if res > k-1:
        if res > 20:
            txt.append(dct_text[res//k*k])
            res %= k 
        else:
            txt.append(dct_text[res])
            k = 0
    k //= 10
 
print(' '.join(txt))
2
0 / 0 / 0
Регистрация: 09.10.2022
Сообщений: 2
06.11.2022, 16:36 3
подскажите пожалуйста, за что отвечают строки с 35 по 44?
0
Эксперт Python
8213 / 4333 / 1837
Регистрация: 27.03.2020
Сообщений: 7,154
06.11.2022, 16:56 4
wrldofcrona, "переводят" разряды числа в текст
0
06.11.2022, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2022, 16:56
Помогаю со студенческими работами здесь

Текстовый калькулятор
Нужно написать текстовый калькулятор. Суть: вводится строка типа 2+4*(5-3)/8 и затем высчитывается...

Текстовый калькулятор
Доброго времени суток! Идея такая: в Edit вводится строка, типа 3+5*(sqrt(4)-2,2)/3, нажимается...

Комментарии к листингу (калькулятор, текстовый редактор)
Напишите пожалуйста комментарии к строкам листинга.

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; ...

Подраздел «Калькулятор» (выводится при установке плагина «калькулятор», возможность редактировать параметры че
Подраздел «Калькулятор» (выводится при установке плагина «калькулятор», возможность редактировать...

Почему данная программа на языке ассемблера создаёт текстовый файл, которые не может открыть текстовый редактор Mousepad
Пример взят из урока по ссылке: https://ravesli.com/assembler-upravlenie-fajlami/ Я его немного...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru