Формировать матрицы будем с помощью генератора случайных чисел, вычислять значения элементов результирующей матрицы С − посредством вложенных циклов. Во внутреннем цикле (по параметру k) будет накапливаться сумма, определяющая элемент с[i, j] .
Program Example_115;
Const n=5;
Type dmyarray=Array[1..n, 1..n] Of Integer;
Var А, В, С: dmyarray;
Procedure Init(Var x: dmyarray);
Procedure Print (x: dmyarray);
Procedure Mult(x,y: dmyarray;
Var z: dmyarray);
Var k, i, j: Integer;
Begin
For i:=1 To n Do
For j:=1 To n Do
Begin
z[i,j]:=0;
For k:=1 To n Do
z[i,j] :=z[i,j]+x[i,k]*y[k,j];
End;
End;
Begin
Writeln('матрица A:'); Init(A); Print(A);
Writeln('матрица В:'); Init(В); Print(В);
Mult(А, В, С);
Writeln('матрица С:'); Print(с);
Readln;
End.
Определить, отвечает ли заданный массив некоторым требованиям
Пример 1
Определить, есть ли в данном массиве элемент, равный 0.
Решение
Опишем логическую функцию, значение которой равно "истина", если такой элемент есть, и "ложь" − в противном случае. Будем просматривать элементы массива и, если найден искомый, то присвоим функции значение True, иначе − False.
Program Example_116;
Function Checkl(x: dmyarray): Boolean;
Var i, j: Integer;
t: Boolean;
Begin
t:=False; {Предполагаем, что искомого
элемента в массиве нет}
i:=1;
While (not t) And (i<=n) Do
Begin
j:=1;
While (j<=m) And (x[i, j]<>0) Do
Inc(j);
t:=(j<=m);
{Определяем, найден ли искомый элемент; если
просмотрена вся строка, то значение
j=m+1 и t:=False, иначе элемент найден
и t:=True}
Inc(i);
End;
check1:=t;
End;
Пример 2
Определить, является ли данная квадратная матрица симметричной относительно своей главной диагонали.