Пример 3.4.
Элементы заданного числового массива
a1, a2,
..., aNупорядочить
по возрастанию.
Тест
Данные
Результат
N=4
A=(5, 2, 7, 1)
A=(1, 2, 5, 7)
Демонстрация
Школьный АЯ
алг Возрастание(арг цел N, арг рез
вещ таб A[1:N])
нач цел i, j, вещ Tmp
нц для i от 1 до N-1
нц для j от i+1 до N
ecлиA[i] > A[j]
то Tmp:=A[i]; A[i]:=A[j]; A[j]:=Tmp
все
кц
кц
кон
Исполнение алгоритма
i
j
A[i]>A[j]
Массив A
1
2
3
4
+
-
+
2, 5, 7, 1
1, 5, 7,
2
2
3
4
-
+
1, 2, 7, 5
3
4
+
1, 2, 5, 7
Блок-схема (фрагмент)
Turbo Pascal
Program Regulation;
Uses Crt;
Type Mas = Array [1..10] of Real;
Var A : Mas;
i, j, N : Integer;
Tmp : Real;
{--------------------------------------------}
Procedure Input; {описание процедуры ввода массива }
Begin
ClrScr;
Write('Введите N = '); ReadLn(N);
WriteLn('Введите элементы массива: ');
For i := 1 to N do
begin Write('A [ ' , i , ' ] = ');
ReadLn(A[i])
end;
End; {of Input}
{--------------------------------------------}
Procedure Regulate; {описание процедуры упорядочения по возрастанию}
Begin
For i := 1 to N-1 do
For j := i+1 to N do
If A[i] > A[j] then
begin Tmp:=A[i]; A[i]:=A[j]; A[j]:=Tmp
end;
End; {of Regulate}
{--------------------------------------------}
Procedure Output; {описание процедуры вывода результата}
Begin
WriteLn('Упорядоченный массив :');
For i:=1 to N do Write( A[i] : 6 : 1);
WriteLn; ReadLn
End; {of Output}
{--------------------------------------------}
BEGIN
Input; {вызов процедуры ввода массива }
Regulate; {вызов процедуры упорядочения по возрастанию}
Output {вызов процедуры вывода результата}
END.