procedure FindMin(startindex: integer; var lowindex: integer); var lowelem: real; u: integer; begin lowindex := startindex; lowelem := M[startindex]; for u:=startindex+1 to N do if M[u] < lowelem then begin lowelem := M[u]; lowindex := u end end;
begin for j:=1 to N-1 do begin FindMin(j, i); swap(M[j],M[i]) end end.
Создаёшь в папке с программой два текстовых файла с именами "1.txt." и "output.txt". В первый записываешь 8 чисел без пробелов и запятых ("22031991", например).
type matrix = array [1..8] of integer;var F, output: text; i, n, cc, sum: integer; c: char; x: matrix; ma: real; procedure convert (var c: char; var cc: integer);begin if c='1' then cc:=1; if c='2' then cc:=2; if c='3' then cc:=3; if c='4' then cc:=4; if c='5' then cc:=5; if c='6' then cc:=6; if c='7' then cc:=7; if c='8' then cc:=8; if c='9' then cc:=9; if c='0' then cc:=0;end; procedure sorting (n: integer; x: matrix);begin for n:=1 to 7 do begin if x[n]>x[n+1] then swap(x[n],x[n+1]); end;end; begin Assign(F, '1.txt'); Reset(F); for i:=1 to 8 do begin read(F, c); convert(c,cc); x[i]:=cc; end; Close(F); sorting(n,x); sum:=x[1]+x[2]+x[3]+x[4]+x[5]+x[6]+x[7]+x[8]; ma:=sum/8; Assign(output, 'output.txt'); rewrite(output); writeln(output, sum); writeln(output, ma); Close(output);end.
Const n=10; var a,b:array[1..n] of integer; i,si,smax:integer; begin Writeln('Введите парами длины катетов ',n,' треугольников'); smax:=0; for i:=1 to n do begin Read(a[i],b[i]); si:=a[i]*b[i]; { пополам разделим потом максимальное } if si>smax then smax:=si end; Writeln('Треугольник(и) с максимальной площадью, равной ',smax/2,':'); for i:=1 to n do if a[i]*b[i]=smax then Writeln('№',i,': ',a[i],'x',b[i]); Writeln end.
Пример работы Введите парами длины катетов 10 треугольников 7 16 18 10 9 5 15 11 9 19 15 12 11 13 9 20 14 10 12 8 Треугольник(и) с максимальной площадью, равной 90: №2: 18x10 №6: 15x12 №8: 9x20
procedure FindMin(startindex: integer; var lowindex: integer);
var lowelem: real;
u: integer;
begin
lowindex := startindex;
lowelem := M[startindex];
for u:=startindex+1 to N do
if M[u] < lowelem then
begin
lowelem := M[u];
lowindex := u
end
end;
begin
for j:=1 to N-1 do
begin
FindMin(j, i);
swap(M[j],M[i])
end
end.