Javascript.RU

 
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.05.2009, 16:21
Igor
 
Сообщений: n/a

Просмотр массива
Суть моей задачи в следующем. Есть заранее отобранный набор акций (300-500 шт.). Есть брокерская система, которая импортирует эти данные. Эта система использует встроенный язык – EFS. Это усеченная версия JavaScript. В отдельно написанной мною программе эти акции должны быть проверенны на определенные условия и, при совпадении условий выдается список тиккеров (наименований) акций, удовлетворяющих поставленным условиям.
Программу такую я написал, но столкнулся со следующей проблемой. В EFS есть на встроенные в нее функции ограничения на индекс – он не должен быть больше 5. То есть в цикле я не могу просматривать более 6 элементов массива. Поясню на примере.
Структура (логическая) программы следующая.
function preMain() {
………
var sSymbol;
var Per;
………
sSymbol=new Array("A","ABT,………………,"APA","APD");
Per=60;
………
function main() {
………
for(var i = 0; i <= 5; i++)
{
………
MAX3Buy = (1)*(
open(0,sym(sSymbol[i],inv(Per))) <= close(0,sym(sSymbol[i],inv(Per)))
);
………
if(MAX3Buy == 1)
{{Alert.addToList(sSymbol[i],close(0,sym(sSymbol[i],inv(Per))),Color.black, Color.black);}}

……..
}
return
}
Так вот, массив sSymbol может насчитывать 300-500 элементов. В цикле, если указывается для i число более 5, выдается ошибка, что индекс функции close(0,sym(sSymbol[i],inv(Per))) (это цена закрытия выбранной акции) или тому подобные функции EFS не могут иметь индекс более 5 (т.е. 6 элементов массива, начиная с 0). Как обойти это ограничение и организовать просмотр всего массива (300-500 шт.), я не знаю. Может использовать для построения нового массива методы Array, такие как shift() или slise()? Пробовал, не получилось. Скорее всего, я неправильно прописывал эти операторы.
Не могли бы Вы мне помочь организовать в вышеуказанной структуре проверку элементов всего массива sSymbol (300-500 шт) на выполнение указанных условий при ограничении того, что индекс i в встроенных функциях EFS не должен превышать 5
Заранее благодарю,
Игорь (IgorAR@yandex.ru)
  #2 (permalink)  
Старый 20.05.2009, 16:54
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

не, мне это нравится.
человек пришел просто с дикой проблемой, с каким-то диким языком, о котором наверняка никто кроме него тут не знает(в гугле по первым ссылкам совсем другое)
и вместо того, чтобы читать тут ответы, оставил мыло.

Уважаемый Igor, но в таком ключе навряд ли кто-то тут сможет помочь с проблемой.
тут нету людей способных телепатически придумывать код под корявый интепретатор корявого языка, не зная всех его особенностей, и не имея возможности повозится с интепертатором.
Даже если вы прдоставите все данные в виде интепретатора, входных данных, и обрабатывающего их кода, то это в любом случае тянет на раздел "работа"
PS может быть в этом языке будет работать метод pop()
только не спрашивайте меня как с ним работать-гугл знает
  #3 (permalink)  
Старый 20.05.2009, 17:26
Igor
 
Сообщений: n/a

Уважаемый Профессор, если я Вас оскорбил своим вопросом, прошу прощения! Я первый раз на этом форуме и обратился в рубрику "Я-новичок". Я действительно чайник в программировании. А суть моей проблемы - организовать правельно цикл с использованием операторов JavaScript, который я самостоятельно не могу сделать. Поэтому обратился к Вам - Спецам.
  #4 (permalink)  
Старый 20.05.2009, 17:38
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Igor
организовать правельно цикл с использованием операторов JavaScript
ваш цикл правильный и использует операторы JS
что делать с ваши недоязыком, не позволяющим использовать крупные массивы, я понятия не имею.
предположил что метод pop() сработает.
попробуйте его
строить дальнейшие предположения, учитывая, что я понятия не имею какие "сокровища" таятся в этом языке, просто бессмысленно. можно предположить кучу вариантов, и все они могут оказатся неправильными.
с учетом того, как работает форум, проблему в режиме "код"-"отчет о его неработоспособности", и повтор, можно решать долго и не решить.
именно поэтому я и предложил вам обратится в раздел работа, и если найдется исполнитель, выдать ему образец интепретатора вашего языка

а возмутился я прежде всего, из-за того что я считаю наглостью публиковать свое мыло в ожидании, что скучающие и добрые профессионалы кинутся туда к вам решать вашу проблему.
если уж пришли на форум, то проявляйте уважение.
ожидание, что вам кто-то чего-то должен, или станет делать, ьез ваших на то усилий -- напрасно
  #5 (permalink)  
Старый 20.05.2009, 18:00
Igor
 
Сообщений: n/a

Уважаемый Профессор, спасибо за совет с методом pop(). Я пробывал с Shift(). Он работает. Но я не знаю, как их завязать в цикл - выдает только одно значение. Просмотрел кучу литературы - не нашел. Я, к большому сожалению, не программист.
P.S. А по поводу мыла - уважая Ваше внимание, думал в личке будет скромнее с моей стороны не беспокоить остальных своей перепиской.
  #6 (permalink)  
Старый 20.05.2009, 18:01
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Gvozd
а возмутился я прежде всего, из-за того что я считаю наглостью публиковать свое мыло в ожидании, что скучающие и добрые профессионалы кинутся туда к вам решать вашу проблему.
Другими словами: ответ должен быть доступен всем.
  #7 (permalink)  
Старый 21.05.2009, 13:32
Igor
 
Сообщений: n/a

Уважаемый Профессор или кто-нибудь из уважаемых Спецов ответьте пожалуйста на вопрос!!!
В конструкции программы

function main() {
for(var i = 0; i <= 11; i++)
{
sSymbol = ["A","ABT","ABX","ACI","AFL","AGP","AIZ","AMT","AMX ","ANR","APA","APD"];

var sSymb = sSymbol.pop();

MAX3 = (1)*(open(0,sym(sSymb,inv(Per))) >= 0);

if(MAX3 == 1)
{{Alert.addToList(sSymb,close(0,sym(sSymb,inv(Per) )), Color.black, Color.black);}}

}
return
}

при использовании метода pop() выдается только один (последний - APD) символ? Почему последовательно не выдаются остальные? В чем ошибка?
Помогите мне, пожалуйста!!!
  #8 (permalink)  
Старый 21.05.2009, 16:52
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

pop удаляет последний и возвращает его, если не true, то ошибка в интерпретаторе
p.s. в данном случае скорее shift подошло бы: проход по массиву вроде изначально был от начала к концу
  #9 (permalink)  
Старый 21.05.2009, 16:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Массив на каждой итерации цикла переопределяется.
  #10 (permalink)  
Старый 21.05.2009, 16:59
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ой, не заметил
 


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просмотр профиля imant Общие вопросы Javascript 1 06.05.2009 23:24
Помогите решить задачку---Найти сумму элементов массива uniQ Общие вопросы Javascript 3 02.05.2009 01:20
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01
Просмотр передаваемых данных через AJAX Гость AJAX и COMET 3 04.08.2008 14:34