Ajuda pelo amor de deus - estou a quase 1 dia tentando - exercicio

14 respostas
M

Desafio 1:
Desenvolva um programa para calcular a data da pascoa de um dado ano.
Cálculo da páscoa: A Páscoa é uma das festas móveis de várias religiões. Sua data
varia a cada ano e, no mesmo ano, de religião para religião. Por decreto do Concílio
de Nicéia (ano 325), o dia da Páscoa deve ser celebrado no primeiro Domingo
depois da lua cheia que segue o equinócio de outono (21 de março). Todas as
demais festas móveis do ano eclesiástico são estabelecidas a partir da fixação da
data da Páscoa.
O seguinte algoritmo, do astrônomo Aloysius Lilius e do matemático Christopher
Clavius, é usado para o cálculo da Páscoa de qualquer ano após 1582 até o final do
século XXI. Existem muitas indicações de que o cálculo da Páscoa foi a única
aplicação importante da aritmética na Europa durante a Idade Média, razão pela
qual este algoritmo tem um significado histórico.
Definições:
Equinócio: ponto da órbita da Terra em que se registra uma igual duração
do dia e da noite.
Epacta: número de dias que deve ser adicionado ao ano lunar para fazê-lo
ano solar, e corresponde a idade da Lua em 31 de dezembro do ano anterior
ao considerado.

Algoritmo:

  1. Seja Y o ano do qual se deseja a data da Páscoa.
    (Cálculo do número áureo G:)

  2. Seja G o resto da divisão inteira de Y por 19 acrescido de uma unidade.
    (século:)

  3. Seja C o quociente da divisão inteira de Y por 100 acrescido de 1.
    (correções:)

  4. Seja X o quociente da divisão de 3C por 4, menos 12 e Z o quociente da
    divisão de 8
    C+5 por 25, menos 5. (Obs: Z é uma correção especial para
    sincronizar a Páscoa com a órbita da lua).
    (epacta:)

  5. Seja E o resto da divisão inteira de (11*G+20+Z-X) por 30.

  6. Se E = 25 e G > 11 ou se E = 24 então some 1 a E
    (Obs: E é chamada Epacta e indica quando a lua cheia ocorre).
    (Cálculo da lua cheia:)

  7. Seja N = 44 - E. Se N < 21 então faça N receber N + 30.
    (Cálculo do Domingo:)

  8. Seja D o quociente da divisão inteira de 5 * Y por 4, menos (X + 10). Faça N
    receber N + 7 menos o resto da divisão de (D + N) por 7.
    (Cálculo do mês:)

  9. Se N>31 a Páscoa será no dia (N - 31) de abril, caso contrário será em N de
    março.

14 Respostas

D

se vc responder o meu eu faço o teeu blz


da uma olhada ai

gaulix

Poste o que tentou fazer que ensinamos o resto.

M

alguem me ajuda aeeee

a resposta eu sei que é 8 de abril, usando o ano de 2012

M

pera

M

public class Desafio1 {

public static void main(String[] args) {

	int y = 2012;
	int g = (y % 19) + 1;
	int c = (y / 100) + 1;
	int x = ((3*c) / 4) - 12;
	int z = ((8*c) + 5) / (25 - 5);
	int e = ((11*g) + 20 + z - x ) % 30;

	if ( e = 25 && g > 11 ){
		int e = e + 1;
	}else{  e = 24;
		int e = e +1;}

	int n = 44 - e;

	if ( n < 21 ) {
		int n = n + 30;}

	int d = ((5 * y) / 4) - (x + 10);

	int n = (n + 7) - (( d + n) % 7);

	if ( n > 31){
		int p = ( n - 31);
		System.out.println( "O dia da Páscoa é p de abril");
	}else{ int p = n;
		System.out.println( "O dia da Páscoa é p de março");}



}

}

M

oq fiz foi isso ate agora, ta com 3 erros

M

ja saiu mais alguma coisa

public class Desafio1 {

public static void main(String[] args) {

	int y = 2012;
	int g = (y % 19) + 1;
	int c = (y / 100) + 1;
	int x = ((3*c) / 4) - 12;
	int z = ((8*c) + 5) / (25 - 5);
	int e = ((11*g) + 20 + z - x ) % 30;


	if ( e == 25 && g > 11 || e == 24){
		e = e + 1;
	}
	int n = 44 - e;

	if ( n < 21 ) {
		n = n + 30;}

	int d = ((5 * y) / 4) - (x + 10);

	n = (n + 7) - (( d + n) % 7);

	if ( n > 31){
		int p = ( n - 31);
		System.out.println( "O dia da Páscoa é ");
		System.out.print(n);
		System.out.print(" de abril");
	}else{ int p = n;
		System.out.println( "O dia da Páscoa é ");
		System.out.print(n);
		System.out.print("de março");
		}



}

}

M

tenque da 8 de abril, ta dando 32

gaulix

Código removido pelo usuário ser mal educado.

M

pera

M

deu 19 erro mano

gaulix

Não deu 19, eu testei o código que postei antes e deu 8, agora tente você mesmo, não volto nesse tópico.

M

mano o seu deu 19 erro, vc ta zuando mano

pmlm

Tens dois erros no teu código.

Um de interpretação:

madrugahacko:

e Z o quociente da divisão de 8*C+5 por 25, menos 5.

int z = ((8*c) + 5) / (25 - 5);

O que eu interpreto da frase acima é:

int z = (((8*c) + 5) / 25) - 5;

O outro erro é já na apresentação do resultado onde estás a mostrar a variável errada.

Criado 17 de setembro de 2012
Ultima resposta 18 de set. de 2012
Respostas 14
Participantes 4