Вопрос Программирование типовых алгоритмов обработки двумерных массивов

Регистрация
24 Сен 2013
Сообщения
97
Репутация
-3
Спасибо
0
Монет
0
Задана матрица А (3, 5). Упорядочить по возрастанию элементы той строки, где находится наибольший элемент матрицы.
Полученную матрицу напечатать по строкам.
Помогите, пожалуйста, найти ошибку и исправить ее. Пишет, что p не является меткойif a[i,j]> p then begin p:a[i,j]; , если сделать p:= тоже не получается
var
a: array [1..5,1..5] of real;
i,j,k,p:integer;
begin
for i:=1 to 5 do begin
for j:=1 to 5 do begin
readln(a[i,j]);
end;end;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
if a[i,j]> p then begin p:a[i,j];
k:=i; end;end;end;
i:=k;
for j:=1 to 4 do begin
p:=a[i,j]; k:=i;
for j:=2 to 5 do begin
if a[i,j]<=p then begin
p:=a[i,j]; k:=j; end;
end;
a[i,k]:=a[i,j];
a[i,j]:=p;
end;
for j:=1 to 5 do begin
write(a[i,j]);
end;
writeln;
end.
269335530_5b79e88914a7cb9f56e84acd9a17adf2_240x240.png
269335530_31bfe4992924487c1bad960350447ec6_240x240.png
 
1) p и A[i, j] разных типов. Тебе компилятор так и пишет: нельзя преобразовать тип real к integer. Если переменная p у тебя для хранения макс. элемента матрицы, значит, и типа она должна быть того, что и матрица. 2) Где инициализация p? Например, p := A[0, 0];
 
Назад
Сверху