Czym jest kod źródłowy i kto tłumaczy go komputerowi?
Zasady zapisu kodu w języku Python
Pięć kroków od zadania do gotowego programu
Pierwszy własny program: Powitanie
Podręcznik: s. 93–97.
Rozgrzewka · 3 minuty
Co już wiecie?
Zaczynamy od tego, co już znacie z codziennego używania komputera.
Z jakich programów korzystaliście dzisiaj na komputerze albo w telefonie?
Zdarzyło się, że komputer zrobił coś innego, niż chcieliście? Kto był wtedy winny?
Część 1 · Pojęcia
Od tekstu do działania
Język programowania: zestaw ściśle zdefiniowanych słów i reguł zapisu, którymi opisujemy algorytm tak, żeby komputer umiał go wykonać.
Kod źródłowy (ang. source code): zapis algorytmu w języku programowania, czyli po prostu tekst programu.
IDE (ang. integrated development environment, zintegrowane środowisko programistyczne): program z edytorem kodu i z tym wszystkim, co potrzebne do uruchomienia programu.
Translator: tłumaczy kod źródłowy na kod wynikowy (maszynowy), czyli taki, który rozumie procesor.
Kompilator tłumaczy cały program naraz, interpreter tłumaczy kawałek po kawałku w trakcie działania.
Podręcznik Informatyka na czasie 2, s. 93 (6.2 Od algorytmu do programu komputerowego, hasła z marginesu: język programowania, kod źródłowy, IDE, translator, kod wynikowy, kompilator, interpreter)
Część 1 · Dwa sposoby tłumaczenia
Kompilacja czy interpretacja?
Cykl „pobierz fragment, przetłumacz, wykonaj” powtarza się aż do końca programu. Językiem kompilowanym jest C++, interpretowanym Python. Program w języku interpretowanym potrzebuje zainstalowanego interpretera, skompilowany uruchomi się bez niego. Porównanie z życia: kompilacja to książka przetłumaczona w całości przed czytaniem, interpretacja to tłumacz, który tłumaczy zdanie po zdaniu w trakcie rozmowy.
Podręcznik Informatyka na czasie 2, s. 93 (6.2 Od algorytmu do programu komputerowego, rys. 6.2 i ramka „Warto wiedzieć”)
Część 1 · Zasady zapisu
Sześć zasad pisania kodu
Kolejne instrukcje umieszczamy w kolejnych wierszach.
Wielkość liter ma znaczenie: zmienne a i A mogą przechowywać różne wartości.
O typie zmiennej decyduje nadana jej wartość. Wartość wpisana z klawiatury jest domyślnie traktowana jako tekst.
Między wartościami a operatorami można wstawiać spacje, na przykład a + 2.
Warto stosować puste wiersze, bo zwiększają czytelność programu.
Tekst po znaku # do końca wiersza to komentarz, interpreter go pomija.
Ciekawostka: zbiór zasad pisania kodu w Pythonie nazywa się Zen of Python i ma numer PEP 20. Napisał go Tim Peters, a we wstępie stoi, że zasad jest dwadzieścia, tylko spisano dziewiętnaście. Pierwsza brzmi „Beautiful is better than ugly”, czyli piękne jest lepsze niż brzydkie.
Podręcznik Informatyka na czasie 2, s. 94 (6.2 Od algorytmu do programu komputerowego, infografika „ZAPISYWANIE PROGRAMÓW W JĘZYKU PYTHON”, zasady tworzenia kodu) · ciekawostka: peps.python.org/pep-0020/ (podręcznik na s. 95 wiąże ten zbiór z twórcą języka, PEP 20 podaje jako autora Tima Petersa)
Część 2 · Jak powstaje program
Pięć kroków tworzenia programu
Specyfikacja zadania to określenie celu: jakie dane program dostaje i jaki wynik ma dać. Im zwięźlej i jednoznaczniej zapiszecie kroki algorytmu, tym prościej przełożyć je potem na kod.
Podręcznik Informatyka na czasie 2, s. 95 (6.3 Tworzymy własne programy użytkowe, hasła z marginesu: tworzenie programu, specyfikacja zadania)
Część 2 · Program Powitanie
Specyfikacja i lista kroków
Dane: imię użytkownika wpisane z klawiatury. Wynik: wyświetlony tekst powitania zawierający imię użytkownika.
Podręcznik Informatyka na czasie 2, s. 95–96 (6.3 Tworzymy własne programy użytkowe, ramka „Specyfikacja” i lista kroków programu Powitanie)
Część 2 · Kod źródłowy
Cztery linijki, linijka po linijce
1. print("Podaj swoje imię:")
2. name = input()
3.
4. print(name, "uczy się programowania.")
1.print wyświetla tekst na ekranie: instrukcja wyjścia. To, co w nawiasie, to argument.
2.name to zmienna, miejsce w pamięci. Znak = to operator przypisania. input czeka na to, co wpiszecie: instrukcja wejścia.
3. Pusta linijka, dla czytelności.
4.print wypisuje wartość zmiennej i tekst, rozdzielone spacją.
Podręcznik Informatyka na czasie 2, s. 96 (6.3 Tworzymy własne programy użytkowe, kod programu Powitanie, hasła z marginesu: funkcja print, instrukcja wyjścia, argument, zmienna, operator przypisania, funkcja input, instrukcja wejścia, ramki „Warto wiedzieć” i „Dobra rada”)
Część 2 · Wynik i błąd
Wynik i jedna spacja za dużo
Gotowy program zapisuje się w pliku z rozszerzeniem .py. Podręcznik uruchamia go w programie Mu przyciskiem Wykonuj albo klawiszem F5, a przerywa przyciskiem Zatrzymaj.
Podaj swoje imię:
Janek
Janek uczy się programowania.
print("Podaj swoje imię:")
^
IndentationError: unexpected indent
>>>
Błąd składniowy to zapis niezgodny ze składnią, czyli z regułami języka. W Pythonie wcięcia mają kluczowe znaczenie: wystarczy jedna dodatkowa spacja na początku wiersza i program się nie uruchomi. Znak ^ pokazuje miejsce, w którym interpreter wykrył błąd.
Podręcznik Informatyka na czasie 2, s. 96–97 (6.3 Tworzymy własne programy użytkowe, rys. 6.3 przycisk Wykonuj, rys. 6.4 wywołanie programu, rys. 6.5 błąd składniowy, hasła z marginesu: błąd składniowy, składnia)
Ćwiczenie · na kartce · 12 minut
Ćwiczenie: śledzimy zmienną
Przepisz do zeszytu kod programu Powitanie z dokładnymi wcięciami i pustą trzecią linijką.
Wybierz własne imię i wypełnij tabelę śledzenia zmiennych z prawej: co jest w zmiennej i co widać na ekranie.
Pod tabelą napisz własny dwulinijkowy program: input wczytuje coś od użytkownika, print wypisuje to z własnym tekstem.
Dla chętnych (dom): zapisz ten sam program w pliku greeting.py, uruchom go i zrób zrzut ekranu wyniku. Bez instalacji wystarczy przeglądarka: Python Tutor albo Trinket.
Uwaga
Kolumna „Warunek” w tym programie jest pusta, bo Powitanie nie ma żadnej instrukcji warunkowej. Zostaje w tabeli, bo przyda się przy kolejnych programach.
Podręcznik Informatyka na czasie 2, s. 97 (ćwiczenie 3) w wersji papierowej · tabele 6.1 (s. 98) i 6.2 (s. 100)
Część 2 · Pytania kontrolne
Trzy pytania na koniec
Czym różni się kod źródłowy od kodu wynikowego i kto tłumaczy jeden na drugi?
Która linijka programu Powitanie jest instrukcją wejścia, a która wyjścia, i po czym to poznajecie?
Dlaczego dodatkowa spacja na początku wiersza zatrzymuje program w Pythonie?
Podręcznik Informatyka na czasie 2, s. 93–97 (6.2 Od algorytmu do programu komputerowego, 6.3 Tworzymy własne programy użytkowe)
Część 2 · Podsumowanie
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
Python jako pierwszy język
Ten sam interpreter uruchamia analizę danych, automatyzację i serwisy internetowe. W rankingu popularności języków TIOBE Python jest na pierwszym miejscu.
nadal w użyciu
input() z klawiatury
Dane rzadko wpisuje człowiek: przychodzą z formularza na stronie, z pliku albo z innego programu. Instrukcja wejścia zostaje ta sama, zmienia się źródło danych.
zmienione
print() jako sposób pokazania wyniku
W działającym systemie wynik idzie do pliku dziennika zdarzeń albo do bazy, żeby dało się go potem odszukać. print zostaje do szybkiego sprawdzenia w trakcie pisania.
zastępowane
Błąd wykryty przy uruchomieniu
Edytor podkreśla błędne wcięcie, zanim ktokolwiek uruchomi program, a przed wdrożeniem kod sprawdza automat, który liczy też odstępstwa od zasad zapisu.