Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Сохранение математических формул (http://www.flasher.ru/forum/showthread.php?t=91099)

MaxD 24.01.2007 19:06

Сохранение математических формул
 
Можно ли как-нибудь сохранять математические формулы в какой-нибудь объект или каким-нибудь другим образом?
К примеру задается (динамически) формула:
var formula = Math.sin(x) + Math.atan(x/2);
После этого к ней нужно добавить какой-нибудь Math.sqrt и протрейсить при разных х.

Жаль, что нельзя сохранить formula как String, потом заменить все иксы на нужное значение и распарсить...

etc 24.01.2007 19:27

Код:

myFunction = function(x) {
    return Math.sin(x)+Math.atan(x/2);
}
trace(Math.sqrt(myFunction(1)))


firelord 24.01.2007 19:28

формула фиксированная? что значит "добавить какой-нибудь Math.sqrt"? куда добавить? ;)
Код:

var x=...
var formula=Math.sqrt(Math.sin(x) + Math.atan(x/2));

или просто функцию сделать:
Код:

function formula(x:Number):Number {
  return Math.sqrt(Math.sin(x) + Math.atan(x/2));
}
var y=formula(1);
var y=formula(2);
...


firelord 24.01.2007 19:28

опередили меня... :)

MaxD 24.01.2007 19:53

Не фиксированная формула!
Нужно реализовать что-то вроде инженерного калькулятора. То есть при нажатии на кнопку "cos" в формулу добавляется косинус х, а после того, как формула сформирована, подставляем разные значения х.

expl 25.01.2007 03:02

Существует еще генерация функций:
Код:

function mult(f1:Function, f2:Function):Function {
        return function(x):Number {
                return f1(x)*f2(x)
        };
}
var mf:Function=mult(function(x){return 6;}, function(x){return x*x});
trace(mf(2));//(6 * x*x)(2)=24

Впринципе по нажатии определенной кнопки можно наращивать текющую функцию какими угодно действиями, можно даже функцию от функции брать - f1(f2(x))


Часовой пояс GMT +4, время: 15:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.