Код
program pas;
uses crt;
const
  nq = 11;
  nok: array [1..nq] of Integer = (1,3,2,3,1,3,3,2,1,2,3);
    sgoon = 'Для продолжения нажмите клавишу Enter';
var otv,x,y,ires,nprav,i:integer;
    ch: Char;
    a:string;
    samotv,prav:array[1..nq] of integer;
    b: Boolean;
    s: String;
    nrep: array [1..nq] of Integer;
function GetRep: Integer;
const
  imin = 1;
  imax = 3;
begin
  x:=WhereX;   y:=WhereY;
  {if imin > imax then begin
    i:=imin;
    imin:=imax;
    imax:=i;
  end;}
  repeat
    readln(s);
    Val(s, ires, i);
    b := (ires >= imin) and (ires <= imax) and (i = 0);
    if not b then begin
      GotoXY(x+Length(s)+2, y);
      writeln(#27' Ошибка ввода ответа');
      write('Для продолжения нажмите любую клавишу ');
      repeat until KeyPressed;
      while KeyPressed do Readkey;
      GotoXY(x, y);   ClrEol;
      writeln;   ClrEol;   GotoXY(x, y);
    end;
  until b;
  GetRep:=ires;
end; {GetRep}
begin
 repeat
nprav:=0;
clrscr;
textcolor(22);
gotoxy(1,1);
write('Clane Company');
textcolor(22);
gotoxy(58,1);
write('e-mail:clane@online.ru');
textcolor(15);
    gotoxy(29,2);
    write('┌────────────┐');
    gotoxy(29,3);
    write('│            │');
    gotoxy(29,4);
    write('└────────────┘');
    gotoxy(30,3);
    write('Version 1.0');
textcolor(15);
gotoxy (25,12);
write('Это тест по географии ');
gotoxy(20,23);
write(sgoon);
readln;
clrscr;
textcolor(15);
gotoxy (25,12);
write('Тест по столицам Азии');
gotoxy(20,23);
write(sgoon);
readln;
clrscr;
gotoxy(25,10);
write ('Вопрос номер 1: ');
gotoxy (25,12);
write('Назовите столицу России ? ');
gotoxy(20,14);
write('1) Москва; ');
gotoxy(20,16);
write('2) Тверь; ');
gotoxy(20,18);
write('3) Саратов; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[1]:=GetRep;
    if nrep[1] = nok[1] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 2: ');
gotoxy(25,12);
write('Назовите столицу Италии ? ');
gotoxy(20,14);
write('1) Милан; ');
gotoxy(20,16);
write('2) Венеция; ');
gotoxy(20,18);
write('3) Рим; ');
gotoxy(25,24);
write('Ваш ответ : ');
    nrep[2]:=GetRep;
    if nrep[2] = nok[2] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 3: ');
gotoxy (25,12);
write('Назовите столицу Испании ? ');
gotoxy(20,14);
write('1) Сарагоса; ');
gotoxy(20,16);
write('2) Мадрид; ');
gotoxy(20,18);
write('3) Валенсия; ');
gotoxy(25,24);
write('Ваш ответ : ');
    nrep[3]:=GetRep;
    if nrep[3] = nok[3] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 4: ');
gotoxy (25,12);
write('Назовите столицу Франции ? ');
gotoxy(20,14);
write('1) Нант; ');
gotoxy(20,16);
write('2) Лион; ');
gotoxy(20,18);
write('3) Париж; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[4]:=GetRep;
if nrep[4] = nok[4] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 5: ');
gotoxy (25,12);
write('Назовите столицу Германии ? ');
gotoxy(20,14);
write('1) Берлин; ');
gotoxy(20,16);
write('2) Бонн; ');
gotoxy(20,18);
write('3) Мюнхен; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[5]:=GetRep;
if nrep[5] = nok[5] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 6: ');
gotoxy (25,12);
write('Назовите столицу Англии ? ');
gotoxy(20,14);
write('1) Ковентри; ');
gotoxy(20,16);
write('2) Бирмингем; ');
gotoxy(20,18);
write('3) Лондон; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[6]:=GetRep;
if nrep[6] = nok[6] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 7: ');
gotoxy (25,12);
write('Назовите столицу Греции ? ');
gotoxy(20,14);
write('1) Салоники; ');
gotoxy(20,16);
write('2) Патры; ');
gotoxy(20,18);
write('3) Афины; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[7]:=GetRep;
if nrep[7] = nok[7] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 8: ');
gotoxy (25,12);
write('Назовите столицу Норвегии  ? ');
gotoxy(20,14);
write('1) Тронхейм; ');
gotoxy(20,16);
write('2) Осло; ');
gotoxy(20,18);
write('3) Одда; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[8]:=GetRep;
if nrep[8] = nok[8] then nprav:=nprav+1;