// PascalABC.NET 3.1, сборка 1256 от 21.06.2016 var i,j,k,n:integer; a,b,c:array[,] of integer; begin Write('Число строк (столбцов) матрицы: '); Read(n); SetLength(a,n,n); SetLength(b,n,n); SetLength(c,n,n); Randomize; Writeln('Матрица A'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin a[i,j]:=Random(90)+10; Write(a[i,j]:3) end; Writeln end; Writeln('Матрица B'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin b[i,j]:=Random(90)+10; Write(b[i,j]:3) end; Writeln end; // умножение и вывод Writeln('Матрица C'); for i:=0 to n-1 do begin for j:=0 to n-1 do begin c[i,j]:=0; for k:=0 to n-1 do c[i,j]:=c[i,j]+a[i,k]*b[k,j]; Write(c[i,j]:6) end; Writeln end; end.
function gcd(a,b:integer):integer;
// Нахождение НОД
begin
while b<>0 do
begin
a:=a mod b;
var i:=b; b:=a; a:=i
end;
Result:=a
end;
procedure Shorter(var a,b:integer);
// "сокращатель" дроби
begin
var k:=gcd(a,b);
a:=a div k;
b:=b div k
end;
begin
var a,b:integer;
Writeln('Введите числитель и знаменатель дроби: ');
Read(a,b);
Write(a,'/',b,'='); Shorter(a,b); Writeln(a,'/',b)
end.
Тестовое решение:
Введите числитель и знаменатель дроби:
25 15
25/15=5/3