• Matéria: Informática
  • Autor: profile
  • Perguntado 8 anos atrás

int main(void) {
int gama,beta;

gama=49;
beta=0;

while(beta!=1){

if(gama%2==1) printf("\nJULIO");

gama = gama -7;
if(gama==7) beta=1;


}


return 0;
}

Queria entender o processamento desse programa


bokomoko: Agora se me permite uma pergunta : porque isso tudo ? Porque você obviamente não tá curtindo essa disciplina de programação. Tá fazendo ela obrigado ?

Respostas

respondido por: bokomoko
2
Escrevi o programa identado para facilitar o entendimento 
Int main(void) {                  // aqui é declaração criando o programa
    int gama,beta;               // criou duas variáveis inteiras , game e beta

    gama=49;                      // gama passa a valer 49
    beta=0;                          // beta passa a valer 0 

    while(beta!=1){              // enquanto beta for diferente de 1 .... faça ..
                                          // esse poderia ser assim while (!beta)

        if(gama%2==1) printf("\nJULIO");  //se gama for impar ele imprime JULIO. Esse if poderia ser simplificado para if (gama%2) printf("\nJULIO");
        gama = gama -7;             // subtrai 7 de gama, 
        if(gama==7) beta=1;        // se gama for igual a 7, beta passa a ser 1
}

O que vai acontecer aí é o seguinte
gama vai começar com 49 e vai ser subtraido de 7 a cada loop.
Antes de subtrair, o programa testa se gama é impar. Se for, ele imprime o JULIO numa próxima linha. Como gama começa com 49 e vai diminuindo de 7 em 7, e 49 é multiplo de 7, significa que ele só vai imprimir JULIO nos multiplos de 7 que são ímpares entre 49 e 7 (porque 7 eu explico lá adiante)
gama = 49 -> imprime JULIO
gama = 42 (depois de tirar 7 de gama) -> não imprime julio
gama = 35 -> imprime julio
gama = 28 -> nao imprime julio
gama = 21 -> imprime julio
gama = 14 -> não imprime julio
gama = 7 -> imprime julio 
E Aí acontece uma coisa importante !! Tchan tchan !!!
Esse tempo todo o if (gama ==7) tava dando falso e portanto, fazia nada
Só que agora gama é de fato igual 7 !! aí o if dá verdadeiro e acontece uma cosia maravilhosa, boa mesmo, ... BETA recebe o valor 1 !! bicho, isso é importante demais. Você não faz ideia. É mmmmmmmmuito importante que beta tenha um valor diferente de 0 !! porque se beta nunca chegar a algo diferente de 0 ... o while vai ser verdadeiro para sempre (um nunca alguma coisa equivale a um sempre o contrário dessa coisa). O programa iria rodar para sempre e nunca iria terminar. Já pensou ? Um programa inútil desses rodando até o fim da eternidade ? Pior que vida eterna. Pois bem, como beta agora passa a valer 1, o while (beta!=0) vai dar falso e programa sai do loop, ainda bem, já era hora, finalmente, demoroooooou !

E é isso, em poucas palavras, o que o programa processa.

Perguntas similares