Двумерные массивы
В двумерном массиве каждый элемент фиксируется номером строки и столбца, на пересечении которых он расположен. Положение элемента в двумерном массиве определяется двумя индексами. Они разделяются запятой. В качестве индексов могут использоваться любые арифметические выражения, константы, переменные. Если арифметическое выражение содержит дробную часть, то при определении индекса она отбрасывается. При появлении отрицательного значения индекса вызывает сообщение об ошибке.
Описание двумерного массива Для определения двумерного массива в программе используется тот же оператор DIM, только при определении размера необходимо указать два индекса – количество строк и столбцов: DIM A(5,7) Данное описание предполагает, что в массиве с именем А будет 5 строк и 7 столбцов.
Обращение к элементам массива При обращении к элементу двумерного массива необходимо указывать два индекса: номер строки и номер столбца Элемент двумерного массива А(3,6) равен 30
Ввод, вывод элементов двумерного массива При заполнении и выводе на экран элементов двумерных массивов необходимо использовать вложенные циклы. Внешний цикл будет определять номер строки, а внутренний номер столбца. For i=a to b For k=c to d … Next k Next i
Примеры программ
Напишите программу формирования и вывода массива произвольного размера так, чтобы каждый последующий элемент, начиная со второго, был больше предыдущего на 5. Первый элемент задайте датчиком случайных чисел.
CLS Dim A(10,10) A(1,1)=int(rnd(1)*100) For k=1 to 10 For m=1 to 10 If k=1 and m=1 then 10 If m=1 and k>1 then A(k,m)=A(k-1,10)+5 else A(k,m)=A(k,m-1)+5 10 next m Next k For k=1 to 10 For m=1 to 10 Print A(k,m); Next m:Print Next k end
Напишите программу формирования и вывода массива размером (6*9), каждые 3 последовательных элемента в строке которого составлены по следующему правилу: 1-ый – числу введенному с клавиатуры 2-ый – удвоенному индексу строки 3-ий – случайному однозначному числу
Dim A(6,9) For k=1 to 6 For m=1 to 9 step 3 Input введите 1 элемент массива;A(k,m) A(k,m+1)=2*k A(k,m+2)=int(rnd(1)*10) Next m Next k For k=1 to 6 For m=1 to 9 Print A(k); Next m:Print Next k
Напишите программу формирования массива размером 5*5 датчиком случайных чисел. Замените в нем нечетные значения элементов максимальными. Выведите исходный массив и измененный массивы.
CLS: Dim A(5,5) For k=1 to 5: for m=1 to 5 A(k,m)=int(rnd(1)*100) Print A(k,m);:Next m:Print:Next k Max=0 For k=1 to 5 For m=1 to 5 If A(k,m)>max then max:=A(k,m) Next m Next k Print Максимальное число массива =;max For k=1 to 5 For m=1 to 5 If A(k,m) mod 2 0 then A(k,m)=max Print A(k,m); Next m Print Next k
Составьте программу формирования одномерного массива из максимальных элементов строк двумерного массива, заданного датчиком случайных чисел.
CLS Dim A(10,10),B(10) For k=1 to 10: for m=1 to 10 A(k,m)=int(rnd(1)*100) Print A(k,m);: Next m: Print: Next k For k=1 to 10: min=A(k,1) For m=1 to 10 If A(k,m)
Напишите программу, которая заполняет первую строку массива размером 2*5 фамилиями врачей, а вторую их специальностями. Определите и выведите по запросу с клавиатуры фамилию нужного специалиста.
Dim A$(2,5) Data Иванов, Петров, Сидорова, Кулаков, Ильин Data окулист, педиатр, стоматолог, кардиолог, лор For m=1 to 2 For n=1 to 5 Read A$(m,n) Print A$(m,n) Next n Print Next m Input Введите специальность врача F$ For m1 to 5 If A$(2,m)=F$ then Print A$(1,m) Next m