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