Ir para conteúdo
Fórum Script Brasil

analalizem e falem o que acham..


david-ikki

Posts Recomendados

#include<stdio.h>

int func_dia(int dia)                 /*Cria uma função dia que depois pode ser chamada de outro ponto do programa*/
{
                         while((dia<1)||(dia>31))
                         {
                                                 printf("\nDigite entre 1 e 31: ");
                                                 scanf("%d",&dia);
                                                 }            
                         }
                         int func_mes(int mes)                      /*cria uma função mes que pode ser chamada de outro ponto do programa*/
                         {
                             while((mes<1)||(mes>12))
                             {
                                                     printf("\nDigite entre 1 e 12: ");
                                                     scanf("%d",&mes);
                                                     }
                                                     }
                         int main()
                         {
                             system("color 1f");       /*muda a cor da letra e o fundo da tela*/
                             int dia,mes,ano,calc;
                             printf("\nDigite o Dia: ");
                             while((dia<1)||(dia>31))/* analiza a entrada de dados,se não estiver correto repete*/ 
                             {
                                                    scanf("%d",&dia);
                                                    if((dia<1)||(dia>31))printf("\nDigite entre 1 e 31: ");/* testa se esta no limite se não estver imprime fraze*/
                                                    }
                             printf("\nDigite o Mes: ");
                             while((mes<1)||(mes>12))
                             {
                                                     scanf("%d",&mes);
                                                     if((mes<1)||(mes>12))printf("\nDigite mes entre 1 e  12: ");
                                                     }
                                                                          if((dia>30)&(mes==4)||(mes==6)||(mes==9)||(mes==11))/*testa se a variavel dia é maior que trinta
                                                                           e se os meses digitado foi 4,6,9,11 se os meses corresponder ao teste, então dia só poderar aceitar até 30,
                                                                           caso contrario retornara para a função dia*/
                                                                          {
                                                                          system("cls");
                                                                          printf("\nDigite dia entre 1 e 30: ");
                                                                          scanf("%d",&dia);
                                                                          func_dia(dia); 
                                                                          }
                                                                          printf("\nDigite o ano: ");
                                                                          while((ano<1900)||(ano>2100))
                                                                          {
                                                                                                       scanf("%d",&ano);
                                                                                                       if((ano<1900)||(ano>2100))
                                                                                                       {
                                                                                                                                 system("cls");
                                                                                                                                 printf("Digite entre 1900 e 2100: ");
                                                                                                                                 }
                                                                                                                                 calc=ano%4%400;/*faz uma divisão por 4 e 400 e salva na variavel
calc o resto*/
                                                                                                                                 if((calc==0))/*testa se o resto é zero se for zero então continua*/
                                                                                                                                 {
                                                                                                                                              printf("\nEste ano e bissexto\n\n");
                                                                                                                                                                                if((calc==0)&(mes==2)&(dia>29))/*testa o resto se é zero
                                                                                                                                                                                e se o mes é 2 e ve se dia é maior  que 29 caso tudo certo
                                                                                                                                                                                então retorna para a função dia*/
                                                                                                                                                                    {
                                                                                                                                                                     system("cls");
                                                                                                                                                                     printf("\nDigite dia entre 1 e 29: ");
                                                                                                                                                                     scanf("%d",&dia);
                                                                                                                                                                     func_dia(dia);
                                                                                                                                                                     }
                                                                                                                                              }
                                                                                                                                              if((calc!=0)&(mes==2)&(dia>28))/*testa a variavel calc se é não 0 e se mes  é = à 2
                                                                                                                                              e dia maior que 29 caso esteja certo então retorna para função dia */
                                                                                                                                              {
                                                                                                                                                                    printf("\nDigite dia ente 1 e 28: ");
                                                                                                                                                                    scanf("%d",&dia);
                                                                                                                                                                    func_dia(dia);
                                                                                                                                                                    }
                                                                                                                                                                    }
                                                                                                                                                                    printf("\nA data corresponde a dia %d do %d de %d\n\n",dia,mes,ano); 
                                                                                                                                 system("pause");
                                                                                                                                 return(0);
                                                                                                                                 }

Link para o comentário
Compartilhar em outros sites

putz... cara... eu acho que aquela variável que você criou na linha 1076 sabe? Ficou inutil! Sério, poderia ter utilizado o laço for ou o getElementByID, e também, sabe para mostrar se o ano é bissexto? Poderia ter utilizado o font-size:14pt; com font-family:Arial, Tahoma, Sans-Serif; hm... deixa eu ver mais o que.... aqueles if's poderiam ter sidos utilizados juntamentes com os elses!

