uses crt; label main,Z,Dalee,Dalee2; type vect=array [1..10] of longint; var b,c:vect; a:array[1..10] of string; i,k,j,L,chislo,ch:longint; n:string; f:boolean; function PEREVOD (n:string):longint; var i:byte; ch: longint; begin ch:=0; for i:=1 to length (n) do begin ch:=ch+(ord(n[i])-48) * trunc(Exp((length(n)-i)*Ln(10))); end; PEREVOD:=ch; end; procedure SORTIROVKA (var chislo:longint; var b:vect); label Sort; var T:longint; klav :char; k,i:longint; begin Sort: writeln(' Вы хотите произвести сортировку'); writeln(' 1.По возрастанию'); writeln(' 2. По убыванию'); writeln(' Сделайте свой выбор, нажав соответствующую клавишу'); readln (klav); case klav of '1':begin for k:=1 to chislo-1 do for i:=1 to chislo-k do if b[i] > b[i+1] then begin T:=b[i]; b[i]:=b[i+1]; b[i+1]:=T; end; writeln; writeln; for i:=1 to chislo do begin writeln(b[i]); end; end; '2':begin for k:=1 to chislo-1 do for i:=1 to chislo-k do if b[i] < b[i+1] then begin T:=b[i]; b[i]:=b[i+1]; b[i+1]:=T; end; writeln; writeln; for i:=1 to chislo do begin writeln(b[i]); end; end; else begin writeln('Некорректный ввод. Повторите еще раз'); writeln; writeln; goto Sort; end; end; end; begin clrscr; main: writeln; write('Введите количество сортируемых цифр ( не больше 10 ) --> '); readln(n); {if n= then begin writeln ('Некорректное значение'); goto main;end;} for j:=1 to length (n) do begin l:=ord (n[j])-48; if (l< 0) or (l> 9) then begin writeln('Некорректное значение'); goto main; end; end; goto Dalee; Dalee: k:=0; for j:=1 to length (n) do begin l:=ord(n[j])-48; c[j]:=l; k:=k+1; end; if k > 10 then begin writeln('Недопустимое значение числа'); goto main; end; if k=10 then begin if (c[1]=3) or (c[1]>3) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]>1) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3] > 4) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]>7) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]>4) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]=4) and (c[6]>8) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]=4) and (c[6]=8) and (c[7]>3) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]=4) and (c[6]=8) and (c[7]=3) and (c[8]>6) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]=4) and (c[6]=8) and (c[7]=3) and (c[8]=6) and (c[9] >4) then begin writeln('Недопустимое значение числа'); goto main; end; if (c[1]=2) and (c[2]=1) and (c[3]= 4) and (c[4]=7) and (c[5]=4) and (c[6]=8) and (c[7]=3) and (c[8]=6) and (c[9] =4) and (c[10]>7) then begin writeln('Недопустимое значение числа'); goto main; end; end; begin chislo:=PEREVOD (n); if (chislo < 11) and (chislo <>0) and (chislo >0) then begin for i:=1 to chislo do begin Z: write('Введите ', i, '- ое число --> '); readln (a[i]); for j:=1 to length (a[i]) do begin l:=ord (a[i][j])-48; if (l< 0) or (l> 9) then begin writeln('Некорректное значение'); goto Z; end; end; for i:=1 to chislo do b[i]:=PEREVOD(a[i]); SORTIROVKA (chislo,b); end; end; if (chislo > 11) or (chislo=11) then begin writeln('Некорректное значение'); goto main; end; readkey; end; end.