Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Математические формулы [2]
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Математические формулы

Страниц (2): « 1 [2]
 

16. EuGen - 23 Июня, 2008 - 15:54:31 - перейти к сообщению
Код все равно желательно проверять.
17. Djin_dj - 23 Июня, 2008 - 15:55:55 - перейти к сообщению
EuGen пишет:
Код все равно желательно проверять.

и все таки как eval сделать так чтобы сумму вывел?
18. EuGen - 23 Июня, 2008 - 16:29:55 - перейти к сообщению
Ну так а в чем проблема?
Предположим, $strCode - строка, полученная после замены всех имен параметров на их значения.
Тогда
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. eval("$result=".$strCode);
  4. ?>
  5.  

Приведет к тому, что в основном скрипте появится переменная $result, значение которой и будет значением Вашей формулы.
19. Djin_dj - 23 Июня, 2008 - 16:49:08 - перейти к сообщению
EuGen пишет:
Ну так а в чем проблема?
Предположим, $strCode - строка, полученная после замены всех имен параметров на их значения.
Тогда
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. eval("$result=".$strCode);
  4. ?>
  5.  

Приведет к тому, что в основном скрипте появится переменная $result, значение которой и будет значением Вашей формулы.

Спасибо, буду пробовать!
20. Djin_dj - 24 Июня, 2008 - 10:41:17 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $calculator = "$Parametr_1/((1+$Parametr_2*($Parametr_6/$Parametr_5))*pow((1+$Parametr_2/$Parametr_4),($Parametr_4*$Parametr_3))*(1+$Parametr_2*($Parametr_7/$Parametr_5)))";
  4. $Parametr_1 = 1;
  5. $Parametr_2 = 1;
  6. $Parametr_3 = 1;
  7. $Parametr_4 = 1;
  8. $Parametr_5 = 1;
  9. $Parametr_6 = 1;
  10. $Parametr_7 = 1;
  11. eval("\$calc=\"$calculator\";");
  12. echo $calc; // выдает 1/((1+1*(1/1))*pow((1+1/1),(1*1))*(1+1*(1/1))) чего дальше?
  13. ?>
  14.  
21. EuGen - 24 Июня, 2008 - 10:56:28 - перейти к сообщению
Вот пример. Параметры заключены в двойные фигурные скобки.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $calculator = '{{param1}}/pow({{param2}}, {{param3}})';
  4. $calculator=str_replace("{{param1}}", "1", $calculator);
  5. $calculator=str_replace("{{param2}}", "1", $calculator);
  6. $calculator=str_replace("{{param3}}", "1", $calculator);
  7. eval("echo($calculator);");
  8. echo $calc;
  9. ?>
  10.  
22. Djin_dj - 24 Июня, 2008 - 11:09:35 - перейти к сообщению
Спасибо, все получилось, тогда если будет полезно, могу скрипт обработки математических формул куда-нить кинуть, может кому-нить для калькуляторов понадобиться
23. EuGen - 24 Июня, 2008 - 11:21:42 - перейти к сообщению
Выкладывайте, конечно, раздел "Пользовательские функциии"
24. Djin_dj - 25 Июня, 2008 - 17:00:01 - перейти к сообщению
Доброго вечера!
И есчо одна вещь - начал отладку, как отследить деление на ноль devision by zero if (eval("echo $x;") == true) - покатит?

 

Powered by ExBB FM 1.0 RC1