1) Дан целочисленный массив размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна 1)

Вывести массив, содержащий длины всех серий исходного массива.

2) Проверить, образуют ли элементы целочисленного массива размера N 1)арифметическую,2)геометрическую прогрессию. Если да, то вывести 1)разность2) знаменатель прогрессии, если нет — вывести 0.

1

Ответы и объяснения

  • Участник Знаний
2013-02-08T17:44:38+04:00

Если не ошебаюсь то так ) Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа,
и количество таких элементов. Найденные номера выводить в порядке их возрастания.

var a,d:array[1..255]of integer;
i,c,n:byte;
begin
write('n=');
read(n);
for i:=1 to n do
begin
write('a[',i,']=');
read(a)
end;
writeln;
c:=0;
for i:=1 to n-1 do
if a>a[i+1] then
begin
c:=c+1;
d[c]:=i
end;
writeln('TaKuX EJIEMEHTOB:',c);
for i:=1 to c do write(d,' ');
writeln
end.

2) Дан целочисленный массив A размера N,являющийся перестановкой.
Найти количество инверсий в данной перестановке,т.е. таких пар Ai И Aj элементов
в которых большее число находится слева от меньшего:Ai>Aj при i<j>L) и целочисленный массив размера N.
Заменить каждую серию массива, длина которой меньше L, на один элемент с нулевым значением.
Что-то я не понял, что это за Л? Вот решил так:

var a:array[1..256]of integer;
i,j,n:byte;
c:integer;
begin
write('n=');
read(n);
for i:=1 to n do
begin
write('a[',i,']=');
read(a)
end;
writeln;
c:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if a>a[j] then inc(c);
writeln('Колличество инверсий - ',c);
end.