Читайте также:
|
|
При решении задач подобного типа необходимо рассматривать матрицу по столбцам (т.е. вначале должен быть задан цикл по переменной j, а затем по переменной i).
Начальные значения вычисляемых переменных задаются для каждого столбца, поэтому при переходе к новому столбцу, т.е. между циклами, необходимо поместить соответствующие операторы присваивания.
В ответе получается столько же значений, сколько в матрице столбцов. Результат для каждого столбца окончательно вычисляется при завершении каждого столбца и может быть обработан по условию задачи между циклами (после завершения цикла по переменной i).
На рис.37 представлен алгоритм нахождения суммы элементов каждого столбца матрицы X и вывод этих сумм на экран. Ниже приведены фрагменты программ, иллюстрирующие этот алгоритм.
…
for j:=1 to M do
begin
S:=0;
for I:=1 to N do
S:=S+X[ i, j ];
writeln(‘S= ‘,S);
end;
Рис. 37.
На рис.38 представлен алгоритм нахождения произведения четных элементов в каждом столбце матрицы X и cохранение найденных значений в одномерном массиве Y.
Т.к. количество элементов в массиве Y совпадает с количеством столбцов в матрице X, то для нумерации элементов в массиве Y воспользуемся переменной J. Размер сформированного массива будет равен количеству столбцов матрицы X (т.е. переменной M).
Ниже приведен фрагмент программы, иллюстрирующий этот алгоритм.
• • •
for j:= 1 to M do
begin
P:=1;
for i:=1 to N do
if X [ I, j ] mod 2 = 0 then
P:= P * X [ I, j ];
Y[ j j:=P;
end;
writeln(‘Сформированный массив Y’);
For I:=1 to M do
Рис.38 Write(Y[ i ]);
Writeln;
• • •
На рис.39 приведён алгоритм увеличения в 2 раза максимальных элементов столбцов матрицы X. Ниже приведён фрагмент программы к этому алгоритму.
• • •
for 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;
…
Рис.39
Дата добавления: 2015-07-10; просмотров: 224 | Нарушение авторских прав