(* Программа просит ввести количество транспортных средств, а затем цену каждого
транспортного средства, после чего выводит список цен по возрастанию и убыванию *)
Program Zadanie; {Заголовок программы}
Type
Massiv = Array [1..100] Of Real;
Var {Определение переменных}
Mass: Massiv;
Col, I, J: Integer;
{Процедура вывода на экран введенных цен}
Procedure OutputMass(OutCol:Integer;OutMass:Massiv);
Var
I:Integer;
Begin
WriteLn ('Введены цены: ');
For I:=1 To OutCol Do
Begin
Write (OutMass[I]:4:2,' ');
End;
WriteLn;
End;
{Процедура упорядочивания цен по возрастанию}
Procedure Up (ExCol:Integer; ExMass:Massiv);
Var
MassAZ: Massiv;
Buffer: Real;
I, J: Integer;
Begin
For I:=1 To ExCol Do
MassAZ[I]:=ExMass[I];
For I:=1 To ExCol Do
For J:=I To ExCol Do
Begin
If MassAZ[I] > MassAZ[J] Then
Begin
Buffer:=MassAZ[J];
MassAZ[J]:=MassAZ[I];
MassAZ[I]:=Buffer;
End;
End;
WriteLn ('Транспортные средства в порядке возрастания цены:');
For I:=1 To ExCol Do
Begin
Write (MassAZ[I]:4:2,' ');
End;
WriteLn;
End;
{Процедура упорядочивания цен по убыванию САМОСТОЯТЕЛЬНО}
Procedure Down (ExCol:Integer;ExMass:Massiv);
Var
MassZA: Massiv;
Buffer: Real;
I, J: Integer;
Begin
For I:=1 To ExCol Do
MassZA[I]:=ExMass[I];
For I:=1 To ExCol Do
For J:=I To ExCol Do
Begin
If MassZA[I]<MassZA[J] Then
Begin
Buffer:=MassZA[J];
MassZA[J]:=MassZA[I];
MassZA[I]:=Buffer;
End;
End;
WriteLn ('Транспортные средства в порядке убывания цены:');
For I:=1 To ExCol Do
Begin
Write (MassZA[I]:4:2,' ');
End;
WriteLn;
End;
{Основная программа}
Begin
Write ('Введите число транспортных средств (не более 100) : ');
ReadLn (Col);
For I:=1 To Col Do
Begin
Write ('Введите цену ',I,' транспортного средства : ');
ReadLn (Mass[I]);
End;
OutputMass (Col,Mass);
Up (Col,Mass);
Down (Col,Mass);
ReadLn;
End. {конец программы}