Programa que permite inserir ate 100 numeros, e mostra o maior, o menor, média e a moda

program estatistica;
uses
CRT;
var
numeros:array[1..100] of byte;
media: double;
resp:char;
sair:boolean;
nvezes, cont, cont2, cont3, moda, moda2, maior, menor:byte;
 
begin
  repeat
    begin
      CLRSCR;
      sair:=false;
      writeln('De 0 a 100, diga quantos numeros pretende inserir!');
      readln(nvezes);
      while (nvezes<1) or (nvezes>100) do
        begin
          CLRSCR;
          writeln('O numero que inseriu ‚ inv lido. Por favor insira outro de 0 a 100!');
          readln(nvezes);
        end;
      for cont:=1 to nvezes do
        begin
          writeln('Insira um numero');
          readln(numeros[cont]);
        end;
      maior:=0;
      for cont:=1 to nvezes do
        begin
          if numeros[cont]>maior then
            begin
              maior:=numeros[cont];
            end;
        end;
      menor:=100;
      for cont:=1 to nvezes do
        begin
          if numeros[cont]<menor then
            begin
              menor:=numeros[cont];
            end;
        end;
      media:=0;
      for cont:=1 to nvezes do
        begin
          media:= numeros[cont]+media;
          if cont=nvezes then
            begin
              media:= media/nvezes;
            end;
        end;
      cont:=1;
      cont2:=1;
      repeat
        begin
          moda:=numeros[cont];
          for cont:=1 to nvezes do
            begin
              if numeros[cont]=moda then
                begin
                  cont2:=cont2+1;
                end;
            end;
          if cont2 > cont3 then
            begin
              moda2:=moda;
              cont3:=cont2;
            end;
          cont:=cont+1;
        end;
      until cont>= nvezes;
      if cont3=1 then
        begin
          writeln('Dos numeros que inseriu, o maior ‚: ',maior);
          writeln('Dos numeros que inseriu, o menor ‚: ',menor);
          writeln('A m‚dia dos numeros que inseriu ‚: ',media:5:2);
          writeln('Nao existe moda');
          writeln('Deseja sair do programa? S/N');
          readln(resp);
        end
      else
        begin
          writeln('Dos numeros que inseriu, o maior ‚: ',maior);
          writeln('Dos numeros que inseriu, o menor ‚: ',menor);
          writeln('A m‚dia dos numeros que inseriu ‚: ',media:5:2);
          writeln('A moda dos numeros que inseriu ‚: ',moda);
          writeln('Deseja sair do programa? S/N');
          readln(resp);
        end;
      while (resp<>'S') and (resp<>'s') and (resp<>'N') and (resp<>'n') do
        begin
          CLRSCR;
          writeln('A sua resposta est‚ inv lida. Insira S/N');
          readln(resp);
        end;
      if (resp='s') or (resp='S') then
        begin
          sair:=true;
        end;
    end;
  until sair=true;
end.