Jump to content
Sign in to follow this  
PreTenDer666

Mais uma pergunta...como reiniciar o programa?

Recommended Posts

PreTenDer666

Mais uma vez...Boas,

ainda nao consegui atinar naquela parte das horas que perguntei, mas ja consegui acabar os outros dois que estava a fazer, mas agora falta limar as pontas...e a minha pergunta é: Como eles são supostos so aceitarem numeros (é esse o objectivo deles), como é que faço para quando alguem coloca uma letra ou um caracter que nao seja um numero para eles reiniciar em vez de fecharem automaticamente? 🤔

Desda ja agradeço a ajuda que me têm dado até ao momento, estão a ser espectaculares :D

Share this post


Link to post
Share on other sites
Warrior

Tenho a certeza que existe um método mais simples, mas foi nisto que pensei..

program teste;
var a,erro:integer;
    d:string;

function isnum(s:string):boolean;
var i:integer;
begin
  isnum:=true;
  for i:=1 to length(s) do
    if ((s[i]<'0') or (s[i]>'9')) then isnum:=false;
end;

begin
  repeat
    readln(d);
  until (isnum(d));
  val(d,a,erro);
  writeln(a);
end.

Share this post


Link to post
Share on other sites
GpL

Esse método não é o correcto.. o método correcto é algo como usar {$i+} e {$i-} no principio e no fim do algoritemo que lê o numero.. agora como é nesse caso não tenho a certeza.. sei que em ficheiros para o programa não abortar se o ficheiro não for encontrado usas este algoritemo

   

 clrscr;
     gotoxy(20,12);write('ABERTURA DE FICHEIRO');
     assign(F,'zzz.txt');{$I-}reset(F);{$I+}
     if ioresult<>0 then
                        begin
                             writeln('Novo ficheiro...');
                             existefich:=false;
                        end
                    else existefich:=true;

se o ioresult for diferente de 0 é porque o ficheiro não existe.. se for 0 o ficheiro existe e o programa conseguiu abri-lo para leitura,neste caso..

é um questão de pesquisar,usar a ajuda e tentar.. mas o algoritemo que tens de usar é basicamente isso..

cumps.

Share this post


Link to post
Share on other sites
Warrior

????????????????

é verdade que existem directivas de compilação para o programa não crashar por si mesmo, mas sinceramente duvido que seja essa que tu usaste.

Esse exemplo serve para ao fazeres o reset, se o ficheiro não existir, o programa não crashar.

Pesquisa por directivas de compilação em Pascal, pode ser que encontres alguma coisa

Share this post


Link to post
Share on other sites
GpL

Warrior.. e eu disse que isto era a maneira que se usava para ficheiros.. para o caso dele tenho quase a certeza que é duma maneira muito semelhante..

Share this post


Link to post
Share on other sites
GpL

Afinal não sei se existe alguma directiva de compilação para esse caso.. o que o meu prefessor me sugeriu foi ler tudo como string e converter para inteiro usando o procedimento Val ..

cumps

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.