FreePascal IDE (fp.exe) не поддерживает кириллицу. Это факт. Да, можно было использовать Lazarus, но в нём, на мой вкус, для школы, слишком много отвлекающего.
В Linux поддерживает нормально. А Windows, я считаю, не так хороша в целях обучения.
Лично я бы с удовольствием рассмотрел бы для обучения язык Ada, читай более строгий Pascal плюс сопрограммы, плюс пре-пост условия, плюс доказательство корректности. Стандарт Ada 2012 как по мне очень удачный.
Это было бы замечательно, но, к сожалению, очень высок стартовый уровень. Ученики разочаруются и разбегутся раньше, чем смогут написать первую программу.
А в чём сложность? Вот я только что за 10 минут в рабочей Ubuntu выполнил четыре команды и скомпилировал простую Ada программу:
$ sudo apt install gnat
... (skipped) ...
$ cat <<EOF >hello.adb
> with Ada.Text_IO;
> procedure Hello is
> begin
> Ada.Text_IO.Put_Line("Hello, world!");
> end Hello;
> EOF
$ gnatmake hello.adb
gcc-4.9 -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
$ ./hello
Hello, world!
-- 08.02.2018, 18:26 --Позволю себе не согласиться. Не знаю, когда это у меня пошло, но у меня есть практика стараться делать объявление переменных в начале каждой процедуры (наверное, всё-таки со школы — когда на Паскале программировал). Всякие аргументы типа "до переменных в большой программе не добраться, если они не на месте" — весьма сомнительны, так как в таких случаях очевидно, что текст программы разросся чрезмерно, и её надо бы прорезать на функции/классы/отдельные файлы (особенно это касается профессионального программирования). В то время как при описанной практике смотришь на заголовочную часть — и сразу становится понятно, какие у процедуры входные параметры и какие вспомогательные переменные.
В Ada переменные можно объвлять в начале блока:
declare
Det: constant Long_Float := A11 * A22 - A12 * A21;
begin
A := Det * Det;
B := 2 * Det;
end;
В целом если переменная — константа внутри метода, но вычисляется на основании параметров, то её как-бы нет возможности объявить при таком подходе — нужна точка инициализации.