В квадратной матрице найти произведение элементов, лежащих выше побочной диагонали - ошибка в коде - Pascal
Формулировка задачи:
В квадратной матрице найти произведение элементов, лежащих выше побочной диагонали.
program Project2; {$APPTYPE CONSOLE} uses SysUtils, Windows; var m,n: integer; i,j,l: integer; p:longint; a:array of array of integer; {$R-} label 1,2,3; procedure MyWriteln(const S: string); var NewStr: string; begin SetLength(NewStr, Length(S)); CharToOem(PChar(S), PChar(NewStr)); Writeln(NewStr); end; Begin MyWriteln('ГЊГ*ГІГЁГ¶Г* äîëæГ*Г* áûòü ГЄГўГ*äðГ*ГІГ*îé!'); 3:MyWriteln('Ââåäèòå ÷èñëî ñòðîê: '); 1:ReadLn(m); if m <= 0 Then Begin MyWriteln('Ââåäèòå ÷èñëî áîëüøå 0!'); goto 1; End Else MyWriteln('Ââåäèòå ÷èñëî ñòîëáöîâ: '); 2: ReadLn(n); if n <= 0 Then Begin MyWriteln('Ââåäèòå ÷èñëî áîëüøå 0!'); goto 2; End; if not(m = n) Then Begin MyWriteln('ГЊГ*òðèöГ* Г*ГҐ ÿâëÿåòñÿ ГЄГўГ*äðГ*ГІГ*îé!'); goto 3; End; GetMem(a, m * sizeof(integer)); for i:= 0 to m-1 do for j:= 0 to n-1 do GetMem(a[i], n * sizeof(integer)); for i:= 0 to m-1 do for j:= 0 to n-1 do a[i,j]:=1+Random(9); for i:= 0 to m-1 do begin for j:= 0 to n-1 do Write(a[i,j]:4); WriteLn; end; l:=0; p:=1; for j:=1 to m do // Выбрасывает ошибку здесь begin for i:=1 to n-l do Begin p:=p*a[i,j]; End; inc(l); end; MyWriteln('ÏðîèçâåäåГ*ГЁГҐ ýëåìåГ*òîâ âûøå ïîáî÷Г*îé äèГ*ГЈГ®Г*Г*ëè: '); Write(p); ReadLn; Writeln(' '); for i:= 0 to n-1 do FreeMem(a[i]); FreeMem(a); ReadLn; End.
Решение задачи: «В квадратной матрице найти произведение элементов, лежащих выше побочной диагонали - ошибка в коде»
textual
Листинг программы
p:=1; for i:=0 to n-2 do for j:=0 to n-i-2 do p:=p*a[i,j];
Объяснение кода листинга программы
- Переменная
p
инициализируется значением 1. - Запускается цикл
for
, который выполняетсяn-2
раза (гдеn
- размерность квадратной матрицы). - Внутри первого цикла
for
запускается второй циклfor
, который выполняетсяn-i-2
раз (гдеi
- номер текущей итерации первого цикла). - В каждой итерации внутреннего цикла
for
значение переменнойp
умножается на значение элемента матрицыa[i,j]
. - По завершении второго цикла
for
значение переменнойp
будет содержать произведение всех элементов, лежащих выше побочной диагонали.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д