Двумерные массивы 1. 2. 3. 4. 5. Вид двумерного массива Ввод и вывод двумерного массива Матрица Преобразование матрицы Создание одномерного массива из данного двумерного Вид двумерного массива Двумерный массив представляет собой таблицу однотипных символов. Рассмотрим числовой массив А: Параметры массива: 5 4 -3 0 2 7 -2 0 9 -5 -1 13 26 44 -23 0 -9 12 10 6 -4 8 2 -5 - имя массива: А - размерность массива: двумерный размер массива: (4,6). На первом месте записывается количество строк, через запятую – количество столбцов. Элементы массива: А(2,4)=-5; А(1,5)=2; А(4,3)=-4; …………. Определите значение элементов: Определите имя элементов, значения которых: А(3,5), А(4,2), А(1,3). 44, 0, 12, 7, -5, -1. Формирование двумерного массива Формирование массива происходит по строкам. Сформируем массив А: 5 -2 4 0 -3 9 0 -5 2 -1 7 13 26 44 -23 0 -9 10 6 -4 8 2 Сначала формируются все столбцы первой строки, затем все столбцы второй строки, далее третьей строки и четвертой строки. 12 -5 Рассмотрим задачу: Сформировать и вывести на печать данный массив А. Ввод двумерного массива Ввод двумерного массива, как и ввод одномерного массива осуществляется в цикле. Сначала открываем цикл по i, где i - изменение номеров строк, затем открываем цикл по j, где j - изменение номеров столбцов. Формируем цикл одним из способов. Закрываем циклы в обратном порядке – сначала по j, затем по i. 5 4 -3 0 2 7 -2 0 9 -5 -1 13 26 44 -23 0 -9 12 10 6 -4 8 2 -5 FOR i= 1 TO 6 FOR j= 1 TO 4 READ A(i,j) NEXT j NEXT I DATA 5,4,-3,0,2,7,-2,0 DATA 9,-5,-1,13,26,44,-23 DATA 0,-9,12,10,6,-4,8,2,-5 Вывод двумерного массива Для вывода двумерного массива используются правила: 1. вывод массива осуществляется в цикле; 2. массив можно выводить в цикле формирования массива в том случае, если ввод массива осуществлялся не оператором INPUT; 3. для вывода массива, так же как и для ввода формируются два цикла; 4. при закрытии циклов между операторами NEXT ставится пустой PRINT, чтобы массив выводился в виде таблицы. FOR i= 1 TO 6 FOR j=1 TO 4 PRINT A(i,j); NEXT j PRINT NEXT i Квадратная матрица Двумерный массив, у которого количество строк равно количеству столбцов называют квадратной матрицей. 15 2 3 7 -9 6 16 2 -8 4 -5 0 3 15 23 9 -7 2 -1 17 20 -6 -4 0 5 Говоря о квадратной матрице, мы сталкиваемся с понятиями: элементы главной диагонали (i=j); элементы побочной диагонали (i+j=n+1, n- количество строк или столбцов квадратной матрицы); элементы ниже главной диагонали (i>j); элементы выше главной диагонали (i<j); элементы ниже побочной диагонали (i+j>n+1); элементы выше побочной диагонали (i+j<n+1). Квадратная матрица Пусть дана квадратная матрица: 15 2 3 7 -9 6 16 2 -8 4 -5 0 3 15 23 9 -7 2 -1 17 20 -6 -4 0 5 Элементы главной диагонали: 15,16,3,-1,5. Элементы побочной диагонали: -9,-8,3,-7,20. Элементы выше главной диагонали: 2 3 7 -9 2 -8 4 15 23 17 Элементы ниже главной диагонали: 6 -5 0 9 -7 2 20 -6 -4 0 Квадратная матрица Элементы выше побочной диагонали: 15 2 3 6 16 2 -5 0 Элементы ниже побочной диагонали: 7 4 9 -6 15 23 2 -1 17 -4 0 5 Преобразование квадратной матрицы Задача1: Сформировать и вывести на печать матрицу М(4,4), если ее элементы задаются целыми случайными числами на отрезке от –15 до 15. Сформировать массив К, если его элементы – элементы главной диагонали матрицы М. Подсчитать сумму элементов матрицы, находящихся ниже побочной диагонали. DIM M(4,4), K(4) PRINT “Массив М “ FOR i=1 TO 4 FOR j=1 TO 4 M(i,j)= FIX(30*RND(1)-15) PRINT M(i,j); NEXT j PRINT NEXT i FOR i= 1 TO 4 PRINT “Массив К “ FOR j= 1 TO 4 IF i=j THEN K(i)=M(i,j) PRINT K(i); NEXT j NEXT i S=0 FOR i=1 TO 4 FOR j=1 TO 4 IF i+j>5 THEN S=S+M(i,j) NEXT j NEXT i PRINT “сумма элементов“;S END Преобразование квадратной матрицы Задача2: Сформировать матрицу А(n,n), если элементы вычисляются по формуле i+j, вывести ее на печать. Сформировать и вывести на печать массив В, если его элементы – сумма элементов массива А по строкам. INPUT n DIM A(n,n), B(n) PRINT “МАССИВ А “ FOR i=1 TO n FOR j=1 TO n A(i,j)= i+j PRINT A(i,j); NEXT j PRINT NEXT i PRINT “МАССИВ В “ FOR i=1 TO n S=0 FOR j=1 TO n S=S+ A(i,j) NEXT j B(i)=S PRINT B(i); NEXT i END Задание для самостоятельной работы Задача1: Сформировать и вывести на печать массив А(9,4), если элементы вводятся с клавиатуры. Сформировать массив В, если его элементы – сумма элементов массива А по столбикам. Вычислить сумму положительных элементов массива А. Задача2: Сформировать и вывести на печать массив С(n,n), если его элементы формируются по формуле 2i+j. Сформировать и вывести на печать массив М, если его элементы – элементы побочной диагонали массива С. Вычислить сумму элементов, находящихся выше главной диагонали. Удачной работы с двумерными массивами