Задача 3. Медленная сортировка

Ввести последовательность вещественных чисел длиной не более 100 чисел. Упорядочить последовательность по неубыванию, используя алгоритм сорти­ровки выбором.

{ Решение задачи 3 на языке PASCAL }

CONST Nmax=100;

TYPE TArray=ARRAY[1..Nmax] OF Real; VAR A : TArray; n,i,j,Imin : Byte; Min : Real; BEGIN Write('Введите длину последовательности '); Read(n);

IF (n=0)OR(n>Nmax) THEN BEGIN

WriteLn('Невернaя длина'); Halt; END; WriteLn('Введите последовательность'); FOR i:=1 TO n DO Read(A[i]);

FOR i:=l TO n-1 DO BEGIN Imin:=i; Min:=A[i]; FOR j:=i+1 TO n DO

IF A[j]<Min THEN BEGIN Min:=A[j]; Imin:=j; END; IF Imin<>i THEN BEGIN A[Imin]:=A[i]; A[i]:=Min; END;

END;

WriteLn('ynopHA04eHHaH последовательность :'); FOR i:=1 TO n DO Write(A[i]:16); WriteLn; END.

/* Решение задачи 3 на языке C */

#define NMAX 100

typedef double TArray[NMAX];

void main(void) {TArray a; char n,i,j,Imin; double Min;

рпйц^'^Введите длину последовательности "); scanf("%i",&n); if(n<=0||n>NMAX){printf(м\nНeвepнaя длина"); exit(1);} printf("\nВвeдитe пoслeдoвaтeльнoсть\n"); for(i=0;i<n;i++)scanf("%lg",a+i); for(i=0;i<n-1;i++){

for(Imin=i,Min=a[i],j=i+1;j<n;j++)if(aLj]<Min){Min=a[j];Imin=j;}

if(Imin!=i){a[Imin]=a[i];a[i]=Min;}} printf("\nУпopядoчeннaя последовательность :\n"); for(i=0;i<n;i++)printf("%16lg",a[i]);}

C Решение задачи 3 на языке FORTRAN PARAMETER(Nmax=100) REAL*8 A(Nmax),Min INTEGER*1 n,i,j,Imin

PRINT*,'Ввeдитe длину последовательности ' READ*,n

IF (n.LE.0.OR.n.GT.Nmax) STOP'Нeвepнaя длина' PRINT*,'Ввeдитe последовательность' READ*,(A(i),i=1,n) DO 1 i=1,n-1 Imin=i

Min=A(i)

DO 2 j=i+1,n

IF(A(j).LT.Min) THEN

Min=A(j)

Imin=j

END IF

2 CONTINUE

IF(Imin.NE.i) THEN

A(Imin)=A(i) A(i)=Min END IF 1 CONTINUE

PRINT*,'Упopядoчeннaя последовательность :' PRINT 99,(a(i),i=1,n) 99 FORMAT(5G16.3)

END