Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
7-81500
ProNix
2002-05-08 18:01
2002.07.25
Нужен регистратор клавиш


1-81221
Yurko
2002-07-10 03:57
2002.07.25
ClipBoard


3-81182
str
2002-07-04 17:21
2002.07.25
Названия полей по-русски. Корректно-ли это?


7-81499
limon
2002-04-30 18:59
2002.07.25
Shell: Замена Explorer на что-либо другое


1-81218
MARcoDEN
2002-07-14 10:33
2002.07.25
Как вытаскивать определенное значение из HTML страницы