Переделайте пожалуйста эту программу, используя процедуру
Program sort1;
var
const
N=10;
a : array [1 . . N] of integer;
i, min , j, buf, k: integer;
begin
writeln('Введите', N ,' целых в одной строке через пробел и нажмите ');
for k:=l to N do read(a[k]);
writeln (' Сортировка');
for i:=l to N-1 do
begin
min: =i;
for j:=i+l to N do
begin
if a[ j ] < a[min] then min:= j ;
buf: =a [ i ];
а [ i ] : =a [min];
а [ min ]: =buf;
end;
end;
for k := l to N do write (a [k], ' ');
writeln ( 'Массив отсортирован. ') ;
readln;
end.
Pascal процедура
В предложенном коде куча ошибок, и вообще, он не работает.
Предлагаю свой вариант(сортировка обменом):
[syntax='Delphi]
Program sort1;
const
N=10;
var
a:array [1..N] of integer;
i,j,k:integer;
procedure Sort;{Процедура}
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=a[j-1];
if k>a[j] then
begin
a[j-1]:=a[j];
a[j]:=k;
end;
end;
end;
begin
writeln('Введите ', N ,' целых в одной строке через пробел и нажмите ');
for i:=1 to N do
read(a);
readln;
writeln (' Сортировка');
Sort;
for i:= 1 to N do
write(a,' ');
readln;
end.
[/syntax]
Предлагаю свой вариант(сортировка обменом):
[syntax='Delphi]
Program sort1;
const
N=10;
var
a:array [1..N] of integer;
i,j,k:integer;
procedure Sort;{Процедура}
begin
for i:=N downto 1 do
for j:=2 to i do
begin
k:=a[j-1];
if k>a[j] then
begin
a[j-1]:=a[j];
a[j]:=k;
end;
end;
end;
begin
writeln('Введите ', N ,' целых в одной строке через пробел и нажмите ');
for i:=1 to N do
read(a);
readln;
writeln (' Сортировка');
Sort;
for i:= 1 to N do
write(a,' ');
readln;
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...