Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАССИВЫ.doc
Скачиваний:
84
Добавлен:
14.08.2019
Размер:
5.01 Mб
Скачать

3.2.2. Нахождение суммы, произведения элементов, максимума всей матрицы в целом

В задачах подобного вида результатом является единственное значение. Поэтому начальные значения вычисляемым переменным присваиваются один раз — в начале алгоритма, до организации циклов обработки элементов массива. На рис. 24 показан алгоритм вычисления суммы элементов матрицы. Начальное значение сумме S=0 присваивается до начала суммирования элементов. Затем обработка элементов массива идёт по тому же принципу, что и в предыдущем пункте.

S:=0;

for i:=1 to N do

for j:=1 to M do

S := S+X[i,j];

writeln(‘S= ‘,S);

… Рис. 24

Т акже рассуждаем и при нахождении максимального элемента матрицы (рис. 25). В качестве начального значения максимума принимаем её первый элемент, в качестве начальных значений координат максимума — единицы. Затем поочерёдно сравниваем максимум со всеми элементами матрицы построчно и запоминаем координаты вновь принятого за максимум элемента. При завершении обоих циклов максимум считается окончательно найденным и может быть обработан по условию задачи. Ниже приведены фрагменты программ, иллюстрирующие рис. 25.

MAX := X[1,1];

Imax:=1;

Jmax:=1;

For I:=1 to N do

For j:=1 to M do

If MAX < X[I,j] then

Begin

MAX:= X[I,j];

Imax :=I;

Jmax := j;

End;

Writeln(‘max= ‘,MAX);

Рис. 25

3.2.3. Нахождение суммы, произведения, максимума в каждой строке матрицы

При решении задач подобного типа в ответе получается столько же значений, сколько в матрице строк. Поэтому начальные значения вычисляемым переменным присваиваем при каждом переходе к обработке следующей строки, т.е. между циклами. Результат для каждой строки также окончательно вычислен при завершении каждой строки и может быть обработан по условию задачи между циклами (после завершения цикла j).

На рис. 26 представлен алгоритм нахождения суммы элементов каждой строки матрицы X и вывод этих сумм на экран. Ниже приведены фрагменты программ, иллюстрирующие этот алгоритм.

for i:=1 to N do

begin

S:=0;

for j: =1 to M do

S:=S+X[ i , j ];

writeln(‘S= ‘ ,S);

end;

Рис. 26

На рис. 27 приведён алгоритм вычисления максимума каждой строки матрицы X и замена его нулём.

for i:=l to N do

begin

MAX:=X[i,1] ; Jmax:=1;

for j:=2 to M do

if X[I,j] > MAX then

begin

MAX:=X[i,j];Jmax:=j end; X[i,Jmax] :=0;

end;

Рис.27

3.2.4. Алгоритм обработки элементов каждого столбца

При решении задач подобного типа в ответе получается столько же значений, сколько в матрице столбцов. В качестве примера на рисунке 28 приведён алгоритм увеличения в 2 раза максимальных элементов столбцов матрицы X. Комментарии к этому алгоритму аналогичны комментариям к предыдущему пункту. Ниже приведён фрагмент программы к этому алгоритму.

f or j:=1 to M do

begin

МАХ:=Х[1,j];

Imax:=1;

for i:=2 to N do if MAX<X[i,j] then

begin

MAX:=X[i,j];

Imax:= i;

end;

X [Imax, j ]: =X [Imax, j ] *2;

end;

… Рис.28