Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Заполнение массивов значениями



В QB отсутствуют операции обработки массивов в целом. Для выполнения операции над массивом необходимо перечислить операции, выполняемые над каждым его элементом.

Элементы массивов получают значения с помощью операторов ввода или присваивания, как простые переменные.

· Заполнение с клавиатуры

DIM A (1 to 25) FOR i=1 TO 25 PRINT “Введите ”; i; “элементмассиваА” INPUT A(i) NEXT i

· Заполнение с использованием операторов DATA и READ:

DATA 20, 30, 40, 50, 80, 90, 12, 45, 33, 8, 27, 44 DIM B%(1 to 12) FOR i=1 TO 12 READ B%(i) NEXTi

· Заполнение с помощью оператора присваивания с использованием стандартных функций:

Option Base 1 DIM C(100) as single FOR i=1 TO 100 C(i)=RND(1) NEXTi

Выполнение приведенной программы несколько раз приводит к получению одной и той же последовательности чисел, которая была раньше, т.е. функция RND генерирует псевдослучайные числа.

Поэтому перед использованием функции RND в программе необходимо случайным образом определить место в этой последовательности, начиная с которого будут выбираться эти числа. Для этой цели используется оператор рандомизации.

Randomize [m%]

где m% - число, используемое для запуска генератора случайных чисел.

Оператор Randomizeнужно помещать в начале программы. Если аргумент опущен, то на экран выдается сообщение для ввода любого числа (-32768 to 32767).

Для обеспечения истинной случайности необходимо, чтобы это число при каждом запуске программы было разным. Для этого используется встроенный счетчик времени – функция Timer. Эта функция не имеет аргументов ивозвращает текущее значение времени в секундах с точностью 0,01 сек.Поэтому оператор рандомизации будет иметь следующий вид:RandomizeTimer

Для получения случайного числа из диапазона [a, b] с равномерным законом распределения используется формула:

x=Rnd*(b-a+1)+a

Окончательно программа по заполнению одномерного массива случайными целыми числами из диапазона [a, b] выглядит так:

Dim C(1 to 25) as Integer, i as Integer Input “a=”,a Input “b=”,b Randomize Timer For i=1 to 25 C(i)=Int(Rnd*(b-a+1)+a) Next i

Для заполнения двумерного массива необходимо организовать вложенные циклы. Например, внешний по номеру строки, а внутренний по номеру столбца:

DIM C(1 to 5,1 to 3) FOR i=1 TO 5 FOR j=1 TO 3 INPUT C(I,J) NEXT j NEXT i Dim C(1 to 5, 1 to 3) as Integer Input “a=”,a Input “b=”,b Randomize Timer FOR i=1 to 5 FOR j=1 to 3 C(i,j)=Int(Rnd*(b-a+1)+a) NEXT j NEXT i




Дата публикования: 2015-09-17; Прочитано: 229 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...