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