Краткие теоретические сведения
Рассмотренный ранее линейный массив представлял собой вектор, т.е. линейную последовательность чисел, например: 1 2 3 –5 0 1 3 6 … Для определения такого массива необходимо задать 1 параметр - количество элементов (например n). Поэтому для обработки одномерного массива достаточно было организовать цикл по одной переменной (например i): for i:=1 to n do mas[i]:=… Двумерный массив представляют собой матрицу, для определения которой необходимо задать два параметра - количество строк (например n) и количество столбцов (например m). Если количество строк - 2, количество столбцов - 3, тогда матрица будет выглядеть например так: 1 3 -5 2 3 4 Следовательно, для обработки матрицы (двумерного массива) требуется организовать цикл по двум переменным (например i и j): for i:=1 to n do begin for j:=1 to m do begin mas[i,j]:=… end; end; Пример программы нахождения суммы элементов двумерного массива Пусть требуется составить программу, которая в двумерном массиве находит сумму его элементов и выводит ее на экран. Количество элементов массива (строк и столбцов) пользователь вводит с клавиатуры. В начале программы опишем двумерный массив с именем mas, состоящий из 10 строк и 10 столбцов (максимально) типа integer. Затем опишем переменную S, обозначающую сумму элементов, i, j -индексы соответственно строки и столбца, n,m -количество строк и столбцов. В основной программе пользователь задает размерность матрицы (количество строк и столбцов). Затем во вложенном цикле (по i и по j) осуществляется ввод с клавиатуры элементов матрицы, а затем вывод на экран введенного пользователем массива. После того, как массив был введен, с ним можно непосредственно начинать работать. В данном примере необходимо найти сумму элементов двумерного массива.
Любое нахождение суммы начинается с обнуления переменной суммы: s:=0. Затем в цикле по i и по j вычисляется сумма: for i:=1 to n do begin for j:=1 to m do begin s:=s+mas[i,j]; end; end; В целом текст программы выглядит так:
Program matrix; Uses crt; var mas:array [1..10,1..10] of integer; s:integer; i,j,n,m:integer; Begin Сlrscr; writeln('Введите количество строк n:'); readln(n); writeln('Введите количество столбцов m:'); readln(m); for i:=1 to n do {ввод элементов двумерного массива} begin for j:=1 to m do begin writeln('Введите ',i,',',j,'-й элемент матрицы: '); readln(mas[i,j]); end; end; writeln('Введенный массив: '); for i:=1 to n do {вывод элементов двумерного массива} begin for j:=1 to m do write(mas[i,j]:5); end; {конец вывода} s:=0; {обнуление суммы} for i:=1 to n do begin for j:=1 to m do begin s:=s+mas[i,j]; {вычисление суммы элементов} end; end; write('Summa:'); write('S= ',S); {вывод на экран полученной суммы} End. Пример программы нахождения количества положительных и отрицательных элементов двумерного массива Пусть требуется составить программу, которая подсчитывала бы количество положительных и количество отрицательных элементов двумерного массива и записывала бы положительные и отрицательные элементы в два разных массива. В начале программы опишем двумерный массив с именем mas, состоящий из 10 строк и 10 столбцов (максимально) типа integer, а также массивы B и C для положительных и отрицательных элементов соответственно. Затем опишем переменные k, l -количество положительных и отрицательных элементов соответственно, i, j - индексы соответственно строки и столбца, n,m -количество строк и столбцов. Проверка на положительность элементов может выглядеть так: for i:=1 to n do begin for j:=1 to m do begin if mas[i,j]>0 then… Если условие выполняется (i,j –й элемент является положительным), то количество положительных элементов k увеличивается на 1 и заполняется массив B: if mas[i,j]>0 then begin k:=k+1; B[k]:=mas[i,j]; end; Аналогично выполняется проверка на отрицательность, количество отрицательных элементов l увеличивается на 1 и заполняется массив C.
В целом текст программы выглядит так: Program matrix_2; Uses crt; Var mas:array [1..10,1..10] of integer; B:array [1..10] of integer; C:array [1..10] of integer; i,j,k,l,n,m:integer; Begin Сlrscr; writeln('Введите количество строк n:'); readln(n); writeln('Введите количество столбцов m:'); readln(m); {ввод-вывод элементов матрицы mas} for i:=1 to n do begin for j:=1 to m do begin if mas[i,j]>0 then begin k:=k+1; B[k]:=mas[i,j]; end; end; if mas[i,j]<0 then begin l:=l+1; C[l]:=mas[i,j]; end; end; {Вывод на экран полученных массивов B и C} write('Массив из положительных: '); for i:=1 to k do write(' ',B[i]); writeln; write('Массив из отрицательных: '); for i:=1 to l do write(' ',C[i]); readln; End.
Читайте также: C - Мазхабы «итикади» (теоретические направления) Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|