Инструкция
1
Начните работу над программой с заголовка и указания перечня используемых подключаемых модулей:

program reshiprimer;
uses crt;
2
Укажите компилятору, какие в состав программы будут входить переменные:

var
a,b,c:integer;
d:string;

Здесь a и b - слагаемые, c - сумма, d - ответ на вопрос о том, желает ли пользователь играть дальше.
3
Обозначьте начало программы и бесконечного цикла, а также инициализируйте генератор случайных чисел:

begin
randomize;
while 0=0 do
begin
4
Запрограммируйте генерацию двух случайных чисел в диапазоне от 0 до 1000:

a:=round(random(1000));
b:=round(random(1000));
5
Покажите пользователю пример, который он должен решить, а затем запросите результат:

writeln('Сколько будет'),a,('+'),b,('?');
readln(c);
6
Сообщите пользователю, правильно ли он решил пример:

if a+b=c then writeln('Правильно!') else writeln('Неправильно!);
7
Спросите у пользователя, желает ли он играть еще:

writeln('Будем играть дальше?');
readln(d);
8
При отрицательном ответе завершите работу программы:

if upcase(d)'Y' then halt(0);
9
Завершите сначала цикл, а затем и саму программу:

end
end.

Обратите внимание на точку после второго оператора end.
10
Запустите программу, нажав Ctrl+F9. На экран будет выведен первый пример. Сосчитайте в уме и введите ответ на него. Машина тут же сообщит вам, правильно ли он решен. Затем будет задан вопрос о том, желаете ли вы играть дальше. Ответ Y или y приведет к выводу следующего примера, а ввод любой другой буквы - к завершению работы программы.
11
Добившись правильной работы игры, приступите к ее усовершенствованию. Например, добавьте очистку экрана перед показом каждого нового примера командой cls. Используя процедуру textcolor, сделайте, чтобы надписи выводились различными цветами. Подумайте, как можно заставить программу автоматически менять сложность примеров: при правильных ответах усложнять их, а при неправильных - упрощать. Чтобы разнообразить игру, добавьте функцию генерации примеров на различные математические действия.