- •Тема 8 Двумерные массивы данных
- •1.Описание двумерных массивов
- •2). Type
- •3). Type
- •Var X, y, z: matr; {матрицы 4х5}
- •3). Type
- •7). Вычислить средние значения элементов для строк матрицы a[n, m], имеющих нечетные номера.
- •8). Напечатать число элементов в первой строке матрицы, значения которых больше среднего по строке.
- •9).Указать номер строки, имеющей наибольшее среднее значение.
- •12). Найти суммy элементов строк матрицы a(4x5), начиная с первого отрицательного элемента строки .
- •12A). Найти сумму вектора b( 2, -5, 6, -4, 3 ),
- •12). Найти суммy элементов строк матрицы a(4x5), начиная с первого отрицательного элемента строки .
- •Var I, j, k, s, n: integer;
- •13). Найти первую сумму строки большей числа n , напечатать эту сумму и номер ее строки .
- •Var I, j, k, s: integer;
- •Умножение двух матриц.
- •Var sr:array[1..3] of real;
- •I,j:integer; X,y,z:matr; maxsr:real; f:text;
- •Var s:real;
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;
12). Найти суммy элементов строк матрицы a(4x5), начиная с первого отрицательного элемента строки .
Рассмотрим фрагмент этой программы на примере одномерного массива (вектора B ).
12A). Найти сумму вектора b( 2, -5, 6, -4, 3 ),
начиная с первого отрицательного элемента .
Begin
j:=1;
REPEAT {перебираем эл-ты вектора, ищем 1-й отрицательный эл-т }
K:=0; S:=0;
if a[ j]<0 then
begin
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)
else
writeln(' нет отрицательных элементов');
End;
Для матрицы нужно добавить внешний цикл по i
