// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
Writeln(a[:a.IndexMax].Where(x->(x>=1) and (x<=12)).Count)<br>end.
Пример
n= 15
3 12 -1 10 -7 18 10 19 8 9 -2 4 0 19 13
4
А вот так учат писать эту же программу в школе...
const
nn=100;
var
a:array[1..nn] of integer;
i,n,imax,k:integer;
begin
Randomize;
Write('n='); Read(n);
for i:=1 to n do begin
a[i]:=Random(41)-20;
Write(a[i],' ');
end;
Writeln;
imax:=1;
for i:=2 to n do
if a[i]>a[imax] then imax:=i;
k:=0;
for i:=1 to imax do
if (a[i]>=1) and (a[i]<=12) then k:=k+1;<br> Writeln(k)
end.
Вот отсюда и вопрос: для чего учить писать длинно, сложно и малопонятно?