Не лишу себя удовольствия показать еще одно очень красивое и очень странное решение через словари.
n = int(input())
print({1<=n<=4: "Начальная школа",
5<=n<=9: "Среднее звено",
10<=n<=11: "Старшее звено"}[True])
Здесь мы создаем неименованный словарь, который в качестве ключа использует условное выражение, а в качестве значения - соответствующую этому выражению строку.
Когда мы тут же передаем ему в качестве ключа True, словарь начнет проверять ключи и вернет именно то значение, у которого выражение-ключ было истинным.
//Составить программу заполнения массива случайными числами в диапазоне -30 до 30 и определяет количество чётных элементов массива.
program massiv;
const N=20;
var m:array[1..n] of integer;// поставил 20 элементов массива
i:byte;
count:integer;
BEGIN
//заполнение случайными числа в диапазоне [-30;30]
//random(61) выдает случ. значение от 0 до 60, если вычесть -30 с концов этого отрезка получится от -30 до 30
for i:=1 to n do m[i]:=random(61)-30;
//вывод полученного массива на экран
writeln('Полученный массив');
for i:=1 to n do write(m[i],' ');
writeln;//переход на следующую строку
//сортировка пузырковым методом
for i:=1 to n do
if (m[i] mod 2=0) then count:=count+1;
writeln('Кол-во четных элементов = ', count);
END.
Объяснение: