Возведение произведений в степень
|
|
masb8ly-GC | Дата: Суббота, 26 Ноября 2011, 23:01 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Здравствуйте! Пишу программу для возведения произведений в степень. Функция для возведения отдельных чисел в степень уже написана, но я не могу реализовать возведение произведения в степень. Как это сделать? Надеюсь получить ответ. Заранее спасибо!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
фЕномен | Дата: Суббота, 26 Ноября 2011, 23:06 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| (x*y)^z? Oo
Mugen For All - Русскоязычное сообщество пользователей движка M.U.G.E.N.
|
|
| |
masb8ly-GC | Дата: Суббота, 26 Ноября 2011, 23:27 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Я имею ввиду как это реализовать? Как я понимаю необходимо разбить выражение на отдельные элементы, если элемент число - возвести его в степень, если символ - добавить приписку ^z. Далее необходимо будет восстановить выражение, распознать формулу и выполнить необходимые вычисления. Но если распознавание формулы немного понятно, то до этого момента все темный лес1
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
SWFcreator | Дата: Воскресенье, 27 Ноября 2011, 00:18 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Свою функцию без стандартных функций? Добавлено (27.11.2011, 00:18) --------------------------------------------- В паскале я нуб, но меня учили делать это так: exp(lg(произведение) * степень)
|
|
| |
noTformaT | Дата: Воскресенье, 27 Ноября 2011, 00:25 | Сообщение # 5 |
Ukrainian independent game developer
Сейчас нет на сайте
| Посмотри что такое "ПОЛИЗ", он же "ОБРАТНАЯ ПОЛЬСКАЯ НОТАЦИЯ" )))) Если в двух словах, то это безскобочное представление формулы...
@noTformaT
|
|
| |
masb8ly-GC | Дата: Воскресенье, 27 Ноября 2011, 02:05 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| SWFcreator, учили вас самой примитивной функции. Моя тоже изначально выглядела как Exp(y*Ln(Abs(x))). На счет Обратной Польской Нотации сейчас посмотрю. Спасибо!)
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
Сообщение отредактировал masb8ly-GC - Воскресенье, 27 Ноября 2011, 02:51 |
|
| |
SWFcreator | Дата: Воскресенье, 27 Ноября 2011, 02:29 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Quote учили вас самой примитивной функции наверно так и есть, недели 2 - 3 назад начали на парах Паскаль учить.
|
|
| |
masb8ly-GC | Дата: Воскресенье, 27 Ноября 2011, 02:35 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Эх мне бы в моем 8 классе кто-нибудь на парах по рассказывал)
noTformaT, почитал про ПОЛИЗ разобрался как работает и написал программу для перевода из обычного выражения в польскую инверсионную запись, но возник вопрос как же теперь восстановить формулу обратно?
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
Сообщение отредактировал masb8ly-GC - Воскресенье, 27 Ноября 2011, 02:49 |
|
| |
TimKruz | Дата: Вторник, 29 Ноября 2011, 13:23 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Что-то я всю тему прочитал, но ничего не понял. Что сложного в том, чтобы перемножить два числа и возвести результат в степень? Кажется, в Паскале есть стандартная функция степени... Тем более, ты говоришь, что распознование понимаешь (как я понял, делаешь калькулятор?). Просто интересно понять проблему; может, что-то подскажу.
|
|
| |
noTformaT | Дата: Вторник, 29 Ноября 2011, 13:33 | Сообщение # 10 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (TimKruz) Что-то я всю тему прочитал, но ничего не понял. Что сложного в том, чтобы перемножить два числа и возвести результат в степень? как я понял автору дают строку выражения, типа 1+1. ему надо найти результат... потом дают строку с выражением по серьезнее, типа (1+1)^12... потом дают еще по серьезнее, типа cos(12 / pi) + sin(10 * pi / 20) * tg(pi).... Тоесть, вне зависимости от введенного выражения (будь то оно простое, или сложное), программе автора надо парсить выражение и находить результат.... Самое простое решение - ПОЛИЗ Он используется в 99% калькуляторов...
Именно так я понял его вопрос.... Но, я могу ошибаться....
Quote (masb8ly-GC) но возник вопрос как же теперь восстановить формулу обратно? ммм, если у тебя есть строка с выражением, то почему бы не пользоваться ей?
@noTformaT
|
|
| |
masb8ly-GC | Дата: Вторник, 29 Ноября 2011, 13:43 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| Ну пока я делаю не калькулятор, а конкретный модуль для возведения в степень. Немного не так как вы сказали noTformaT, но близко. Принцип такой: 1. Вводится выражение 2. Переводится в польскую инверсионную запись 3. Возводится в степень 4. Восстанавливается выражение 5. Парсинг выражения 6. Выполнение нужных операций 7. Выведение результата.
Но 3 шаг скорее всего не будет нужен, так как я действительно понемногу переделываю это в калькулятор!
Quote (TimKruz) Что-то я всю тему прочитал, но ничего не понял. Что сложного в том, чтобы перемножить два числа и возвести результат в степень? Кажется, в Паскале есть стандартная функция степени... Тем более, ты говоришь, что распознование понимаешь (как я понял, делаешь калькулятор?). Просто интересно понять проблему; может, что-то подскажу. В паскале нет стандартной функции для возведения в степень, только в Object Pascal с использованием модуля math есть функция power.
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
Сообщение отредактировал masb8ly-GC - Вторник, 29 Ноября 2011, 13:45 |
|
| |