+ Responder ao Tópico



  1. #1

    Cool compilação no Dev C++

    Olá pessoal,
    eu comecei a ler e testar uma apostila de programação em C a dois dias. Quero e preciso me aprofundar em programação...é uma coisa que gosto de fazer é entender coisas complexas...

    Eu estou usando o Dev C++, mas não consigo executar os códigos...
    quando termino de digitar o código, salvo, compilo, corrijo os erros. Mas quando eu vou executar, só aparece uma tela do dos que pede para eu inserir os valores das variáveis e quando clico enter não exibe o resultado. Preciso de ajuda. Alguém pode me ajudar?

    Aparece a janela pedindo para inserir o número de dias, mas não exibe o resultado em anos, a janela fecha rapidim.

    Aqui vai o código, não olhem para os comentários, porque sou eu mesmo que estou escrevendo, a apostila não dá estes detalhes.


    /*Programa para calcular idade*/
    /*Edimilson Araujo - Desenvolvedor*/
    /*este é meu segundo programa em C*/

    #include <stdio.h> /* inclusao do arquivo de cabeçalho*/

    int main () /*Definimos a funcao main, que será chamada
    quando o programa for ser executado*/

    { /*abertura de chaves, o conteudo da funcaoo main esta delimitado
    por chaves*/

    int Dias; /*Declarei a variavel dias com o tipo int*/

    float Anos; /*Declarei a variavel anos com o tipo float*/

    printf ("Entre com o numero de dias:");
    /* Chamada a funcao printf que coloca uma mensagem na tela do monitor
    para entrada de dados que sera armazenada na variavel dias*/

    scanf ("%d, &Dias");
    /* A funcao scanf captura a digitacao do usuario.
    A codigo de controle %d informa que vai ler um dado do tipo inteiro.
    O paramentro & diz que o dado sera armazenado na variavel dias.
    A virgula sera necessaria porque temos mais de um paramentro para
    a funcao scanf, neste caso %d e & estao separados por virgula*/

    Anos=Dias/365.25;
    /*Conversao de dias em anos*/
    printf ("\n\n%d dias equivalem a %f anos; \n, Dias, Anos");

    return (0);
    }

  2. #2

    Padrão Ta funcionando agora mas...

    #include<stdio.h>

    int main(){

    int Dias;
    float Anos;


    while (1 > 0) {
    printf("Entre com o numero de dias:");
    scanf("%d", &Dias);

    Anos = Dias/365.25;

    printf("%d dias equivalem a %f anos \n", Dias, Anos);
    }

    }


    Tem que formular melhor o algoritmo eu nem li o código fiza na correria mas ta funcionando agora...

  3. #3

    Thumbs up funcionou!!

    Muito obrigado Hyagosallet
    Agora está funcionando normalmente. Cara é incrível isso: eu estou usando uma apostila do curso de Sistemas de Informação e em todos os exemplos não se usa as funções de controle de fluxo. Só vão aparecer no capítulo 6 aí começa a aparecer condições if, for while.

    Neste caso o while (1 > 0) resolveu meu problema...

    Valeu pela ajuda, quando eu estiver mais avançado vou responder as perguntas dos tópicos também para a galera que está iniciando.

    valew

  4. #4

    Arrow novo teste!

    Fiz um novo código, é só colocar uma expressão verdadeira. Ficou legal. Também funcionou
    A variável foi iniciada e na condição (while) eu já usei os nomes das variáveis. Veja:
    Agora estou convertendo anos em dias, é mais usual.

    #include<stdio.h>

    int main(){

    float Dias = 5;
    int Anos = 1;


    while (Dias > Anos) {
    printf("Entre com o numero de anos:");
    scanf("%d", &Anos);

    Dias = Anos*365.25;

    printf("%d anos equivalem a %f dias \n", Anos, Dias);
    }

    }

  5. #5

    Padrão

    No seu primeiro script, (com excessão dos erros de sintaxe) ele iria executar normalmente, porém quando a execução termina (se você executou ele apartir de uma interface gráfica) o prompt de comando fecha, para isso não acontecer basta você "travar" o console, por exemplo, esperar o input de uma tecla:

    Para windows, utilize o getch da lib conio (header: conio.h).

    Para linux, você pode utilizar tanto o "getchar" como o "pause", este último precisa receber um sinal para destravar, ou seja, você pode finalizar com o CTRL+C (SIGTERM).

    Não é aconselhavel você utilizar uma estrutura de repetição para este caso (ao menos que você realmente precise).

    Uma dica, sei que você está iniciando mas os comentários nunca devem falar o óbvio, senão fica cheio de informação que não precisa, use eles para dizer o que você pretende fazer, a sintaxe deixa por conta do programador.

    A[]'s

  6. #6

    Padrão

    Eu geralmente usava (no windows) a instrução system("pause").

  7. #7
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão

    Não é bom utilizar system("pause"), isto é POG (Programação orientada a gambiarra)

    [Tutorial] system("pause") e fflush(stdin) - iMasters Fóruns

    Things to Avoid in C/C++ -- system("pause"), Part 4 - GIDNetwork
    Última edição por osmano807; 03-08-2009 às 14:14.

  8. #8

    Talking

    valew,
    obrigado pelas dicas.
    Consegui o C: total e completo, estou lendo, tenho pouco tempo, mas estou tentando

  9. #9

    Padrão

    cara esse system ("pause") não funcionou, não compila de forma alguma rsrsrsrsrsrs

  10. #10
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão

    Citação Postado originalmente por edimilsondoacre Ver Post
    cara esse system ("pause") não funcionou, não compila de forma alguma rsrsrsrsrsrs
    Olha o POG! Nem todo sistema suporta isto!
    Agora:
    Código :
    void esperar()
    {
    printf("Pressione enter para continuar");
    scanf("%*c");
    }
    No seu código
    Código :
    int main()
    {
     
    /* todo o seu codigo antes disto */
    esperar();
    return(0);
    }

  11. #11

    Padrão

    Hehehe.. POG é f**a!! me sacaneou hein osmano! Na minha época de C eu era noob mesmo!