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.
Пример:
Ввод 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
<span>Сортировка методом пузырька (по возрастанию)
procedure MassivSort(var arr : array of Real; const N : Integer);var I: Integer; J: Integer; K: Integer; M: Real;begin for i:=1 to N do begin m:=Arr[i-1]; k:=i; for j:=i to n do begin if m>Arr[j-1] then begin m:=Arr[j-1]; k:=j; end; end; Arr[k-1]:=Arr[i-1]; Arr[i-1]:=m; end;end;
Сортировка по убыванию:
<span>procedure sort;
var i , j , tmp : integer;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] < a[j] then begin
tmp := a[i];
a[i] := a[j];
a[j] := tmp;
end<span>;</span></span>
</span>
Var
s,a:real;
begin
write('Введите значение a=');read(a);
S:=4*a*4+2*sqr(a);
write('S=',s);
end.
Впринципе вот сам и алгоритм. Пожалуйста проверь на тестах, 100% просто гарантировать врядли смогу
//Pascal
const
N = 5;
var
a: array [1..N] of integer;
s: integer;
begin
s := 0;
for var i := 1 to N do
begin
a[i] := Random(100);
if (a[i] mod 2 = 0) then s := s + a[i];
write(a[i]:5);
end;
writeln;
writeln('Сумма четных: ', s);
end.