|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
Пытаюсь определить макcимум на графике.
Извлек из массива три последовательных значения:
Код: |
Max1=Ref(graph,0);
//_TRACE("Y1 = " + Max1);
Max2=Ref(graph,-1);
//_TRACE("Y2 = " + Max2);
Max3=Ref(graph,-2);
//_TRACE("Y3 = " + Max3); |
для такого графика:
Код: |
Y2
/\
/ \
/ \
/ \
/ Y1
/
/
Y3
|
Макcимум определяется если:
Y2-Y3>0 и Y1-Y2<0
Для проверки этих условий пишу строчку:
Код: |
gen_m=IIf(((Max2-Max3)>0 AND (Max1-Max2)<0),True,False); |
Вот тут начинается проблема: значение gen_m у меня постоянно 0.
Проверял по отдельности условия (Max2-Max3)>0 и (Max1-Max2)<0
По отдельности все правильно получается: и значение 1 получаю и 0, где надо.
В чем может быть проблема?
Честно говоря не совсем понятно, как можно сравнивать массивы?
(я имею ввиду Max1, Max2 и Max3) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
commenced
Советник
Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"
|
Torino писал(а): |
Пытаюсь определить макcимум на графике.
Извлек из массива три последовательных значения:
Код: |
Max1=Ref(graph,0);
//_TRACE("Y1 = " + Max1);
Max2=Ref(graph,-1);
//_TRACE("Y2 = " + Max2);
Max3=Ref(graph,-2);
//_TRACE("Y3 = " + Max3); |
для такого графика:
Код: |
Y2
/\
/ \
/ \
/ \
/ Y1
/
/
Y3
|
Макcимум определяется если:
Y2-Y3>0 и Y1-Y2<0
Для проверки этих условий пишу строчку:
Код: |
gen_m=IIf(((Ref(graph,-1)-Ref(graph,-2))>0 AND (graph-Ref(graph,-1))<0),True,False); |
Вот тут начинается проблема: значение gen_m у меня постоянно 0.
Проверял по отдельности условия (Max2-Max3)>0 и (Max1-Max2)<0
По отдельности все правильно получается: и значение 1 получаю и 0, где надо.
В чем может быть проблема?
Честно говоря не совсем понятно, как можно сравнивать массивы?
(я имею ввиду Max1, Max2 и Max3) |
Код: |
gen_m=IIf(graph>ref(graph,-1) AND graph>ref(graph,1),1,0); |
Не понятно как ты получаеш массив graph, но если там косяков нет то будет работать. |
_________________ Юра |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail |
|
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
|
Посмотреть профиль Отправить личное сообщение |
|
Torino
Зарегистрирован: 27.01.2009
Сообщения: 72
|
Проблема была в несогласовании типов аргументов.
IIf возвращает массив.
Я этот массив скармливал оператору If.
If не ругался, но с результатом косячил. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |