Partnerzy

Astro-Miejsca


URANIA

astroturystyka

100 lat IAU

IAU

Comet

Centrum Nauki Kepler

Planetarium Wenus

ERC

Centrum Nauk Przyrodniczych

Orion,serwis,astronomii,PTA

POLSA

Astronomia Nova

Astronarium

forum astronomiczne

IPCN

Portal AstroNet

Puls Kosmosu

Forum Meteorytowe

kosmosnautaNET

kosmosnautaNET

Nauka w Polsce

astropolis

astromaniak

PTMA

PTR

heweliusz

heweliusz

ESA

Astronomers Without Borders

Hubble ESA

Space.com

Space Place

Instructables

Tu pełno nauki

Konkursy

Olimpiady Astronomiczne
Olimpiada Astronomiczna przebiega w trzech etapach.
Zadania zawodów I stopnia są rozwiązywane w warunkach pracy domowej. Zadania zawodów II i III stopnia mają charakter pracy samodzielnej. Zawody finałowe odbywają się w Planetarium Śląskim. Tematyka olimpiady wiąże ze sobą astronomię, fizykę i astronomiczne aspekty geografii. Olimpiady Astronomiczne


Urania Postępy Astronomii - konkurs dla szkół


astrolabium

Organizatorem konkursu astronomicznego jest Fundacja dla Uniwersytetu Jagiellońskiego a patronat nad akcją sprawuje Obserwatorium Astronomiczne im. Mikołaja Kopernika będące instytutem Wydziału Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Jagiellońskiego w Krakowie.
Zobacz szczegóły »

astrolabium

konkurs, astronomiczny

AstroSklepy

Serwis Astro - 30 lat AstroDoświadczenia!

Astro Schopy
 Firma ScopeDome

Planeta Oczu

Astrocentrum

Astronomiczne kodowanie - Python cz.2

Oto prosty kod algorytmu obliczania daty Wielkanocy (święto ruchome) we wskazanym roku:

y = 2015 # podajemy dowolny rok
a = y % 19
b = int (y/100)
c = y % 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

p = (p+1)
n = int ((h+l-7*m+114)/31)
print(p,n)


Uwagi:
% - oznacza modulo czyli wynik dzielenia w postaci reszty z działania.
int - oznacza wzięcie części całkowitej i odrzucenie części ułamkowej (od integer)
# - po tym znaku wpisana treść jest tylko komentarzem

Algorytm to przepis. Tu na obliczenie daty święta ruchomego. Warto zapoznać się z istotą wyznaczania terminu tej daty.

Podczas soboru nicejskiego w 325 roku ustalono, że będzie się ją obchodzić w pierwszą niedzielę po pierwszej wiosennej pełni Księżyca. Ta skomplikowana zasada jest w istocie przełożeniem na solarny w swej naturze kalendarz juliański konkretnej daty 14 nisan z religijnego kalendarza hebrajskiego, który jest kalendarzem lunarno-solarnym. Data 14 nisan wyznacza w kalendarzu hebrajskim początek święta Paschy, wokół którego działy się wydarzenia zbawcze. Wielkanoc jest więc świętem ruchomym: może wypaść najwcześniej 22 marca, zaś najpóźniej 25 kwietnia. Z datą Wielkanocy powiązany jest termin większości ruchomych świąt ogólnochrześcijańskich i katolickich, m.in.: Środa Popielcowa, wielki post, Triduum Paschalne, Wniebowstąpienie Pańskie, Zesłanie Ducha Świętego, Boże Ciało i inne. Po wprowadzeniu kalendarza gregoriańskiego znów pojawiły się odmienności: w prawosławiu Wielkanoc obchodzi się bowiem zgodnie z kalendarzem juliańskim.

Św. Pius X próbował ustalić stałą datę Wielkanocy. W 1913 r. został rozesłany do biskupów stosowny kwestionariusz. Większość odpowiedzi była przychylna proponowanej zmianie, jednak 9 grudnia tego samego roku projekt oprotestowała Kongregacja Rytów, argumentując, że groziłoby to „naturalizacją wielkiego wydarzenia, jakim było Zmartwychwstanie Chrystusa”[6].

Ostatnio niektóre środowiska chrześcijańskie postulują ustanowienie Wielkanocy, jako święta niezależnego od faz księżyca. Między innymi proponuje się obchodzenie Wielkanocy zawsze w drugą niedzielę kwietnia, czyli od 8. do 14. Inna opcja to propozycja utrzymywania siedmiu niedziel pomiędzy Świętem Trzech Króli a Środą Popielcową. Daje ona również termin od 8. do 14. kwietnia w roku zwykłym, a w przestępnym od 7. do 13.
[WikiPedia]

Jak widzimy powyżej ustalenie terminu w jakim przypadnie to święto wymaga uwzględniania kilku czynników. Do tego celu komputer nadaje sie wspaniale. ale nasz kod po uruchomieniu w interpreterze Pythona wyświetla dwie liczby. Możemy zmienić tak powyższy kod by wyświetlał wynik nie w postaci cyfr ale by miesiące nazywał słownie ich nazwą.

Aby to uzyskać musimy zastosować funkcję warunkową w postaci if, która pozwoli wykonać działanie jeśli będzie spełniony określony przez nas warunek: jeśli wynikiem będzie cyfra 3, to napisz marzec w innym przypadku napisz kwiecień - gdyż Wielkanoc przypada w marcu lub kwietniu.

Jak to zapisać w postaci kodu Python'a?

if warunek:
instrukcje
else:
instrukcje


Co w naszym przypadku da treść tej części kodu:

if n==3:
  miesiac="Marca" # miesiąc wielkiej nocy
else:
  miesiac="Kwietnia"
  print('Wielkanoc przypada: ',p,miesiac,y)


a cały kod programu wyglądać będzie tak:

y = 2015 # podajemy dowolny rok.

a = y % 19
b = int (y/100)
c = y % 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

p = (p+1)
n = int ((h+l-7*m+114)/31)
# print(p,n)
if n==3:
  miesiac="Marca" # miesiąc wielkiej nocy
else:
   miesiac="Kwietnia"
   print('Wielkanoc przypada: ',p,miesiac,y)


W ten sposób poznaliśmy konstrukcję warunkową if ... else. Jest ich oczywiście więcej i kolejne wprowadzimy w kolejnych prezentacjach. Jak widzisz samo kodowanie nie jest jakieś specjalne trudne. Komputery wspaniale nadają się do zadań związanych z obliczeniami. Idzie im to zdecydowanie szybciej niż nam.

Na kolejnym spotkaniu poznamy obliczenia Daty Juliańskiej oraz wykorzystamy ją do obliczenia fazy księżyca. Zapraszamy na kolejne spotkanie z kodowania astronomicznego.

Aby uruchomić powyższy kod pobierz program Python (dla Windows 32 bity) lub Python (dla Windows 64 bity). Zapoznaj się tez z poniższym przykładem rozpoczęcia kodowania w Pythonie.



Brak komentarzy. Może czas dodać swój?

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.

Oceny

Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?
31,505,095 unikalne wizyty