Как и при решении задача в линейном массиве, в двухмерных массивах тоже иногда нужно находить Сумму, Количество, Произведение, Среднее арифметическое элементов, которые выбираются по некоторым критериям. Рассмотрим задачу нахождения вышеуказанных значений элементов массива, которые меньше 10.
Как это сделать?…
Для начала вспомним, как находить эти значения:
При решении задач на циклы(числовые последовательности) мы пиcали следующее
Summa:=0; Summa:=summa+i; Count:=0; Count:=count+1; Multiplay:=1; Multiplay:=Multiplay*i;В нашем случае, вместо счетчика I мы обращаемся к элементу массива, поэтому наши команды будут записаны по другому:
Summa:=0; Summa:=summa+элемент_массива; Count:=0; Count:=count+1; Multiplay:=1; Multiplay:=Multiplay*элемент_массива;А что бы обратится к элементу массива, мы должны указать имя_массива и индексы_элемента
Снова разобьем нашу задачу на блоки
1. Заполнение массива
2. Начальное значение суммы и её поиск
3. Начальное значение количества и её поиск
4. Начальное значение произведения и его поиск
5. Среднее арифметическоеconst N=3; Var Matrix:array [1..N, 1..N] of integer; I, J: integer; Summa, Count:integer; Multiplay:Longint; BEGIN {заполнение массива} randomize; for i := 1 to N do begin for j := 1 to N do begin Matrix[i,j] := random(15)+1; write(' t[',i,j, ']=', Matrix[i,j]:2); end; writeln; end; {нахождение суммы} summa:=0; for i := 1 to N do for j := 1 to N do begin if Matrix[i,j]<10 then summa:=summa+Matrix[i,j]; end; {нахождение количества} Count:=0; for i := 1 to N do for j := 1 to N do begin if Matrix[i,j]<10 then Count:=Count+1; end; {нахождение произведения} Multiplay:=1; for i := 1 to N do for j := 1 to N do begin if Matrix[i,j]<10 then Multiplay:=Multiplay * Matrix[i,j]; end; {вывод результата и среднее арифметическое} Writeln('Сумма элементов меньше 10 =',summa); Writeln('Количество элементов меньше 10 =',Count); Writeln('Произведение элементов меньше 10 =',Multiplay); Writeln('Среднее арифметическое элементов меньше 10 =', summa/Count:2:2); End.