Procedure Chisla(n : Integer); var a : Integer; begin if (n < 1) then WriteLn else begin Read(a); if (Abs(a) < 1000) then begin Chisla(n-1); Write(a,' '); end else Chisla(n); end;end; function ReadN() : Integer; var n : Integer;begin Write('n='); ReadLn(n); if Not(n in [0..1000]) then n := ReadN(); ReadN := n;end; var n : Integer; begin n := ReadN(); WriteLn('Введите ', n, ' целых чисел через пробел и нажмите Enter'); Chisla(n); end.
Const n=6; a:array[1..n] of string= ('Иванов','Петров','Сидоров','Козлов','Баранкин','Пупкин'); b:array[1..n] of real=(15,13.9,16.1,14.2,14.5,15.3); // массивы используются чтобы избежать в примере ручного ввода var i,j,k:integer; t:real; s:string; sa:array[1..n] of string; sb:array[1..n] of real; begin for i:=1 to n do begin sa[i]:=a[i]; sb[i]:=b[i] end; // сортировка по возрастанию времени for i:=1 to n-1 do for j:=1 to n-1 do if sb[j]>sb[j+1] then begin s:=sa[j]; sa[j]:=sa[j+1]; sa[j+1]:=s; t:=sb[j]; sb[j]:=sb[j+1]; sb[j+1]:=t end; // вывод for i:=1 to 4 do Writeln(sa[i],' - ',sb[i]) end.
Пример Петров - 13.9 Козлов - 14.2 Баранкин - 14.5 Иванов - 15
var a : Integer;
begin
if (n < 1) then
WriteLn
else
begin
Read(a);
if (Abs(a) < 1000) then
begin
Chisla(n-1);
Write(a,' ');
end
else
Chisla(n);
end;end; function ReadN() : Integer;
var
n : Integer;begin
Write('n=');
ReadLn(n);
if Not(n in [0..1000]) then
n := ReadN();
ReadN := n;end; var
n : Integer; begin
n := ReadN();
WriteLn('Введите ', n, ' целых чисел через пробел и нажмите Enter');
Chisla(n);
end.
n=6;
a:array[1..n] of string=
('Иванов','Петров','Сидоров','Козлов','Баранкин','Пупкин');
b:array[1..n] of real=(15,13.9,16.1,14.2,14.5,15.3);
// массивы используются чтобы избежать в примере ручного ввода
var
i,j,k:integer;
t:real;
s:string;
sa:array[1..n] of string;
sb:array[1..n] of real;
begin
for i:=1 to n do begin sa[i]:=a[i]; sb[i]:=b[i] end;
// сортировка по возрастанию времени
for i:=1 to n-1 do
for j:=1 to n-1 do
if sb[j]>sb[j+1] then begin
s:=sa[j]; sa[j]:=sa[j+1]; sa[j+1]:=s;
t:=sb[j]; sb[j]:=sb[j+1]; sb[j+1]:=t
end;
// вывод
for i:=1 to 4 do Writeln(sa[i],' - ',sb[i])
end.
Пример
Петров - 13.9
Козлов - 14.2
Баранкин - 14.5
Иванов - 15