david-ikki Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 #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); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Matheus Matos Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 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!VlwMatheus Matos Citar Link para o comentário Compartilhar em outros sites More sharing options...
david-ikki Postado Setembro 29, 2009 Autor Denunciar Share Postado Setembro 29, 2009 Amigo igual a você eu estou aprendendo...postei esse codigo para saber se ficou bom ou não...Sou iniciante tanto quanto você...valeuu. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Jonathan Queiroz Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 A identação do código ficou meio estranha ali...Ah !Você esqueceu da biblioteca stdlib.h para usar o systemAnalisei 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); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Matheus Matos Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 hehe... na verdade o que eu queria falar era isso aí que o Jonathan falou! :lol: brincadeira....Enfim... vou tomar vergonha na cara e ler as apostilas de C/C++...VlwMatheus Matos Citar Link para o comentário Compartilhar em outros sites More sharing options...
david-ikki Postado Setembro 30, 2009 Autor Denunciar Share Postado Setembro 30, 2009 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") ?????? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Guilherme Arruda Postado Outubro 2, 2009 Denunciar Share Postado Outubro 2, 2009 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 :DSe falei algo errado por favor me corrijam. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
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.