Написал на Паскале программу перевода римских чисел в десятичные. как сделать так, чтобы программа при ошибочном вводе

Написал на Паскале программу перевода римских чисел в десятичные. как сделать так, чтобы программа при ошибочном вводе
как сделать так, чтобы программа при ошибочном вводе вводи выдавала фразу, скажем, 'Ошибка данных: неверные символы'? что куда дописать надо? если начинаю трогать что либо, это влияет на конечный результат...
Program three;
var
a:string;
n,z,j,state:integer;
ok:boolean;
begin
n:=0;
ok:=true;
while ok<>false do
begin
writeln('Введите строку');
readln(a);
for j:=1 to length(a) do
if (a[j]='X') and (a[j]='I') and (a[j]='V') then ok:= false;
if ok=false then begin writeln('Ошибка'); break; end;
state:=1;
for j:=1 to length(a) do
begin
case state of
1: case a[j]of
'X': begin n:=n+10; state:=2; end;
'V': begin n:=n+5; state:=3; end;
'I': begin n:=n+1; state:=6; end;
end;
2: case a[j]of
'X': begin n:=n+10; state:=2; end;
'V': begin n:=n+5; state:=3; end;
'I': begin n:=n+1; state:=6; end;
end;
3: case a[j]of
'X': begin writeln('Ошибка'); n:=0; end;
'V': begin writeln('Ошибка'); n:=0; end;
'I': begin n:=n+1; state:=4; end;
end;
4: case a[j]of
'X': begin writeln('Ошибка'); n:=0; end;
'V': begin writeln('Ошибка'); n:=0; end;
'I': begin n:=n+1; state:=5; end;
end;
5: case a[j]of
'X': begin writeln('Ошибка'); n:=0; end;
'V': begin writeln('Ошибка'); n:=0; end;
'I': begin n:=n+1; state:=7; end;
end;
6: case a[j]of
'X': begin n:=n+8; state:=7; end;
'V': begin n:=n+3; state:=7; end;
'I': begin n:=n+1; state:=5; end;
end;
7: case a[j]of
'X': begin writeln('Ошибка'); n:=0; end;
'V': begin writeln('Ошибка'); n:=0; end;
'I': begin writeln('Ошибка'); n:=0; end;
end;
end;

end; writeln('n=',n);
n:=0;
writeln('Продолжить счёт?');
readln(z);
if z=0 then ok:=false;
end;
end.

  • Зачем тут нужна переменная ок, зачем этот кусок кода
    for j:=1 to length(a) do
    if (a[j]='X') and (a[j]='I') and (a[j]='V') then ok:= false;
    if ok=false then begin writeln('Ошибка'); break; end;
    Он абсолютно бесполезен, или тебе нужно знать, является ли хоть один символ одновременно X,V и I ???
    А вообще, можешь сразу после считывания строки проверить циклом, есть ли запр символы
    Я сам в паскале не мастер, но код абсолютно не рабочий, как я понял, если ввести скажем ХХХХХХХХХХХХХХ, то программа нам даст результат, хотя должен выдавать ошибку, в общем переписи все заново