Вычислить среднее положительных элементов массива (a1,), имеющих четные индексы. если таковых элементов нет, вывести на печать признак 0. выполнить нужно через массив в среде разработки паскаль abcnet
begin var n:=40; var a:=ArrRandomInteger(n,-40,40); a.Println; var b:=a.Where((x,i)->(x>0)and(i mod 2=0)); if b.Count=0 then writeln(0) else writeln(power(b.Aggregate(1,(p,q)->p*q),1/b.Count)); end.
Пример (для n=10): -19 38 -37 18 9 -5 17 29 19 -2 14.2718961622815
в кинозале всего 16×32=512 мест. Сообщение о купленном билете однозначно определяет выбор одного из этих мест. Из уравнения 2 i = 512=29получаем: i=9 бит. Но эту же задачу можно решать иначе. Сообщение о номере ряда несет 4 бита информации, т.к. 24=16. Сообщение о номере места несет 5 бит информации, т.к. 25=32. В целом сообщение про ряд и место несет: 4+5=9 бит информации. Данный пример иллюстрирует выполнение закона активности информации (правило сложения): количество информации в сообщении одновременно о нескольких результатах независимых друг от друга событий равно сумме количеств информации о каждом событии отдельно.
var c, a: array[1..20] of integer; i: integer; begin write('Первый массив '); for i := 1 to 20 do begin c[i] := i * (-5); write(c[i], ' '); end; writeln; write('Преобразованный массив '); for i := 1 to 20 do begin a[i] := c[20 - i + 1]; write(a[i], ' '); end; end.
ИЛИ Программа не использующая два массива, а просто переворачивающая первый
var c: array[1..20] of integer; i: integer; begin write('Первый массив '); for i := 1 to 20 do begin c[i] := i * (-5); write(c[i], ' '); end; writeln; write('Преобразованный массив '); for i := 20 downto 1 do write(c[i], ' '); end.
begin
var n:=40;
var a:=ArrRandomInteger(n,-40,40); a.Println;
var b:=a.Where((x,i)->(x>0)and(i mod 2=0));
if b.Count=0 then writeln(0)
else writeln(power(b.Aggregate(1,(p,q)->p*q),1/b.Count));
end.
Пример (для n=10):
-19 38 -37 18 9 -5 17 29 19 -2
14.2718961622815