среда, 9 февраля 2011 г.

Small basic - массив

Для меня образ массива это excel табличка.
Например Лист1[A][1]=500 
Лист1 - название массива
[А][1] - индексы по вертикали и горизонтали
500- значение ячейки
В Small Basic задается так же 
имя массива [i] = N
Значения заносятся через циклы, как я понимаю. 


Небольшой пример. Мне нужна была программа, создающая массив биржевых цен (открытие, максимум, минимум, закрытие) и вычисляющее максимум и минимум массива. 


LJW288 - код для импорта



'ввод начальных условий
TextWindow.WriteLine("Сколько периодов нужно рассчитать?")
x=TextWindow.Read()
TextWindow.WriteLine("Начальная цена?")
open[0]=TextWindow.Read()
TextWindow.WriteLine("Введите волатильность(изменчивость) цен?")
vol=TextWindow.Read()
vol2=vol 'нужно для того, чтобы цены не ушли в отрицательную область
max=open[0]'нужен для вычисления максимума
min=open[0]'нужен для вычисления минимума
'создание массива
For i = 1 To X
  open[i] = open[i-1]-Math.GetRandomNumber(vol)+Math.GetRandomNumber(vol2)
  close[i] = open[i]-Math.GetRandomNumber(vol)+Math.GetRandomNumber(vol2)
  If (close[i]>open[i]) Then
    high[i] = close[i] + Math.GetRandomNumber(vol)
    low[i] =open[i] - Math.GetRandomNumber(vol)
  Else
    high[i] = open[i] + Math.GetRandomNumber(vol)
    low[i] =close[i] - Math.GetRandomNumber(vol)
  Endif
  If (open[i]>(open[0]/4)) Then 'нужно для того, чтобы цены не ушли в отрицательную область
    vol2=vol
  Else
    vol2=vol*2
  EndIf
  If (high[i]>max) Then 'вычисление максимума
    max=high[i]
  EndIf
  If (low[i]<min) Then ' вычисление минимума
    min=low[i]
  Endif
EndFor
'сейчас будет условие видимости для массива
TextWindow.WriteLine("Вывести массив? (1-если да)")
massivvisible=TextWindow.Read()
If (massivvisible=1) Then
  For i = 1 To X  
    TextWindow.Write(open[i] + "  ")
    TextWindow.Write(high[i] + "  ")
    TextWindow.Write(low[i] + "  ")
    TextWindow.WriteLine(close[i] + "  ")
  EndFor
EndIf
TextWindow.Write("минимум цены " + min + " ")
TextWindow.WriteLine("максимум цены " + max + "  ")

Комментариев нет:

Отправить комментарий