Wstęp
Na maturze zadanie programistyczne na komputerze można rozwiązywać w jednym z trzech języków:
- C++,
- Java,
- Python.
Każdy z tych języków różni się znacząco od pozostałych i daje inne możliwości, ale te różnice nie powinny powodować problemów w przypadku zadań maturalnych (nie mniej jednak warto o nich wiedzieć). Ten kurs będzie skupiał się na nauce programowania w Pythonie.
C++ jest językiem najbardziej niskopoziomowym spośród tej trójki. Program, który piszemy, jest kompilowany bezpośrednio do kodu maszynowego, tzn. instrukcji, które są bezpośrednio rozumiane przez procesor. Sprawia to, że programy po skompilowaniu są małe i działają niezwykle szybko, jeśli są dobrze napisane. C++ jest podobny do języka C (niedostępny na maturze) i tak samo pozwala ręcznie zarządzać pamięcią, ale udostępnia też inne funkcje, takie jak automatyczne zarządzanie czy elementy obiektowości i funkcyjności.
Python jest językiem interpretowanym, czyli kod, który napiszemy jest interpretowany przez program zwany interpreterem. Python jest dzięki temu językiem bardzo wysokopoziomowym, a co za tym idzie też prostszym, bo jest mniej rzeczy, o których programista musi pamiętać. Wadą jest niestety prędkość wykonywania programów, ponieważ języki interpretowane są zwykle wolniejsze od kompilowanych - tak jest też w tym przypadku.
Java jest językiem pośrednim między C++ a Pythonem, ponieważ jest kompilowana, ale nie kompiluje się do kodu maszynowego, a do bytecode'u Javy. Bytecode jest uruchamiany wewnątrz maszyny wirtualnej, która dopiero wykonuje odpowiednie instrukcje maszynowe. Najważniejszą cechą Javy jest dostępność obiektowości, z której jednak nie będziemy zbyt dużo korzystać na maturze. Java jest też językiem wysokopoziomowym i pamięć jest zarządzana automatycznie przez maszynę wirtualną i