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

PythonNauka bez umiejętności pisania programów nie byłaby w stanie się rozwijać. Często to dzięki komputerom można było dokonać niejednego odkrycia naukowego. Podobnie jest w astronomii dlatego warto spróbować. Zobaczysz, że nie jest to wcale takie trudne jak Ci to malują.

Na początek warto napisać program liczący datę juliańską. Nie warto rozwijać tego co to jest za data. Doczytaj to sobie w innym miejscu. Warto jednak wspomnieć, że ta rachuba ciągła dni jest podstawą wszystkich obliczeń w astronomii (i nie tylko). Zatem do pracy.

W sieci znajdziesz wiele poradników związanych z podstawami programowania w tym języku - Python - dlatego skupimy się tu na zagadnieniach, które w danej chwili będą nam potrzebne. Nie będzie to nas rozpraszać. Python znakomicie nadaj się do obliczeń. Często jest tez wykorzystywany, szczególnie w początkowej fazie rożnych prac. Dla nas też on wystarczy.

Ze strony Link pobierz tzw. interpreter języka Python. Zainstaluj go. w zasadzie nie jest istotna wersja programu, ale tu będziemy tworzyć dla wersji 3.3, która różni się od wcześniejszych składnią niektórych poleceń. Będziemy zaznaczać z jakiej wersji trzeba korzystać, by po prostu przepisać kod programu, bez zmian. Ale zainstalowanie kilku wersji nie powinno stanowić problemu. W sieci znajdziesz poradniki dla starszych wersji. Mało kto je aktualizuje. Dlatego warto mieć zainstalowane starsze wersje dla własnej nauki. Na początku skryptu zawsze będzie napisane dla jakiej wersji jest skrypt.

Skrypty opisujemy komentarzami, aby w przyszłości wiedzieć co napisaliśmy i jak działa program. Sam się przekonasz, że praktyczna sprawa.

Z menu Start wybierz z grupy Python 3.3 -> EDLE (Python GUI) - mniej więcej tak powinna być popisana ikona programu, który uruchomi nam specjalne okienko interpretera. Okno pozwala na wprowadzanie danych do natychmiastowej interpretacji. Wpisz:

3+6

i naciśnij enter otrzymasz wynik dodawania

9

Ale my chcemy napisać program ...

Wybierz z menu File -> New Window. Nowe okno pozwoli na pisanie skryptu. Napisanie tego samego co wcześniej nic nie wyświetli. Trzeba to zrobić inaczej. Napisz:

print(3+6)

Teraz naciśnij F5 lub z menu Run -> Run Module. Program będzie chciał najpierw zapisać ten skrypt. To jest konieczne. Po zapisaniu uruchomi interpreter i zobaczysz wynik pracy programu. Proste? Oczywiście.

Nasz program ma liczyć, więc niewiele komend będzie nam potrzebne na początek. Znajdziesz w sieci co najmniej kilka algorytmów do przeliczenia daty gregoriańskiej (nasz kalendarz) na astronomiczną rachubę ciągłą dni. Nie jest on skomplikowany jak widzisz poniżej.

#-------------------------------------------------------------------------------
# Name:        data julianska alg. z WikiPedii
# Purpose:     python 3.x
#
# Author:      astronom
#
# Created:     17-10-2014
# Copyright:   (c) astronom 2014
# Licence:     Jacek Patka Sekcja Astronomiczna
#               Gwiezdne Wrota w Zaganiu
#-------------------------------------------------------------------------------
# -*- coding: UTF-8 -*-
# Dane do obliczeń
R=2004 #rok
M=1 #miesiąc
D=1 # dzień
# obliczenia
X = int((M + 9) / 12)
A = 4716 + R + X
Y = int(275 * M / 9)
V = int(7 * A / 4)
B = 1729279.5 + 367 * R + Y - V + D
Q = int((A + 83) / 100)
C = Q
W = int(3 * (C + 1) / 4)
E = W
JD = B + 38 - E
# wyświetlanie wyniku
print ('JD:',JD)


Opiszę co tak naprawdę jest w tym programie. Znak
#
oznacza, że jest to komentarz. Interpreter go pomija. W danej linii po jego napisaniu możesz pisać co tylko chcesz. Ja umieściłem tu opisy programu. Wpis: # -*- coding: UTF-8 -*- pozwoli nam używać polskich liter. Nomenklatura jest jak w rozwiązywaniu zadań z fizyki. Dane do zadania to oznaczenie i wartość. Np.:
V=12
przy czym nie piszemy jednostek. Musimy o nich sami pamiętać (np. szybkość jest w m/s, ale w programie tego nie piszemy).

dalej to już tylko kolejne oznaczenia i czysta matematyka. Jest jeszcze pierwsza funkcja Pythona a mianowicie int(), która oznacza wzięcie części całkowitej z danej liczby. Przykładowo z liczby 123.234 int(123.234) wynosi 123. Odrzuca się bez zaokrągleń część ułamkową.

Kolejna funkcja, już chyba znana pozwala na wyświetlenie wyniku działania programu. To print() gdzie w nawiasach piszemy to co ma być wyświetlone na ekranie. Aby wyświetlić wartość liczbową wystarczy napisać print(123) Lecz my nasze liczby mamy skryte pod postacią oznaczeń (zmiennych jak określa się w programowaniu). Nasza liczba dni juliańskich skryta jest pod oznaczeniem JD. Aby wyświetlić zawartość JD piszemy

print(JD) Niestety pokaże się nam tylko liczba i niewiele nam to powie. Napiszemy więc:

print('JD; ', JD)

Teraz już zobaczymy, że liczba ta to wartość JD. jednym poleceniem print wypisaliśmy dwie wartości. Jedna jest znakowa (tekst) JD: a druga to wartość zawarta w oznaczeniu (zmiennej) JD. W nawiasie wartość znakowa jest umieszczona w apostrofach, potem jest przecinek dla oddzielenia, a następnie kolejna wartość do wyświetlenia czyli oznaczenie JD. Program wie, że ma wyświetlić tekst JD: i zawartość zmiennej JD.

Dlaczego nazywa się ją zmienną? Na początku programu jest wpisana dana, rok, pod oznaczeniem R. Zmień jej wartość na 2013 i naciśnij F5. Widzisz, wynik się zmienił i masz inną wartość JD. Nie zmieniałeś wartość JD, ona zmieniła się sama, na podstawie innych danych początkowych jakie podałeś (inne R). Będzie można napisać program tak, by sam wielokrotnie zmienił wartość R i JD. Ale to innym razem.

Powyższy kod możesz skopiować do swojego okienka programu. Ale lepiej sam go przepisz ręcznie, by utrwaliło się to co masz opanować.

Miłej zabawy z Pythonem.

Przeczytaj więcej:

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,123 unikalne wizyty