algorytm.org

Implementacja w Python



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Wyznaczanie daty Wielkanocy - metoda Meeusa/Jonesa/Butchera - Implementacja w Python
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Mariusz653456, 25 listopada 2015 00:07
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

easter.py:
#!/usr/bin/python
#-*- coding: utf-8 -*-

#
# Wyznacznie daty Wielkanocy - motoda Meeusa/Jonesa/Butchera
# www.algorytm.org
#

def pobierz_date():

    ''' Pobiera datę, sprawdza czy podany ciag znakow jest liczbą.
	Jeśli tak, to zmienia ciąg na liczbę całkowitą i go zwraca.
    '''

    while True:

	# jeśli python < 2.6
	result = raw_input('Podaj rok: ')

	# jeśli python > 3.0
	#result = input('Podaj rok: ')

	if result.isdigit():
	    return int(result)

	else:
	    print 'Podaj liczbę.\n'

def oblicz_wielkanoc(rok):

    a = rok%19
    b = int(rok/100)
    c = rok%100
    d = int(b/4)
    e = b%4
    f = int((b+8)/25)
    g = int((b-f+1)/3)
    h = (19*a+b-d-g+15)%30
    i = int(c/4)
    k = c%4
    l = (32+2*e+2*i-h-k)%7
    m = int((a+11*h+22*l)/451)
    p = (h+l-7*m+114)%31
    day = p+1
    month = int(h+l-7*m+114)/31

    return day, month

print "\nProgram obliczający datę Wielkanocy.\n"

nazwy = { 3: 'marzec',
	  4: 'kwiecień'
	}

while True:

    r = pobierz_date()
    d, m = oblicz_wielkanoc(r)

    print d, nazwy[m], r





Komentarze
photo
+3 # Janusz C. 2017-02-15 14:18
Obliczanie miesiąca (linia 45):
month = int(h+l-7*m+114)/31
wynik lepiej zrzutować jeszcze na int
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
-1 # Witamaster 2018-01-06 14:13
Nie koniecznie. Python sam rzutuje wynik na int jeśli dzielisz liczbę całkowitą przez liczbę całkowitą.
Tak, jeśli w pythonie wykonasz działanie n = 10/3, do n zostanie przypisana liczba całkowita 3.
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz