
17.11.2009, 18:10
|
|
Познающий
Регистрация: 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.
|
|
|