Другие языки программирования и технологии

посмотрите прогу по паскалю , сделал но не работает подскажите как исправить плиз

Заданы две матрицы целых чисел, каждую из них обработать, используя > функцию с параметрами для обработки, процедуру ввода матрицы и где необходимо > процедуру вывода матрицы. > 2.Найти в каждой строке наибольший и наименьший элементы и поменять их с > первым и последним элементами строки соответственно. Program mm; > var a: array [1..N,1..N]of integer; > var N,i,j,Num,max,min,nummin:integer; > procedure vvod; > begin > write('vvod N )' ; > readln(N); > For i:= 1 to N do > For j:= 1 to N do > begin > write('a[',i,j,']=' ) ; > readln(a[i,j]); > max:=a[1,1]; > if a[i,j]>max then > max:= a[i,j]; > Num:=i,j; > min:=a[1,1]; > if a[i,j]< min then > min:= a[i,j]; > nummin:=i,j; > end;end; > procedure vivod; > begin > for i:= 1 to N do > for j:= 1 to N do > write (a[i,j]); > writeln; > readln; > end; > begin > vvod; > vivod; > end; > end.
Я почти верю, что ЭТО написали вы.
У вас в задании написано, что заданы 2 матрицы, в вашей же "программе" обрабатывается только одна. Потом, если вы используете функции и процедуры, то применение для передачи данных через глобальные переменные в этом случае ну просто неприлично.
И ещё, простите меня тупую блондинку, но как вернуть значение функции в виде массива без использования динамической памяти и указателей, мне не суждено додуматься.

program mm;
type tarray=array [1..100,1..100] of integer;
procedure vvod(var a:tarray; var N:integer);
var i,j:integer;
begin
write('Введите размер матрицы N:');
readln(N);
writeln('Введите элементы матрицы: ');
for i:= 1 to N do
for j:= 1 to N do
begin
write('a[',i,',',j,'] = ');
readln(a[ i,j]);
end;
end;
procedure vyvod(const a:tarray; const N:integer);
var i,j:integer;
begin
for i:= 1 to N do
begin
for j:= 1 to N do
write (a[ i,j]:5);
writeln;
end;
readln;
end;
procedure process(var a:tarray; const N:integer);
var i,j,jmin,jmax,min,max:integer;
begin
for i := 1 to N do
begin
for j := 1 to N do
begin
if (j=1) or (a[ i,j] > a[ i,jmax]) then jmax:=j;
if (j=1) or (a[ i,j] < a[ i,jmin]) then jmin:=j;
end;
min := a[ i,jmin];
max := a[ i,jmax];
a[ i,jmin] := a[ i,N];
a[ i,jmax] := a[ i,1];
a[ i,N] := min;
a[ i,1] := max;
end;
end;
var a,b:tarray;
na,nb:integer;
begin
writeln('Ввод 1-й матрицы. ');
vvod(a,na);
writeln('Ввод 2-й матрицы. ');
vvod(b,nb);
process(a,na);
process(b,nb);
writeln('Преобразованная 1-я матрица: ');
vyvod(a,na);
writeln('Преобразованная 2-я матрица: ');
vyvod(b,nb);
end.
Михаил Каманин
Михаил Каманин
51 590
Лучший ответ
>>сделал но не работает
ну ну...
Это тебе в письме прислали, что ли? Сделал.. . ;)
Это все переписывать надо.