Найти суммy элементов строк матрицы A(4X5), начиная с первого отрицательного элемента строки

Else

Begin

Begin

A). Найти сумму вектора B(2, -5, 6, -4, 3),

Рассмотрим фрагмент этой программы на примере одномерного массива (вектора B).

Найти суммy элементов строк матрицы A(4X5), начиная с первого отрицательного элемента строки.

Найти максимальные элементы в каждом столбце матрицы A(4x5), зафиксировать их координаты.

Begin

Поменять местами 2-й столбец со столбцом, содержащим max элемент матрицы.

Begin

Поменять местами 1-ю строку со строкой, содержащей max элемент матрицы.

p – номер строки максимального элемента

for j:=1 to 4 do

buf:= a[1, j];
a[1, j]:=a[p, j];
a[p, j]:= buf;
end;

q – номер столбца максимального элемента

for i:=1 to 6 do

buf:= a[i, 2];
a[i, 2]:=a[i, q];
a[i, q]:= buf;
end;

4).Найти максимальные элементы в
каждой строке матрицы A(4x5).

for i:=1 to 4 do

begin { фиксируем строку }

max:=a[i,1]; {первый элемент строки принимаем за max}

for j:=1 to 5 do

if a[i, j]> max then max:=a[i, j];

writeln('строка ', i,': max=',max);

end;

for j:=1 to 5 do

begin { фиксируем столбец }

max:=a[1, j]; {первый элемент столбца принимаем за max}

for i:=1 to 4 do

if a[i, j]> max then begin

max:=a[i, j]; p:=i; q:=j

end;

writeln(‘a[‘, p, ‘,’, q, ‘]= max=',max);

end;

6).В каждой строке матрицы А[4x5] определить количество элементов, значения которых находятся в интервале [2;9]. Распечатать эти элементы.

for i:=1 to 4 do

Begin { фиксируем строку }

k:=0;
for j:=1 to 5 do

if (a[i, j] >= 2) AND (a[i, j] <= 9) then

begin
k:=k + 1;
writeln(a[i, j]);
end;
writeln(‘в строке ‘, i, ‘ ‘, k, ‘ элементов’);

End;

7). Вычислить средние значения элементов для строк матрицы A[n, m], имеющих нечетные номера.

for i:= 1 to n do
if i mod 2 = 1 then { или odd(i) }
begin

k:=0;
SR[k]:=0; {SR-массив}
for j:=1 to m do
SR[k]:= SR[k] + a[i, j];
SR[k]:= SR[k] / m;
end;
2-й способ:

for i:= 1 to n do
if odd(i) then
begin
Sr:=0; {SR-число}
for j:=1 to m do
Sr:= Sr + a[i, j];
Sr:= Sr / m;
writeln(‘строка ‘,i,’: Sr=’,Sr:5:2);
end;

8). Напечатать число элементов в первой
строке матрицы, значения которых
больше среднего по строке.

k:=0;
for j:=1 to m do
if a[1, j] > Sr then k:=k + 1;
writeln(‘k=’, k);

9).Указать номер строки, имеющей
наибольшее среднее значение.

max:=Sr[1];
for i:=1 to n do
if Sr[i] > max then
begin
max:=Sr[i];

k:=i;
end;
writeln(‘в строке ‘, k,’ max среднее’);

10). Найти сумму элементов главной
диагонали матрицы B[5x5].

S:=0;
For i:=1 to 5 do
S:= S + b[i, i];
writeln(‘S=’, S);

11). Все элементы, лежащие выше главной
диагонали, обнулить, а элементы,
лежащие ниже главной диагонали,
приравнять единице.
For i:=1 to 5 do
For j:=1 to 5 do
begin
if j > i then b[i, j]:=0; {выше}
if j < i then b[i, j]:=1; {ниже}
end;

начиная с первого отрицательного
элемента.

j:=1;

REPEAT {перебираем эл-ты вектора,
ищем 1-й отрицательный эл-т }

K:=0; S:=0;

if a[ j]<0 then

k:= j; {если нашли первый отриц. элемент, то k = номеру
этого элемента, т.е. k<>0}

for n:= k to 5 do S:=S + a[ n];

{S - сумма, начиная с первого отриц. элемента}

end;

j:=j+1;

UNTIL (j>5) or (k<>0);

{выход из цикла: если перебрали все элементы (j>5) или уже встретили первый отрицательный элемент (k<>0)}

if K<>0 then

writeln('S=', S)

writeln(' нет отрицательных элементов');

End;

Для матрицы нужно добавить
внешний цикл по i

Program Lab6_pr12;

Uses CRT;

TYPE matr = array[1..4,1..5] of integer;

CONST a: matr = ((0, -4, -3, 5, 6),

(1, 0, -3, 6, -7),

(-1, 5, 0, 3, 6),

(6, 7, 9, 2, 4));

Var i, j, k, S, n: integer;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: