1. Короткий современный вариант ("один оператор")// PascalABC.NET 3.1, сборка 1230 от 27.04.2016begin Writeln('Sпол.неч = ',ArrRandom(50,-10,20).Println .Where((x,i)->(x>0) and (i.IsEven)).Sum)end.
Тестовое решение15 16 0 17 20 7 -3 -4 9 9 -3 -8 14 10 10 11 7 18 -8 8 0 15 1 4 11 1 9 -10 -7 -7 12 17 8 13 7 15 1 13 12 11 4 -5 -3 -6 -5 -10 -9 -8 8 -8Sпол.неч = 148
2. Длинный "школьный" вариант ("почувствуйте разницу")// PascalABC.NET 3.1, сборка 1230 от 27.04.2016var a:array[1..50] of integer; i,s:integer;begin Randomize; s:=0; for i:=1 to 50 do begin a[i]:=Random(31)-10; Write(a[i],' '); if (a[i]>0) and Odd(i) then s:=s+a[i] end; Writeln; Writeln('Sпол.неч = ',s)end.
Тестовое решение4 14 4 7 9 -4 3 6 20 -10 3 -3 15 12 9 0 3 12 13 -1 9 -2 -2 16 18 -2 5 9 17 -3 4 -6 10 10 -5 10 8 13 12 15 13 1 12 1 7 6 9 2 -9 -6 Sпол.неч = 207