Должно выводить максимальный элемент конечного массива, но выводит элемент стоящий на месте [4,4]
program matrica; uses crt; Const n=4; var Mat1, Mat2, ResMat1 : array[1..n,1..n] of integer; i, x, y, R, max: integer; flag : boolean; begin clrscr; Writeln('vvod mat1'); for y := 1 to n do for x := 1 to n do begin Write('Mat1[',x,',',y,']:'); Readln(Mat1[x,y]); end; Writeln('vvod mat2'); for y := 1 to n do for x := 1 to n do begin Write('Mat2[',x,',',y,']:'); Readln(Mat2[x,y]); end; for y := 1 to n do for x := 1 to n do begin R := 0; for i := 1 to n do r:=R+mat1[y,i]*Mat2[i,x]; ResMat1[x,y]:=R; end; Writeln('AxB='); for y:=1 to n do begin for x:=1 to n do Write(ResMat1[x,y]:4); Writeln; end; max:=resmat1[1,1]; For x:=1 To n Do For y:=1 To n Do If max<resmat1[x,y] Then max:=resmat1[x,y]; writeln('max:=',resmat1[x,y]:3); readln; repeat until keypressed; END.
volvo
18.12.2010 22:43
Цитата
Должно выводить максимальный элемент конечного массива
Это тебе хочется, чтоб выводило макс. элемент конечного массива. На самом деле тебе еще повезло, что программа не вылетает с ошибкой, ведь после окончания циклов по X, Y их значения не определены. Чтоб вывести действительно макс. элемент -
writeln('max = ',max:3);
sergant71
18.12.2010 22:48
Цитата(volvo @ 18.12.2010 22:43)
Это тебе хочется, чтоб выводило макс. элемент конечного массива. На самом деле тебе еще повезло, что программа не вылетает с ошибкой, ведь после окончания циклов по X, Y их значения не определены. Чтоб вывести действительно макс. элемент -
Не исходник, а идею решения. Если б ты взял программу без изменений, и она у тебя не сработала - вот тогда ты бы "брал исходник". А так ты взял код, и добавил в него отсебятину. Перемножение матриц у тебя работает правильно, как и работало в исходнике по ссылке. А то, что было добавлено - ошибочно...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.