Показать сообщение отдельно

  #2  
Старый 17.11.2009, 18:10
Syntaxys
Познающий
Регистрация: 02.09.2007
Сообщений: 67
С нами: 9836841

Репутация: 20
По умолчанию

Отсев.

Удалить в заданном массиве х(н) "лишные" элементы
кроме первого так, чтобы оставшиеся образовали
возрастающую последовательность (за один просмотр массива).

Сделал все, кроме упорядочивания. Подскажите как массив упорядочить за один просмотр массива или реализовать удаление и сортировку за один просмотр.

Код:
Program sdvig;
type
    Mas=array [0..99] of integer;
Procedure vvod(Var m:Mas; Var kolvo:integer);
          Var i:integer;
              begin
                   repeat
                         write('Vvedite kolvo elementov:');
                         readln(kolvo);
                   until kolvo>0;
                   for i:=1 to kolvo do
                       begin
                            write('element:');
                            read(m[i]);
                       end;
              end;
Procedure udalenie(Var m:Mas; Var element:integer;Var kolvo:integer);
Var i:integer;
   Begin
        for i:=element to kolvo do
            Begin
            m[i]:=m[i+1];
            End;
            kolvo:=kolvo-1; //не отображать нуль-элемент массива
            
   End;
var i,m,kolvo,element:integer;
    accept:string;
    n:mas;
Begin
     vvod(n,kolvo);
     repeat
     writeln('Vvedite Nomer elementa');
     readln(element);
     udalenie(n,element,kolvo);
       writeln('Massiv:');
       for i:=1 to kolvo do
           write(n[i],' ');
     writeln(' ');
     writeln('Udalit esho 1 element massiva?');
     writeln('Yes/no?');
     repeat
           read(accept);
     until (accept='no') or (accept='yes') ;
     until accept = 'no';
end.
 
Ответить с цитированием