hahahaha... zueira veii.... sei nada de C/C++ e também esquece o que falei digitei agora... não sei se é possível trabalhar com css em softwares em C/C++, e gostaria de saber... tipo, estou vendo que você já sabe pelo menos algo para a criação de um simples script, mas, que envolve bastante coisa como criação e manipulação de variável entre outras coisas que concerteza são utéis! Que tal você escrever um post aqui para o fórum para ajudar iniciantes como eu? E não vai ajudar apenas a mim como à bastante gente, não se vê muito de C/C++ por aí, mais apostilas, mas nada como um site ou post, onde a gente possa debater ali mesmo sabe? Tipo, lógico que se você escrevesse o tópico, não necessariamente você respoderia as dúvidas que surgiriam, mas usáriamos o fórum aqui do scriptbrasil para isso.

Espero(amos) pelo post!

Há! Algum moderador pode mover isso para a área de Avaliações de trabalhos? E também as tags

[ /code] no script do david!

Vlw

Matheus Matos

Link para o comentário
Compartilhar em outros sites

A identação do código ficou meio estranha ali...

Ah !

Você esqueceu da biblioteca stdlib.h para usar o system

Analisei o código por alto, mas deve ser evitado o uso demasiado do system, principalmente para chamar o pause, já que já outras formas de se fazer isso.

Seria interessante também um maior reaproveitamento de código. Você pode, por exemplo, definir a qtd de dias de cada mês em um vetor, etc.

Nos testes que fiz não vi nenhum erro, mas acho que seria interessante não limpar a tela sempre que o usuário comete um "erro" (por exemplo, digitar 30 dias para fevereiro)

Segue também o código com uma identação diferente e a stdlib.h inclusa:

#include <stdio.h>
#include <stdlib.h>

int func_dia(int dia)                 /*Cria uma função dia que depois pode ser chamada de outro ponto do programa*/
{
    while((dia<1)||(dia>31))
    {
        printf("\nDigite entre 1 e 31: ");
        scanf("%d",&dia);
    }            
}
int func_mes(int mes)                      /*cria uma função mes que pode ser chamada de outro ponto do programa*/
{
    while((mes<1)||(mes>12))
    {
        printf("\nDigite entre 1 e 12: ");
        scanf("%d",&mes);
    }
}
int main()
{
    system("color 1f");       /*muda a cor da letra e o fundo da tela*/
    int dia,mes,ano,calc;
    printf("\nDigite o Dia: ");
    while((dia<1)||(dia>31))/* analiza a entrada de dados,se não estiver correto repete*/
    {
        scanf("%d",&dia);
        if((dia<1)||(dia>31))printf("\nDigite entre 1 e 31: ");/* testa se esta no limite se não estver imprime fraze*/
    }
    printf("\nDigite o Mes: ");
    while((mes<1)||(mes>12))
    {
        scanf("%d",&mes);
        if((mes<1)||(mes>12))printf("\nDigite mes entre 1 e  12: ");
    }
    if((dia>30)&(mes==4)||(mes==6)||(mes==9)||(mes==11))/*testa se a variavel dia é maior que trinta
    e se os meses digitado foi 4,6,9,11 se os meses corresponder ao teste, então dia só poderar aceitar até 30,
    caso contrario retornara para a função dia*/
    {
        system("cls");
        printf("\nDigite dia entre 1 e 30: ");
        scanf("%d",&dia);
        func_dia(dia);
    }
    printf("\nDigite o ano: ");
    while((ano<1900)||(ano>2100))
    {
        scanf("%d",&ano);
        if((ano<1900)||(ano>2100))
        {
            system("cls");
            printf("Digite entre 1900 e 2100: ");
        }
        calc=ano%4%400;/*faz uma divisão por 4 e 400 e salva na variavel
        calc o resto*/
        if((calc==0))/*testa se o resto é zero se for zero então continua*/
        {
            printf("\nEste ano e bissexto\n\n");
            if((calc==0)&(mes==2)&(dia>29))/*testa o resto se é zero
            e se o mes é 2 e ve se dia é maior  que 29 caso tudo certo
            então retorna para a função dia*/
            {
                system("cls");
                printf("\nDigite dia entre 1 e 29: ");
                scanf("%d",&dia);
                func_dia(dia);
            }
        }
        if((calc!=0)&(mes==2)&(dia>28))/*testa a variavel calc se é não 0 e se mes  é = à 2
        e dia maior que 29 caso esteja certo então retorna para função dia */
        {
            printf("\nDigite dia ente 1 e 28: ");
            scanf("%d",&dia);
            func_dia(dia);
        }
    }
    printf("\nA data corresponde a dia %d do %d de %d\n\n",dia,mes,ano);
    system("pause");
    return(0);
}

Link para o comentário
Compartilhar em outros sites

Sim amigo entendi o q você falou, + foi um dos primeiros exercicios que fiz com poucos recursos....+ desde já agradeço a observação...obrigado...valeu..abraço.

há, o que eu poderia usar para substituir o system("pause") ??????

Link para o comentário
Compartilhar em outros sites

usa um getchar(), o system("pause") da muito problema em Linux por exemplo, é uma pratica condenada.

É só para travar a tela e não finalizar o aplicativo.

Caso você esteja utilizando o codeblocks não vai precisar de nenhum.

Pelo menos é o que me ensinaram :D

Se falei algo errado por favor me corrijam.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...