Re[4]: Частые вычисления по неопределенной формуле!!!
От: folk Россия  
Дата: 08.05.04 11:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

F>>Конечно приятно считать это фичей, но по существу для калькулятора это дыра.


S>Для этого есть Code Access Security. И можно коду этих выражений так яйца в тиски закрутить, что он даже взгляд кинуть куда не надо не посмеет. Это вам не С++


Может ли это повлиять на производительность вызова?
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[3]: Частые вычисления по неопределенной формуле!!!
От: Воронков Василий Россия  
Дата: 09.05.04 10:51
Оценка:
Здравствуйте, folk, Вы писали:

F>Близкий пример. Когда-то я слабал калькулятор на jscript, который использовал интерпретатор jscript для вычисления введенного мат. выражения, не производя самостоятельный разбор выражения. Так вот, если вместо "1+2" написать например "window.close()", то окно закрывалось.

F>Конечно приятно считать это фичей, но по существу для калькулятора это дыра.

Как ты умудрился это сделать? window — это часть DOM, а не javascript как языка. Или приложение работало в браузере?
Re[4]: Частые вычисления по неопределенной формуле!!!
От: folk Россия  
Дата: 09.05.04 12:28
Оценка: 7 (1)
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, folk, Вы писали:


F>>Близкий пример. Когда-то я слабал калькулятор на jscript, который использовал интерпретатор jscript для вычисления введенного мат. выражения, не производя самостоятельный разбор выражения. Так вот, если вместо "1+2" написать например "window.close()", то окно закрывалось.

F>>Конечно приятно считать это фичей, но по существу для калькулятора это дыра.

ВВ>Как ты умудрился это сделать? window — это часть DOM, а не javascript как языка. Или приложение работало в браузере?


Да, это hta, я его когда-то выкладывал в исходники.
Кстати до сих пор пользуюсь, надо сохранить текст как файл с расширением .hta и запустить. Чтобы увидет хелп надо развернуть окно.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<META NAME="Author" CONTENT="Konstantin A. Echenko, 2002">
<HTML>
<SCRIPT>window.resizeTo(400, 150)</SCRIPT>
<HEAD>
 <TITLE>Calc PRO</TITLE>
 <HTA:APPLICATION ICON="calc.exe">
</HEAD>
<BODY BGCOLOR="buttonface" SCROLL="no">
<FORM ID="form" onsubmit="calc(); return false">
 <INPUT TYPE="text" ID="expr"   STYLE="width:100%">
 <INPUT TYPE="text" ID="result" STYLE="width:100%" READONLY="true">
 <INPUT TYPE="submit" VALUE="=" STYLE="width:100%;color:red">
</FORM>
<SCRIPT>
 form.expr.select();
 function calc()
 {
  try { with(Math) form.result.value = eval(form.expr.value); }
  catch(error) { form.result.value = error.description; }
  form.expr.select();
 }
</SCRIPT>

<TABLE BORDER="0" STYLE="width:100%;font-size:X-Small"><TBODY VALIGN="top">
 <TR>
  <TH COLSPAN="2">Функции</TH><TH COLSPAN="2">Константы</TH>
 </TR><TR>
  <TD><B>abs</B>(<I>x</I>)</TD><TD>Отбрасывает знак</TD>
  <TD><B>E</B></TD><TD>Число <I>e</I>, константа Эйлера</TD>
 </TR><TR>
  <TD><B>acos</B>(<I>x</I>)</TD><TD>Арккосинус</TD>
  <TD><B>LN2</B></TD><TD>Натуральный логарифм 2</TD>
 </TR><TR>
  <TD><B>asin</B>(<I>x</I>)</TD><TD>Арксинус</TD>
  <TD><B>LN10</B></TD><TD>Натуральный логарифм 10</TD>
 </TR><TR>
  <TD><B>atan</B>(<I>x</I>)</TD><TD>Арктангенс</TD>
  <TD><B>LOG2E</B></TD><TD>Логарифм <I>e</I> по основанию 2</TD>
 </TR><TR>
  <TD><B>ceil</B>(<I>x</I>)</TD><TD>Округление вверх</TD>
  <TD><B>LOG10E</B></TD><TD>Логарифм <I>e</I> по основанию 10</TD>
 </TR><TR>
  <TD><B>cos</B>(<I>x</I>)</TD><TD>Косинус</TD>
  <TD><B>PI</B></TD><TD>Число <I>пи</I></TD>
 </TR><TR>
  <TD><B>exp</B>(<I>x</I>)</TD><TD><I>e</I> в степени <I>x</I></TD>
  <TD><B>SQRT1_2</B></TD><TD>Квадратный корень из 0.5</TD>
 </TR><TR>
  <TD><B>floor</B>(<I>x</I>)</TD><TD>Округление вниз</TD>
  <TD><B>SQRT2</B></TD><TD>Квадратный корень из 2</TD>
 </TR><TR>
  <TD><B>log</B>(<I>x</I>)</TD><TD>Натуральный логарифм</TD>
 </TR><TR>
  <TD><B>max</B>(<I>x</I>,<I>y</I>)</TD><TD>Большее из двух чисел</TD>
 </TR><TR>
  <TD><B>min</B>(<I>x</I>,<I>y</I>)</TD><TD>Меньшее из двух чисел</TD>
 </TR><TR>
  <TD><B>pow</B>(<I>x</I>,<I>y</I>)</TD><TD><I>x</I> в степени <I>y</I></TD>
 </TR><TR>
  <TD><B>random</B>()</TD><TD>Случайное число между 0 и 1</TD>
 </TR><TR>
  <TD><B>round</B>(<I>x</I>)</TD><TD>Округление к ближайшему</TD>
 </TR><TR>
  <TD><B>sin</B>(<I>x</I>)</TD><TD>Синус</TD>
 </TR><TR>
  <TD><B>sqrt</B>(<I>x</I>)</TD><TD>Квадратный корень</TD>
 </TR><TR>
  <TD><B>tan</B>(<I>x</I>)</TD><TD>Тангенс</TD>
 </TR>
</TBODY></TABLE>
</BODY>
</HTML>
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re: Частые вычисления по неопределенной формуле!!!
От: naje  
Дата: 03.06.04 09:48
Оценка:
а может у кого-то есть время добавить в С++ вариант компиляцию выражений с помощью гнушного libjit'a
оч интересно посмотреть что получится
(правда лиценция там gpl)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.