555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|||||||||||
1 | |||||||||||
Возможно ли написать калькулятор на D почти в одну строчку?13.03.2015, 00:31. Показов 20003. Ответов 102
Метки нет (Все метки)
Я экспериментировал с типом данных TypeTuple и решил попробовать написать с помощью него простой калькулятор, который смог бы парсить скобки и вычислять значение выражений.
1
|
13.03.2015, 00:31 | |
Ответы с готовыми решениями:
102
Калькулятор в одну строчку Одну строчку немогу написать написать одну строчку кода: Возможно ли на vbs написать калькулятор? |
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
13.03.2015, 04:33 | 21 |
собственно это и требуется от правильного калькулятора.
То есть класс std.rational реализован, работает, но статус этого класса не понятен. Правда проблема, в любом случае сама собой разрешится со временем. Просто хочется ускорить этот процесс.
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
13.03.2015, 04:49 [ТС] | 22 |
Да, этот класс даже не стоит в рассмотрении на включение:
Review_Queue Чтобы ускорить этот процесс, задайте вопрос на dlang.org: "Когда включат std.rational в стандарт?". Поверьте, Александреску прочитает и, может быть... P.S. Видел я, как вы создали тему. Даже не попытались ничего объяснить (даже пользователь, который отлично знает математику, не смог вам помочь). Хотя, может быть, вот оно: std.halffloat
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
13.03.2015, 04:56 [ТС] | 24 |
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
13.03.2015, 05:21 | 25 |
так там же много тем с названием std.rational надо сначала их прочитать, и если нет ответа поднимать тему снова, не вижу смысла плодить темы. Шаблон класса Currencies позволяет мне подождать пока вопрос сам собой утрясётся. Для меня пока тема Проектирование основы для разработки консольных приложений куда важнее.
Добавлено через 13 минут Я реально не понимал, как можно не понять, что мне нужно. Они что валюты никогда не видели? Почему то по названию темы std.rational всем сразу ясно, что нужно получить в итоге. Получается мне нужно было назвать тему std.currency? Как для меня очевидно, что если мы считаем валюту, то нужно создать тип Валюты для начала. программисты там все, а как они деньги считают - великая загадка. я конечно понимаю, они такие богатые, что доли копеек им считать не интересно. Но кого то же должно это интересовать...
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
13.03.2015, 05:35 [ТС] | 26 |
Хорошо, я завтра (т. е. сегодня, учитывая то, что я сутки не спал) прочитаю темы с названием std.rational и расскажу вам, в чём там суть.
0
|
XRuZzz
|
13.03.2015, 06:11
#27
|
0
|
Dennis Ritchie
|
13.03.2015, 15:01
[ТС]
#28
|
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
19.03.2015, 02:09 | 29 |
Старинный юниксовый bc, со своим собственным си подобным dsl. Работает из коробки (по крайней мере должен) в любом линуксе.
1
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||
23.03.2015, 08:49 [ТС] | 30 | |||||
А, может быть, с помощью миксинов можно написать калькулятор в одну строчку? Проблема опять заключается в представлении арифметических операций.
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
23.03.2015, 09:31 | 31 |
Вы слышали что такое разбор выражения? Какие однострочники? Проснитесь уже.
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
23.03.2015, 10:17 [ТС] | 32 |
Думаете, что невозможно в языке программирования создать типы данных, которые смогли бы хранить арифметические знаки?
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
23.03.2015, 12:08 | 33 |
во-первых я не понял к чему этот вопрос, во-вторых я понял что о разборе выражений Вы ничего не слышали.
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
23.03.2015, 12:13 [ТС] | 34 |
Ну про польскую нотацию давно уже знаю, даже как-то программировал.
Так не нужны тогда будут ваши разборы выражений, если будут переменные для хранения арифметических операций.
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
||||||
23.03.2015, 12:52 [ТС] | 36 | |||||
Не знаю, возможно ли реализовать это в каком-нибудь языке программирования, но мне хотелось бы иметь такую возможность:
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
23.03.2015, 13:06 | 37 |
то есть из потока ввода мы извлекаем не буфер байт, а уже готовое к вычислению дерево? Это что за такая фантастика? Попробуйте оттулкнуться что ввод - это буфер с информацией, эту информацию надо разобрать посимвольно/побайтово и на ее основе построить синтаксическое дерево (одним словом - распарсить), а потом это дерево вычислить. Собственно это и есть разбор выражения.
каким образом узнать арность функции, отличить функции от переменных/констант?
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
23.03.2015, 13:20 [ТС] | 38 |
0
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
23.03.2015, 13:32 | 39 |
Я Вам кое-что поясню. Написать калькулятор это - разработать интерпретатор математический выражений. С этого и начинается реализация языков, т.к. математическое выражение это выражение на языке математики. Т.е. Вы отделяя математический язык от любого другого глубоко ошибаетесь.
0
|
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
|
|
23.03.2015, 13:39 [ТС] | 40 |
Так я и хотел именно это сказать, что нужно в компилятор встроить интерпретатор, который будет "маслать, якобы в compile time" арифметические выражения, если используется ключевое слово, например, arifm. В компилятор D уже встроен (раньше я думал, что он разделён с компилятором, а потом прочитал в книге Александреску) интерпретатор, который облегчает вычисления в compile time.
0
|
23.03.2015, 13:39 | |
23.03.2015, 13:39 | |
Помогаю со студенческими работами здесь
40
Js в одну строчку перевести одну строчку на с++ Перевести одну строчку с С++ в С Текст в одну строчку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |