Форум: "Потрепаться";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизIs this Pascal? Найти похожие ветки
← →
VuDZ (2002-06-26 19:58) [0]можно ли в чистом паскале или Делфи наисать такое:
Equity :=
If(ClosePosition, -Commission, PMYSSiTD) +
Cum(If(ClosePosition, PMYSSiTD, 0));
TrendsQty :=
If(Ref(Bull, -2) = 1 AND Ref(Bull, -1) = 0,
Cum(If(Ref(Bull, -2) = 1 AND Ref(Bull, -1) = 0, 1, 0)) ,0) -
If(Ref(Bear, -2) = 1 AND Ref(Bear, -1) = 0,
Cum(If(Ref(Bear, -2) = 1 AND Ref(Bear, -1) = 0, 1,0)), 0);
....
If(Plot=1, TP,
If(Plot=2, PMYSSiTD,
If(Plot=3, MidMidPMYSSiTD,
If(Plot=4, CumMidPMYSSiTD,
If(Plot=5, Equity,
TrendsQty)))))
Это вообще имеет смысл?
Просто я сейчас переделываю под себя одну систему, и там используетвся вот такой вот язык...
← →
Anatoly Podgoretsky (2002-06-26 20:03) [1]Смысл имеет, но в Паскале нельзя. Оператор If работает с логическими выражениями, это должна быть или функция, или константа, или переменная, или составное выражение, главное ччто бы результат был логического типа. Тебе надо разобраться, что делается в скобках и написать свои функции эмуляторы данного языка
← →
VuDZ (2002-06-26 20:08) [2]с точки зрения С, тут всё правильно, но я вот не могу понять смысла
If(Ref(Bull, -2) = 1 AND Ref(Bull, -1) = 0 , Cum(
Если бы было что-то вроде if (true) cum() - if (true) cum(), то смахивало бы на С, но так...
И никакой доки нет...
Это покруче Сишного... ? ... : ...
← →
Cobalt (2002-06-26 21:13) [3]>Это покруче Сишного ... ? ... : ...
Нет, это "стандартная фишка" C++ - операторы, разделенные запятыми, выполняются по очереди, а возвращается результат последнего оператора.
Богат и могуч, однако...
← →
VuDZ (2002-06-26 22:25) [4]я это знаю, так как и пишу на С/С++, меня интерисует применительно к Паскалю, так как смесь С и паскаль не есть гут
← →
vuk (2002-06-27 00:00) [5]>с точки зрения С, тут всё правильно, но я вот не могу понять
>смысла
>If(Ref(Bull, -2) = 1 AND Ref(Bull, -1) = 0, Cum(
В данном случае символ "=" - операция сравнения и если понимать первый аргумент if как логическое выражение, то паскалевский эквивалент примерно такой
if (Ref(Bull, -2) = 1) AND (Ref(Bull, -1) = 0) then ...
А вообще говоря, immediate if иногда удобен, но злоупотреблять этим тоже не стоит.
← →
VuDZ (2002-06-27 00:10) [6]а как понимать это:?
Equity :=
If(ClosePosition, -Commission, PMYSSiTD) +
Cum(If(ClosePosition, PMYSSiTD, 0));
проблема в том, что переменные ни как не описаны, они определяются в момент запуска, и получается что к bool прибавляется nonBool, что возможно на С++, но врят ли на Паскале...
или есть какие-то фичи Паскаля, которых я нге знаю.
← →
Viewer (2002-06-27 00:19) [7]Думаю, что в данном случае речь идет не о логических результатах, а о численных
Equity: int; // float
Commission,PMYSSiTD: int; //float
← →
vuk (2002-06-27 00:27) [8]Предположим, что ClosePosition - переменная типа boolean или функция возвращающая boolean. Тогда получается что-то типа того:
if ClosePosition then
Equity := -Commission + Cum(PMYSSiTD)
else
Equity := PMYSSiTD + Cum(0);
P.S. Все-таки это не чистый паскаль... Возможно какой-то его диалект... Или вообще что-то другое с паскалеподобным синтаксисом...
← →
VuDZ (2002-06-27 00:33) [9]1. ClosePosition() должно возвращать int, дае точне float
2. Пошёл ка я искать доку по этому паскалевдному извращению...
2Merlin or Moders - kill this node, please.
← →
Viewer (2002-06-27 01:04) [10]Во всяком случае это не Оберон и не Eiffel
← →
Voldemar (2002-06-27 01:29) [11]А это не Modula2 часом? Что больно знакомое...
← →
copyr25 (2002-06-27 03:09) [12]Я долго читал, читал..
Хорошо, Voldemar © (27.06.02 01:29) подсказал!
Точно, Модула-2.
И тоже, как и Паскаль, Niklaus Wirth придумал:))
← →
copyr25 (2002-06-27 03:14) [13]Такой маленький коррект. Уважаемому VuDZ"у...
Я бы так спросил: Is it Pascal?
← →
VuDZ (2002-06-27 09:05) [14]>copyr25
Я бы то же так и спросил... Да уже так написал :>
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c