Само задание: Задать однотипные треугольные матрицы А и В размера 5*5 и программно показать, что А*В тоже треугольная матрица.
Можете помочь с условием с нулями(на проверку их наличия) корректно вписать в данный код ? Вообщем писал writeln(k, 'нулей') выводит статистическое количество(ведь здесь реализован рандом), после этого для нуля вводил переменную Zero (boolean) далее Zero := False; -> цикл -> условие -> begin -> Zero := True; -> условие -> вывод. По прежнему выводит стат число, но зато оно поменялось.
Решение: program Cypress; uses crt; const n=5; var a,b,c:array[1..n,1..n]of integer; i,j,k: integer; begin clrscr; randomize;
//2 верхнетреугольные матрицы
for i:=1 to n do begin for j:=1 to n do begin if j>=i then a[i,j]:=1+random(10) else a[i,j]:=0; end; end;
for i:=1 to n do begin for j:=1 to n do begin if j>=i then b[i,j]:=1+random(10) else b[i,j]:=0; end; end;
k:=0; for i:=2 to n do begin for j:=1 to i-1 do begin if c[i,j]=0 then inc(k);
c[i,j]:=c[i,j]+a[i,k]*b[k,j]; if k=(n*n-n)div 2 then write('Матрица верхнетреугольная');
end; writeln; end; readln end.
|
|
|
Изменил циклы и условие , криво но работает
|
|
|
Очень криво работает я бы сказал.
|
|
|
Да очень криво работает, подтверждаю, нужно делать нормальные вещи.
|
|
|
Если погуглить есть более лучше код в 10 раз)
|
|
|
|