![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| IUser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 22.3.2007 Репутация: нет Всего: нет |
Пдскажите как решить следующую задачу?
1. Калькулятор. Написать консольное приложение, выполняющее простые арифметические действия и функции. Приложение читает выражения со стандартного входного потока и выводит значение выражения в стандартный выходной поток. Выражения могут содержать целые и дробные числа, скобки, унарные (‘+’, ‘-‘) и бинарные (‘+’, ‘-‘, ‘*’, ‘/’) операторы и функции (напр. abs(), pow() – степень). Функции могут принимать определенное число аргументов: 1 (например sin(x)), 2 (например pow(x, y) и т.д. Некоторые функции допускают любое число аргументов (напр. max(1, 2), max(1, 2, 3, 4, 5)). Функции, которые должны быть реализованы: abs(x) – абсолютная величина sqrt(x) – квадратный корень min(x,y,…), max(x,y,…) – минимум и максимум из двух или более аргументов round(x) – округление pow(x,y) – x в степени y Приложение должно уметь работать с любыми функциями из списка, корректно обрабатывая неправильное использование. Примеры: abs(-10) * (12 + max(1,4,0)) 160 12 + abs(-10, 3) Error: incorrect number of parameters for function “abs” 12 * a(-10) Error: unknown function “a” 12 + (max(1,4) Error: “)” expected 12 + PI2 Error: cannot resolve symbol “PI2” abs(-min(200, 220 - sqrt(100))) 200 Каким образом можно распознавать вводимые символы и как потом их сапоставлять с математическими функциями? |
|||
|
||||
| shimopus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: 1 Всего: 1 |
Предлагаю посмотреть в сторону стандартных библиотек математических парсеров. Или, если есть желание, написать нечто подобное самому почитать про Польскую запись математических выражений.
|
|||
|
||||
| IUser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 22.3.2007 Репутация: нет Всего: нет |
Подскажите плиз. как эти библиотеки называются и где их можно найти.
|
|||
|
||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ну, приплыли. А как вообще узнать, то ввели? Как это сохранить где-то в памяти? Как вывести куда-нибудь? Не проще ли сначала найти какую-нибудь книжку и хотя бы пролистать её? А по задаче - поищи исходники какого-нибудь консольного калькулятора и смотри, как там сделано. Добавлено через 1 минуту и 28 секунд
Найти их можно в жабадоке. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| CrasyMen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
В 6 jdk появилась возможность запускать(parsit') javascript. Вот там страку можно подс4итать "(3^7)*5+8".
|
|||
|
||||
| CrasyMen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
И где оно такое есть? Я пересмотрел все класы в 6 jdk, в которых в названии присутствует "pars". Не нашол ничего подходящего.
А можно пример -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
| Tony |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Както для себя налобал. Если 4то пиши Добавлено через 3 минуты и 35 секунд Там есть возможность ешё без файла а просто строку передать и парсер распарсит есё. |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |