Рассмотреть типовые задачи обработки двумерных массивов.
Общие сведения
Двумерный массив можно представить в виде прямоугольной таблицы или матрицы. Положение элементов в двумерных массивах описывается двумя индексами. Рассмотрим двумерный массив размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:
Каждый элемент имеет свой номер, который состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, A[2,1] – это элемент, стоящий во второй строке и в первом столбце.
Примеры решения задач по теме «Программирование задач на обработку двумерных массивов»
Задание 1
В двумерном массиве A(N) найти сумму элементов в каждой строке. Из полученных значений сформировать одномерный массив.
Этапы решения задачи
1. Определим переменные, которые будем использовать в программе: имя массива A, размер массива N, индекс строки i, индекс столбца j, cуммы элементов каждой строки Si.
2. Для обращения к элементам массива потребуется использовать вложенные операторы цикла for...
3. Составим блок-схему алгоритма и программу формирования одномерного массива из сумм элементов каждой строки двумерного массива.
Program massiv_21;Var a: array[1..50,1..50] of integer;s: array[1..50] of integer;i, j, n, m: integer;Beginwriteln (' количество строк n=');readln (n);Write(‘количество столбцов m='’); Readln(m);writeln ('введите элементы массива');For i:=1 to n doFor j:=1 to m dobeginwrite(‘a[‘,i,’,’,j,’)=’);readln (a[i,j]);end;For i:=1 to n dobeginS[i]:=0; {подготовка переменной для суммы }For j:=1 to m doS[i]:=S[i]+a[i,j]; {сумма элементов каждой строки }end;For i:=1 to n dowriteln (‘s[‘, i,’ ]=’, s[ i ]); {вывод массива }End.
Задание 2
В двумерном массиве, состоящем из N целых чисел, найти количество отрицательных элементов в каждом столбце. Из полученных значений сформировать одномерный массив.
Этапы решения задачи
1. Определим переменные, которые будем использовать в программе: имя массива A, размер массива N, индекс строки i, индекс столбца j, количество элементов каждого столбца Kj, наибольшее количество отрицательных элементов в столбце max, номер столбца с наибольшим количеством jmax.
2. Составим блок-схему алгоритма и программу формирования одномерного массива из двумерного массива.
Program massiv_22;Var a: array[1..50,1..50] of integer;k: array[1..50] of integer;i, j, n, m,max,jmax: integer;Beginwriteln (' количество строк n=');readln (n);Write(‘количество столбцов m='’); Readln(m);writeln ('введите элементы массива');For i:=1 to n doFor j:=1 to m dobeginwrite(‘a[‘,i,’,’,j,’)=’);readln (a[i,j]);end;For j:=1 to m dobegink[j]:=0;For i:=1 to n doif (a[i,j]<0) thenk[j]:=k[j]+1;end;max:=k[1]; jmax:=1;For j:=2 to m doif k[j]>max thenbeginmax:=k[j]; jmax:=j;end;writeln(‘Наибольшее количество отрицательных элементов в ‘;jmax; ‘столбце –’,max);For j:=1 to m dowriteln (‘k[‘, j,’ ]=’, k[j ]);End.
Варианты заданий по теме «Программирование задач на обработку двумерных массивов»
№
варианта
Задание
Дано: массив А(N,M). В каждой строке найти сумму отрицательных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти сумму положительных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти произведение элементов, кратных 5. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти минимальный элемент. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти среднее арифметическое четных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти количество элементов, лежащих в интервале [1;30]. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти среднее арифметическое нечетных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти среднее арифметическое четных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти количество элементов, равных 1 или 2. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти сумму отрицательных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти сумму положительных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти произведение элементов, кратных 5. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждой строке найти среднее арифметическое четных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). В каждом столбце найти среднее арифметическое нечетных элементов. Из полученных значений сформировать одномерный массив.
Дано: массив А(N,M). Найти номер столбца, в котором находится наименьшее количество положительных элементов.
Дано: массив А(N,M). Найти номер строки, в которой находится наименьшее количество чётных элементов.
Дано: массив А(N,M). В каждом столбце найти количество элементов массива, равных 3.
Дано: массив А(N,M). Найти наименьшее четное число и его положение в массиве.
Дано: массив А(N,M). Найти наибольшее число, кратное 3, и его положение в массиве.
Дано: массив А(N,M). Найти номер столбца, в котором находится наибольшее количество элементов, кратных 5.