eMatematikas
Testai Forumas Prisijungti        

Velykų datos radimas naudojant velykų algoritmą c++

Informatika Peržiūrų skaičius (117)

1) Aukso skaičius: G = M % 19 + 1.
2) Šimtmetis: C = M / 100 + 1.
3) Pataisos: X = 3 * C / 4 – 12,
Z = (8 * C + 5) / 25 – 5.
4) Pataisa sekmadieniui: D = 5 * M / 4 – X – 10.
5) Epakta: E = (11 * G + 20 + Z – X) % 30.
Jeigu E = 25 ir G > 11 arba E = 24, tuomet E reikia padidinti 1
6) Pilnatis: N = 44 – E. Jeigu N < 21, tuomet N = N + 30.
7) Perėjimas prie sekmadienio: N = N + 7 – ((D + N) % 7).
8) Velykų data: jeigu N > 31, tai Velykos bus
balandžio (N – 31)-ąją dieną, kitaip – kovo N-ąją dieną.

Mano bandymas:

#include<iostream>
using namespace std;
int main ()
{
int m,g,c,x,z,d,e,n;
cout<<"Ivesk metus"<<"\n";
cin>>m;

g=m%19+1;
c=m/100+1;
x=3*c/4-12;
z=(8*c+5)/25-5;
d=5*m/4-x-10;
e=(11*g+20+z-x)%30;
if (e=25 and g>11) e++;
else if (e=24) e++;
n=44-e;
if(n<21) n=n+30;
n=n+7-((d+n)%7);
if (n>31)
{
n=n-31;
cout<<"Balandzio "<<n<<" diena";
}
else
cout<<"Kovo "<<n<<" diena";

    return 0;
}




Turėčiau gauti šiuos atsakymus:

1995m. Velykos buvo balandžio 16 d.
2000m. Velykos buvo balandžio 23 d.
2002m. Velykos buvo kovo 31 d.
2016m. Velykos buvo kovo 27 d.
, bet gaunu:
1995m. Velykos buvo balandžio 23 d.
2000m. Velykos buvo balandžio 23 d.
2002m. Velykos buvo balandžio 21 d.
2016m. Velykos buvo balandžio 24 d.

Gal matote kur yra padaryta klaida ?

0

Dvi klaidos cia
if (e=25 and g>11) e++;
else if (e=24) e++;


Manau pats pastebesi.

Paskutinį kartą atnaujinta 2019-12-07

0

Ačiū

0

Norėdami rašyti žinutes privalote prisijungti!