Astronomiczne kodowanie - Python cz.1
-
jacek
21/11/2014
- Programowanie
- 2646 czytań 0 komentarzy
Nauka 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.
Opiszę co tak naprawdę jest w tym programie. Znak
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:
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=12przy 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:
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ć.
Zaloguj się , żeby móc zagłosować.
Brak ocen. Może czas dodać swoją?