Должно выводить максимальный элемент конечного массива, но выводит элемент стоящий на месте [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 := 1to n dofor x := 1to n dobeginWrite('Mat1[',x,',',y,']:');
Readln(Mat1[x,y]);
end;
Writeln('vvod mat2');
for y := 1to n dofor x := 1to n dobeginWrite('Mat2[',x,',',y,']:');
Readln(Mat2[x,y]);
end;
for y := 1to n dofor x := 1to n dobegin
R := 0;
for i := 1to n do
r:=R+mat1[y,i]*Mat2[i,x];
ResMat1[x,y]:=R;
end;
Writeln('AxB=');
for y:=1to n dobeginfor x:=1to n doWrite(ResMat1[x,y]:4);
Writeln;
end;
max:=resmat1[1,1];
For x:=1To n DoFor y:=1To n DoIf max<resmat1[x,y] Then
max:=resmat1[x,y];
writeln('max:=',resmat1[x,y]:3);
readln;
repeatuntil 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 их значения не определены. Чтоб вывести действительно макс. элемент -
Не исходник, а идею решения. Если б ты взял программу без изменений, и она у тебя не сработала - вот тогда ты бы "брал исходник". А так ты взял код, и добавил в него отсебятину. Перемножение матриц у тебя работает правильно, как и работало в исходнике по ссылке. А то, что было добавлено - ошибочно...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.