Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
SamuelPG

Galera que manja nas bruxaria do pascal aí, ajudem!

Recommended Posts

É que a professora mandou fazer um questionário em pascal, mas aí fiz no Pzim. 
Mas ela disse q só acieta na miséria do DevPascal, disse que se os programas não rodarem no dev, vai zerar a questão. 
Daí testei os programas no Dev, e a maioria, não, todos não rodaram. 


Se tiver respostas, logo após eu posto os programas, caso contrário...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fazia uma pequena gambiarra quando tinha de programar em pascal no curso.

Fazia todo o código no notepad++ e rodava no compilador do pascal, dessa forma o código que eu colocava no notepad++ saia da mesma forma que se eu colocasse o código através do compilador do pascal.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Eu fazia uma pequena gambiarra quando tinha de programar em pascal no curso.

    Fazia todo o código no notepad++ e rodava no compilador do pascal, dessa forma o código que eu colocava no notepad++ saia da mesma forma que se eu colocasse o código através do compilador do pascal.

    Huum, mas o problema nem é esse meu caro. 

    É o seguinte: 

    Eu coloco o programa no Dev de boas, coloco o [uses crt; e o readkey;], para que o resultado saia na interface.

    Mas assim que chega no resultado com o programa já rodando, ele saai. 

    Não da o resultado nem nada, deixa você no vácuo, kkk 

     

    Ajude ae, se souber o que é ! 

     

    Desde já agradecido ;)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá...

     

    Huum, mas o problema nem é esse meu caro. 

    É o seguinte: 

    Eu coloco o programa no Dev de boas, coloco o [uses crt; e o readkey;], para que o resultado saia na interface.

    Mas assim que chega no resultado com o programa já rodando, ele saai. 

    Não da o resultado nem nada, deixa você no vácuo, kkk 

     

    Ajude ae, se souber o que é ! 

     

    Desde já agradecido ;)

     

    Sem o código não posso dá uma opinião mais precisa, mas se o programa tiver "fechando sem mostrar o resultado", pode ser porque, ao chegar no final do programa, o "interpretador" executa o comando "END.", e este serve justamente "encerrar o programa"... daí, o resulto é simplesmente fechar mesmo... ou seja, tem compilador que ao executar esse "end."... "encerra o programa e continua com a tela aberta", mas tem outros que "ao encerrar o programa, simplesmente fecha o mesmo"... dando uma impressão que não mostrou o resultado... RESUMIDAMENTE: nestes casos, ele mostrou resultado, e fechou logo depois (não dando tempo de visualizar - mas mostrou! :) )...

     

    Uma forma de solucionar esse problema seria colocando algo que "pause" (interrompa o fluxo de execução das instruções) o programa antes de fechar... ex.:
     

    ...readln;END.

    Esse readln vai "tentar ler algo do teclado", logo, para continuar terá que dar um ENTER... vai ter o mesmo efeito que um "pause".... outro exemplo:

    ...writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln;END.

    Sacou?

    Caso essa questão não seja o seu caso, favor informar mais detalhes... se possível poste o código e qual problema está ocorrendo.

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Olá...

     

     

    Sem o código não posso dá uma opinião mais precisa, mas se o programa tiver "fechando sem mostrar o resultado", pode ser porque, ao chegar no final do programa, o "interpretador" executa o comando "END.", e este serve justamente "encerrar o programa"... daí, o resulto é simplesmente fechar mesmo... ou seja, tem compilador que ao executar esse "end."... "encerra o programa e continua com a tela aberta", mas tem outros que "ao encerrar o programa, simplesmente fecha o mesmo"... dando uma impressão que não mostrou o resultado... RESUMIDAMENTE: nestes casos, ele mostrou resultado, e fechou logo depois (não dando tempo de visualizar - mas mostrou! :) )...

     

    Uma forma de solucionar esse problema seria colocando algo que "pause" (interrompa o fluxo de execução das instruções) o programa antes de fechar... ex.:

     

    ...readln;END.
    Esse readln vai "tentar ler algo do teclado", logo, para continuar terá que dar um ENTER... vai ter o mesmo efeito que um "pause".... outro exemplo:

    ...writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln;END.
    Sacou?

    Caso essa questão não seja o seu caso, favor informar mais detalhes... se possível poste o código e qual problema está ocorrendo.

     

    No aguardo.

     

    E aê cara! 

    Obrigaado pela resposta, mas eu já tinha até resolvido.

    POrém essa sua resposta é bem válida pra mim, já que eu nem uso esse comondo no fim. O programa fica até mais legalcolocando ele.

    writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln;END.
    O que estava acontecendo era que antes de colocar "VAR" e depois as variáveis, tinha que ter o comando "uses crt", e antes de finalizar o programa com "END.", tinha que colocar "Readkey();" (NO PZIM, QUANDO COMEÇA A FAZER A ESTRUTURA DO PROGRAMA ELE SÓ VEM COM O:- PROGRAM - VAR - BEGIN E POR FIM O END; - JÁ O DEV ELE JÁ VEM COM ESSES E: PROGRAM - USES CRT; - VAR - BEGIN - READKEY(); E POR FIM O END.

    Eu nem sei explicar bem o que é desses (uses crt; e readkey();, por que é meu primeiro ano estudando programação, mas é isso aí.

    ANTES

    Program Q10;varkinicial,kfinal,kcombustivel,kganho: real;lucro, mconsumo, pcombustivel: real ;Beginwriteln('Digite o Km inicial: ');readln(kinicial);writeln('Digite o Km final: ');readln(kfinal);writeln('informe a quantidade de combustivel comsumida : ');readln(kcombustivel);writeln('qual o preço do combustivel?');readln(pcombustivel);writeln('Quanto voce ganhou ?: ');readln(kganho);lucro:=kganho-((kcombustivel)*pcombustivel);mconsumo:=(kfinal-kinicial)/kcombustivel;writeln('Media de consumo: ',mconsumo:0:1);writeln('Lucro: ',lucro:0:1);end.
    DEPOIS:Program Q10;uses crt;varkinicial,kfinal,kcombustivel,kganho: real;lucro, mconsumo, pcombustivel: real ;Beginwriteln('Digite o Km inicial: ');readln(kinicial);writeln('Digite o Km final: ');readln(kfinal);writeln('informe a quantidade de combustivel comsumida : ');readln(kcombustivel);writeln('qual o preço do combustivel?');readln(pcombustivel);writeln('Quanto voce ganhou ?: ');readln(kganho);lucro:=kganho-((kcombustivel)*pcombustivel);mconsumo:=(kfinal-kinicial)/kcombustivel;writeln('Media de consumo: ',mconsumo:0:1);writeln('Lucro: ',lucro:0:1);writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln; //com o uso do comando q você colocou, hehe! kkreadkey;end. 
    Então, muito obrigado pela sua resposta.

    Um grande abraço! \o

    Da uma olhada nesse programa aqui velho, se puder.

    Ver se não tem nada que possa melhorar ou sei la.

    Valeu

    Lista de Exercícios.zip

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá
     

    Eu nem sei explicar bem o que é desses (uses crt; e readkey();, por que é meu primeiro ano estudando programação, mas é isso aí.

     
    Funciona mais ou menos assim: o comandos que qualquer linguagens de programação devem ser previamente definidos..., ou seja, "só podemos executar algo que já existe". No caso do Pascal, esses comandos básicos como readln, write, writeln, for, while, repeat, já são previamente "carregados" e "disponibilizados" para os programados... (explico melhor mais abaixo)
     
    No coso da ReadKey, ela é uma function (função) que NÃO ESTÁ NA LISTA DE COMANDOS PADRÕES... ou seja, como se não existisse (ainda)...  Daí, para esses casos, essa linguagem permite carregar "comandos extras"... que estão em estruturas chamadas unit (biblioteca)... O comando para carregar, adivinha? "uses".

    RESUMIDAMENTE
    O ReadKey pertence a unit CRT (ou WinCRT, para alguns compiladores), e este não é carragado por padrão, daí...
     
    Exemplo:

    Program xxxx;uses //comando para carregar bibliotecas CRT, //Biblioteca que contém comandos extras, como ReadKey, KeyPressed, ClrScr, TextColor, TextBackgroudn etc DOS; //Bibliotaca que contém comandos como DateTime... (não lembro de outros, rs)

    Esse DOS é outra unit que tem outros comando... só como exemplo... :)
     
    Ao carregar a(s) unit, automaticamente os comandos passam a ser disponíveis para o código. Se você observar, o "exe" gerado vai ficar maior, pois teve que incorporar a biblioteca!

    Obs.: Os comandos básicos citados acima também estão em bibliotecas, basicamente numa de nome System, só que este já são carregadas automaticamente... (não precisa carregar - seria como ao carregar o Pascal, internamente seja executado um uses System, sacou?)
     
     
     
    Em relação a "evitar que o programa feche"
     

    Program Q10;uses crt;varkinicial,kfinal,kcombustivel,kganho: real;lucro, mconsumo, pcombustivel: real ;......writeln('Media de consumo: ',mconsumo:0:1);writeln('Lucro: ',lucro:0:1);writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln; //com o uso do comando q você colocou, hehe! kkreadkey;end. 

    Perceba que ambos os comandos estão sendo usados para a mesma finalidade... Então, tanto o ReadLN, tanto o ReadKey, são comando que servem para "ler dados do teclado"... e essa característica, de ler, faz com que o programa "pare" e fique aguardando esses dados... Daí, aproveitamos isso e "simulamos um pause"..

    No caso do ReadLN, aguarda "um ENTER". No caso do ReadKey, aguarda "qualquer* tecla".
     

    RESUMIDAMENTE

    Ou você usa um, ou usa o outro...

     

    ou

    writeln('FIM DO PROGRAMA - pressione ENTER para finalizar');readln; //servindo como pause, já que para para ler o tecladoend.

    ou

    writeln('FIM DO PROGRAMA - pressione qualquer tecla para finalizar');readkey; //servindo como pause, já que para para ler o teclado - comando pertencente a bliblioteca CRTend.

    No aguardo.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    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

    ×