Прокомментировать код - Free Pascal (691)
Формулировка задачи:
Объясните программ, пожалуйста, то есть что делает каждая строчка программы?
program p6_1;
type mas=array [1..50,1..50] of integer;
var a1,a2,a3:mas;n1,n2,n3,m1,m2,m3:integer;
procedure vvod(var h:mas;var n:integer;var m:integer;q:string);
var i,j:integer;
begin
Write('Введите N для массива ',q,' ');
Read(n);
Write('Введите M для массива ',q,' ');
Read(m);
For i:=1 to n do
For j:=1 to m do begin
Write(q,'[',i,',',j,']=');
Read(h[i,j]);
end;end;
procedure zam (var h:mas;n:integer;m:integer);
var i,j,k1,k2,min,max:integer;
begin
for j:=1 to m do begin
k1:=1;k2:=1;
min:=h[1,j];max:=h[1,j];
for i:=1 to n do begin
if h[i,j]<min then begin k1:=i;min:=h[i,j];end;
if h[i,j]>max then begin k2:=i;max:=h[i,j];end;
end;
h[k1,j]:=max;
h[k2,j]:=min;
end;
end;
procedure vivod(h:mas;n:integer;m:integer;q:string);
var i,j:integer;
begin
writeln('Вывод массива ',q);
For i:=1 to n do
For j:=1 to m do begin
Writeln(q,'[',i,',',j,']=',h[i,j]);
end;end;
begin
vvod(a1,n1,m1,'A1');
vvod(a2,n2,m2,'A2');
vvod(a3,n3,m3,'A3');
zam(a1,n1,m1);
zam(a2,n2,m2);
zam(a3,n2,m3);
vivod(a1,n1,m1,'A1');
vivod(a2,n2,m2,'A2');
vivod(a3,n3,m3,'A3');
end.Решение задачи: «Прокомментировать код»
textual
Листинг программы
program p6_1; // Программа p6_1
type mas=array [1..50,1..50] of integer; // Массив чисел размером в 50 ячеек
var a1,a2,a3:mas;n1,n2,n3,m1,m2,m3:integer; //Переменные массива.
procedure vvod(var h:mas;var n:integer;var m:integer;q:string); // Объявление процедуры ВВод с 4 параметрами
var i,j:integer; //Переменные процедуры
begin // Начать
Write('Введите N для массива ',q,' '); // Написать в командной строке: Введите N для массива
Read(n);// Прочитать ответ в переменную n
Write('Введите M для массива ',q,' '); // Написать в командной строке: Введите M для массива
Read(m);// Прочитать ответ в переменную m
For i:=1 to n do // Цикл i to n
For j:=1 to m do begin // Второй цикл j to m
Write(q,'[',i,',',j,']='); // Написать элементы массива
Read(h[i,j]); // Прочитать ответ
end;end; // Закончить программу.
procedure zam (var h:mas;n:integer;m:integer);
var i,j,k1,k2,min,max:integer;
begin
for j:=1 to m do begin
k1:=1;k2:=1;
min:=h[1,j];max:=h[1,j];
for i:=1 to n do begin
if h[i,j]<min then begin k1:=i;min:=h[i,j];end;
if h[i,j]>max then begin k2:=i;max:=h[i,j];end;
end;
h[k1,j]:=max;
h[k2,j]:=min;
end;
end;
procedure vivod(h:mas;n:integer;m:integer;q:string);
var i,j:integer;
begin
writeln('Вывод массива ',q);
For i:=1 to n do
For j:=1 to m do begin
Writeln(q,'[',i,',',j,']=',h[i,j]);
end;end;
begin
vvod(a1,n1,m1,'A1');
vvod(a2,n2,m2,'A2');
vvod(a3,n3,m3,'A3');
zam(a1,n1,m1);
zam(a2,n2,m2);
zam(a3,n2,m3);
vivod(a1,n1,m1,'A1');
vivod(a2,n2,m2,'A2');
vivod(a3,n3,m3,'A3');
end.
Объяснение кода листинга программы
- Объявление программы p6_1 и типа данных mas (массив чисел размером в 50 ячеек)
- Объявление переменных массива a1,a2,a3 и процедур ввода-вывода vvod и zam
- В процедуре vvod происходит ввод данных в массив h с помощью циклов i и j
- В процедуре zam происходит сортировка массива h по элементам j с помощью циклов i и j
- В процедуре vivod происходит вывод данных из массива h с помощью циклов i и j
- Код выводит сообщение
Введите N для массива A1и ожидает ввода числа N для первого массива - Код выводит сообщение
Введите M для массива A1и ожидает ввода числа M для первого массива - Код выводит сообщение
Вывод массива A1и выводит все элементы первого массива - Код выполняет аналогичные действия для второго и третьего массива
- Код сортирует первый массив по элементам j
- Код сортирует второй массив по элементам j
- Код сортирует третий массив по элементам j
- Код выводит сообщение
Вывод массива A2и выводит все элементы второго массива - Код выводит сообщение
Вывод массива A3и выводит все элементы третьего массива