Ir para o conteúdo
ibuh

Ano Bisexto

Mensagens Recomendadas

ibuh    0
ibuh

Viva, gostaria de saber se alguem me pode\consegue dar umas dicas para fazer um programa que ao digitar um ano (ex.2000) o programa diga se é ano bisexto ou não. Obrigado!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Se o resto da divisão inteira desse ano por 4 for igual a 0 é bissexto.

2000 % 4 = 0  Bissexto

2004 % 4 = 0  Bissexto

2003 % 4 = 3  Não é Bissexto

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mogers    14
mogers

Se o resto da divisão inteira desse ano por 4 for igual a 0 é bissexto.

2000 % 4 = 0  Bissexto

2004 % 4 = 0  Bissexto

2003 % 4 = 3  Não é Bissexto

Na verdade não é tão simples como pensámos.

No final do século XVI foi

introduzido o calendário Gregoriano, usado até hoje na maioria

dos países, adotando as seguintes regras:

1- Todo ano divisível por 4 é bissexto

2- Todo ano divisível por 100 não é bissexto

3- Mas se o ano for também divisível por 400 é bissexto

Basicamente, um ano bixesto é um ano que é divisivel por 4, mas não pode ser divisivel por 100 (a menos que seja divisivel por 400). Por isso 2000 é bixesto (porque é divisivel por 400, mas 1900 não é bixesto porque não é divisivel por 400).

O resto da divisão calculas como o Hipnoted disse.

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Desculpa lá mas eu lembro-me bem que em 2000 foi um ano bissexto.

Não quero discutir os anos bissextos e poluir o tópico mas é a primeira vez que ouço dizer tal coisa. :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
merlin3000    0
merlin3000

O que o mogers disse está correcto, para corrigir o calendário Juliano o calendário gregoriano faz com que todos os 400 anos existam menos 3 dias.

Tu deves ter lido mal o que ele disse porque se 2000 é um ano divisível por 400, é considerado um ano bissexto.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mogers    14
mogers

Por isso 2000 é bixesto (porque é divisivel por 400, mas 1900 não é bixesto porque não é divisivel por 400).

Leste mal :)  Eu também fiquei admirado quando soube disto... é coisa que não nos afecta muito ehehe

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Guest corrosi0n   
Guest corrosi0n

Assume que em principio o ano não é bissexto.

Depois testa: se o ano é divisivel por 400 OU se é (divisivel por 4 E nao por 100) entao o ano é bissexto.

Para saberes se é divisivel verifica se o resto da divisao inteira tem resultado zero.

Espero que tenha sido esclarecedor, é a minha primeira intervenção neste forum :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
ber0x88    0
ber0x88

Viva, gostaria de saber se alguem me pode\consegue dar umas dicas para fazer um programa que ao digitar um ano (ex.2000) o programa diga se é ano bisexto ou não. Obrigado!

#include <iostream>
using namespace std;
int main()
{
int ano;
cout << "Ano: "; cin >> ano;
if (ano % 400 == 0 || ano % 4 == 0 && ano % 100 != 0)
{
	cout << "E' ";
        }
else
{
	cout << "Nao e' ";
}
cout << "ano bissexto.";
}

Aqui tens um programa que tinha feito há tempos...  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
nDray    1
nDray

É sempre necessário, senão 300, por exemplo, dava bissexto, pois independentemente de não ser divisivel por 400, era divisivel por 4 e já estava...

Caso contrário dá-me um exemplo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade