1)Определить есть ли в массиве из 30 элементов хотя бы одна тройка соседних чисел, в которой средний элемент больше своих "соседей", т. е. предшествующего и последующего. В случае положительного ответа определить номера элементов первой из таких троек. Результат вывести на экран.
2)Опишите алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30
Нужно оформить аналогично на питоне, я пока плохо разбираюсь в оформлении и могу выполнить решение только на паскале
Решение
1)const
N = 100500;
var
a: array[1..N] of integer;
i,index: integer;
begin
for i :=1 to N do
read(a);
index := -1;
for i := 2 to (N─1) do
if ((a > a[i─1]) and (a > a[i+1]) and (index=-1)) then index := i;
if (index = -1) then
write('Нет таких чисел')
else
write(index─1,' ',index,' ',index+1);
end.
2)const N=30;
var a: array[1..N] of integer;
MaxEven, NumEven, i: integer;
begin
MaxEven:=0;
NumEven:=0;
for i:=1 to N do
read(a);
for i:=1 to N do
if (a mod 2 = 0) then
NumEven:=NumEven+1
else begin
if NumEven>=MaxEven then
MaxEven:=NumEven;
NumEven:=0;
end;
if NumEven>=MaxEven then
MaxEven:=NumEven;
Writeln(MaxEven);
end.
function summa(n:integer):integer;
var a,s:integer;
begin
a:=abs(n);
s:=0;
while a>0 do
begin
s:=s+a mod 10;
a:=a div 10;
end;
summa:=s
end;
const n=10;
var A:array [1..n] of integer;
j,i,k:integer;
begin
writeln('Исходный массив: ');
for i:=1 to n do
begin
A[i]:=random(15)+1;
write(A[i]:4);
end;
for i:=1 to n-1 do
begin
for j:=1 to n-1 do
if summa(A[j])<summa(A[j+1]) then
begin
k:=A[j];
A[j]:=A[j+1];
A[j+1]:=k
end;
end;
writeln;
writeln('Отсортированный массив: ');
for i:=1 to n do
write(A[i]:4);
readln
end.