Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.006 c
3-81170
KIR
2002-07-03 01:04
2002.07.25
Что за ошибка Paradox


3-81189
Explorer
2002-07-04 11:56
2002.07.25
Login Promt в Database


14-81424
VDen
2002-06-27 09:50
2002.07.25
16 советов программисту, работающему в коллективе.


1-81330
miDDTrich
2002-07-12 17:08
2002.07.25
Не удается создать ActiveX на основе TTreeView (+)


1-81351
Pavel_Man
2002-07-12 00:09
2002.07.25
Различие выполнения dll в Win95/98 и Win2000/NT





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский