Usamos uma crítica para conferir se foi digitado um valor correto, usando para isso um teste lógico, dentro de uma repetição (laço), de onde só sairá quando for digitado um valor desejado, ou seja, obrigando que seja digitado um valor válido.
Exemplo: Programa para calcular a média de 3 notas de 10 alunos, criticando a nota digitada:
program media_notas;
var
NOME:string;
N1,N2,N3,MEDIA:real;
CONT:integer;
begin
clrscr;
FOR CONT:=1 to 10 do
begin
write('Digite o nome e as 3 notas do ',cont,'o aluno ');
readln(NOME,N1,N2,N3);
while (N1<0) or (n1>10) or (N2<0) or (N2>10) or (N3<0) or (N3>10) do
begin {repete enquanto as notas forem menores que 0 ou maiores que 10!}
writeln('Notas inválidas! Digite notas de 0 a 10!');
readln(N1,N2,N3);
end;
MEDIA:=(N1+N2+N3)/3;
writeln('A média do aluno ',NOME,' é: ',MEDIA:2:2);
end;
readkey;
end;