Type Massiv=array[1..100] of integer; var a,b:Massiv; n,i,j,p:integer; begin randomize; write('Ввод n='); readln(n); writeln('Нужно неубывание (1) или невозрастание (2)?'); readln(p); if p=2 then p:=-1; writeln('Массив:'); a[1]:=random(20)-5; for i:=2 to n do a[i]:=a[i-1]+p*random(5); write('('); for i:=1 to n do write(a[i],' '); write(')'); writeln;
i:=1; j:=0; while i<n do begin if a[i]=a[i+1] then begin inc(j); b[j]:=a[i]; end; while (i<n)and(a[i]=a[i+1]) do inc(i); inc(i); end; writeln('Новый массив:'); for i:=1 to j do write(b[i]:4); readkey End.
// PascalABC.NET 3.2, сборка 1385 от 14.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),1,9); a.Println; var d:=new dictionary<integer,integer>; foreach var e in a do d[e]:=d.Get(e)+1; var s:=d.Where(x->x.Value>1).Select(x->x.Key); if s.Count=0 then Writeln('Нет дублирующихся элементов') else begin Write('Дублирующиеся элементы: '); s.Println; Write('В порядке возрастания: '); s.Sorted.Println end end.
var
a,b:Massiv;
n,i,j,p:integer;
begin
randomize;
write('Ввод n=');
readln(n);
writeln('Нужно неубывание (1) или невозрастание (2)?');
readln(p);
if p=2 then p:=-1;
writeln('Массив:');
a[1]:=random(20)-5;
for i:=2 to n do a[i]:=a[i-1]+p*random(5);
write('(');
for i:=1 to n do write(a[i],' ');
write(')');
writeln;
i:=1; j:=0;
while i<n do
begin
if a[i]=a[i+1] then begin inc(j); b[j]:=a[i]; end;
while (i<n)and(a[i]=a[i+1]) do inc(i);
inc(i);
end;
writeln('Новый массив:');
for i:=1 to j do write(b[i]:4);
readkey
End.
Пример:
Ввод n=20
Нужно неубывание (1) или невозрастание (2)?
1
Массив:
(11 12 12 12 16 16 17 21 25 25 26 30 30 32 36 36 38 42 45 47 )
Новый массив:
12 16 25 30 36