• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ibuh

Ano Bisexto

15 mensagens neste tópico

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que o mogers disse é completamente verdade. E se estou a ler bem, ele disse  que o ano 2000 é bissexto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol grande confusão que vai na minha cabeça... :S Se é assim não digo nada mas é a primeira vez que ouço isso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
int eBissexto(int ano)
{
    return ((ano % 4 == 0) && (ano % 100 != 0) || (ano % 400 == 0));
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O % 100 não é necessário, porque 400 é múltiplo de 100. Acho. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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.

0

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