Two real square matrices of order 10 and 20 are given. In the rows with a negative element on the main diagonal, find the product of all elements.
If you organize the input matrix manually, everything works. With randomize does not always work, often gives an error eitcode = 21. How to fix it?
Const n = 20; Type matr = array [1..n, 1..n] Of integer; vek = array[1..n] Of LongInt; Var A,B: matr; VA,VB: vek; Procedure wwod(Var A: matr; k,p: byte); Var i,j: byte; Begin Writeln('Ввод матрицы ',k,'-го порядка'); randomize; For i:= 1 To k Do Begin For j:= 1 To p Do Begin A[i,j] := random(10)-4; Write(A[i,j]:2,' '); End; readln; End; End; Procedure proizv(Var A: matr; k,p: byte; Var VA: vek); Var i,j: byte; v,f: integer; Begin For i:= 1 To k Do Begin f := j; For j:=1 To p Do If i=j Then If A[i,j]<0 Then Begin Begin v := 1; For f:=1 To p Do v := v*A[i,f] End; Writeln('Произведение элементов ', i, ' строки - ',v); End Else Begin Writeln('На главной диагонали находится положительный элемент'); break; End; End; Readln; End; Begin wwod(A, 10, 10); proizv(A,10,10,VA); wwod(B, 20, 20); proizv(B,20,20,VB); End.