Ir ao conteúdo
  • Cadastre-se
Luan Maique

RESOLVIDO pascal - Executável gerado fecha sozinho sem mostrar o resultado

Recommended Posts

Bom dia galera, to precisando de uma ajuda simples =/

Estou começando a programar agora, faz 1 dia que comecei a estudar Pascal, fiz aquele programa simples de somar 2 numeros.

Beleza, ele deu certinho, mas o único problema é na hora que eu gero o executável =/

Eu gero ele , abro ele , faço a soma.. mas antes do resultado sair ele fecha.. por ex:

Digite o primeiro numero: "5"

Digite o próximo numero: "10" ai depois de ter digitado o número 10 eu aperto o enter, e ele fecha sem aparecer o resultado.. =/

Se alguém puder me ajudar ai agradeço muito mesmo!

Desde já , meu obrigado.

Obs: Programa Pascal zim

Program Pzim ;var num1,num2,soma:integer;beginwriteln ('Digite o primeiro numero');readln (num1);writeln ('digite o segundo numero');readln(num2);Soma:=num1+num2;writeln('o resultado da soma é:',soma);writeln('aperte enter para sair');end.

Ninguém sabe? =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu gero ele , abro ele , faço a soma.. mas antes do resultado sair ele fecha.. por ex:

Só complementando:

Coloque um Readln; após o seu último writeln.

 

Ou em outras palavras: antes do "end."

Então, o que acontece é que o comando "end." serve justamente para "fechar o programa". Daí, como logo após "mostrar o resultado" (nos write), está sendo chamado esse comando... logo o programa deve fechar mesmo.

Para evitar isso, uma forma seria colocar algum comando que tenha justamente a característica de "prender o fluxo do programa", ou seja, ao colocar um "readln" ou "read", o programa vai ficar "aguardando algo ser digitado (facultativo) e um ENTER".... logo funcionado como um pause para esse contexto..

Outra forma seria usar o comando ReadKey (pertencente a uma biblioteca CRT ou WinCRT... bastante usada no Pascal - se não conhece, uma dia você vai conhecer, :D). É semelhante ao readln e read, só que a função dela é somente "retornar a tecla que foi pressionada", daí, ao pressionar qualquer* tecla, o programa continuará (o readln e read ficam aguardando um ENTER especificamente).

 

Outra forma seria usar o Delay(), comando também da CRT.

 

PS: eu não lembro, mas acho que no PascalZim, o comando ReadKey já funciona como padrão. Em outro compiladores do mercado, é preciso carregar a biblioteca (um conjunto de funcionalidade extras) pelo uses. Ex.:

Program Pzim ;uses  CRT; //carrega comandos extras como ReadKey, ClrScr (limpar a tela), TextColor (mudar a cor) etcvar   num1,num2,  soma:integer;BEGINwriteln('Digite o primeiro numero');readln(num1);writeln('Digite o segundo numero');readln(num2);soma:=num1+num2;writeln('o resultado da soma é:',soma);writeln('aperte enter para sair');ReadKey; //fica aguardando pressionar uma tecla (apenas para o programa não fechar)END.

 

 Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, realmente funcionou. Nem tenho como agradecer , vivendo e aprendendo :P
 

Vou aprender muito com vocês ainda , e mas para frente ajudar pessoal igual eu estou também.

 

Muito obrigado! Deu certinho.
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×