Algorytm - skończony ciąg jasno zdefiniowanych poleceń, które mają wykonać dane zadanie. Zadaniem algorytmu jest przeprowadzenie systemu z pewnego stanu początkowego do pożądanego stanu końcowego. Sformułowanie algorytm dotyczy znacznie większego zakresu dziedzin życia niż tylko informatyki.
Naukę programowania warto zacząć od paru ważnych definicji. Określenia, które są podane w tej lekcji (takie np. jak budyń) będą nam niezmiernie przydatne w dalszej pracy. A zatem, bazując o słownikową definicję, budyń to rodzaj gęstego deseru robionego na bazie mleka. Przepis na budyń możesz zobaczyć obok, dlatego jeżeli jesteś głodny, proponuję Ci chwilowe wstrzmanie lekcji i przerwę na przekąskę.
Jeżeli jesteś najedzony to idziemy dalej. Przepis, (który być może udało Ci się przetestować na własnej skórze), będzie idealnym przykładem algorytmu nieinformatycznego. Algorytmy to przecież ciągi instrukcji i okazuje się, że nie muszą odnosić się tylko do jednej dziedziny.
Podsumowując algorytmy będziemy pisać, a następnie używać ich, gdy będziemy musieli rozwiązać dany problem. Jeżeli definicja nie przemawia do Ciebie, nie przejmuj się, wszystko zrobi się jaśniejsze, kiedy napiszesz pierwsze linijki kodu.
a = int(input("Podaj bok kwadratu: "))
pole = a*a
obwod = 4*a
print(pole, " ", obwod)
Przyda nam się jeszcze definicja programu komputerowego, bo programowanie będzie się właśnie skupiało na tworzeniu czy rozszerzaniu programów. Na pewno nazwa ta nie jest Ci obca. Edytory tekstu takie jak: Notepad czy Microsoft Word, przeglądarki internetowe: Mozilla Firefox, Google Chorome czy systemy operacyjne: Linux, Windows; to wszystko programy komputerowe. Gdybym odpowiadał na pytanie: "Czym jest program komputerowy?" własnymi słowami, to intuicyjnie spróbowałbym wymyśleć definicję do znanych mi przykładów: linijki kodu umożliwiające wykonanie danego zadania. Posłużmy się definicją:
Program komputerowy - algorytm dotyczący programowania, przyjmujący formę ciągu instrukcji języka programowania. Zbiór instrukcji, które są zrozumiałe dla komputera i których celem jest przeprowadzenie określonych operacji lub rozwiązanie określonego zadania.
Język programowania - formalny system komunikacji między programistą a komputerem. Język, przekazujący komputerowi dane instrukcje. Nasze polecenia dla komputera muszą być specjalnie przygotowane, aby ten mógł je zrozumieć i wykonać.
Komputer nie widzi programu tak, jak widzi go programista. Kod napisany w języku programowania zostaje przetłumaczony przez program zwany translatorem. Translacja zmienia język wysokiego poziomu w niskiego poziomu. Np. język wysokopoziomowy Python, jest tłumaczony przez kompilator Pythona do języka bajtowego Pythona. Następnie za pomocą PVM (Python Virtual Machine) jest on wykonywany - powstają instrukcje zrozumiałe dla danej platformy.
Rodzaj translacji polegający na przetłumaczeniu kodu źródłowego przed uruchomieniem programu.
Zalety:
Programy skompilowane zazwyczaj są bardziej wydajne, ponieważ
tłumaczenie na kod maszynowy odbywa się przed wykonaniem programu. Kod jest lepiej dostosowany do sprzętu.
Wady:
Dłuższy czas kompilacji przed wykonaniem programu, konieczność ponownej kompilacji
po wprowadzeniu zmian w kodzie źródłowym. Konieczność kompilacji dla każdej platformy docelowej.
Rodzaj translacji polegający na przetłumaczeniu kodu źrodłowego linia po linii podczas wykonywania programu.
Zalety:
Skrócony czas między napisaniem kodu a jego uruchomieniem, łatwość testowania i
debugowania w trakcie wykonywania. Kod źródłowy jest łatwiejszy w przenoszeniu,
ponieważ nie ma potrzeby kompilacji dla każdej platformy docelowej.
Wady:
Programy interpretowane zazwyczaj są mniej wydajne niż skompilowane, ponieważ tłumaczenie odbywa się w trakcie wykonania.
Error (błąd) - odnosi się do sytuacji, w której program nie może poprawnie
wykonać danej operacji. Błędy są rodzajem sytuacji wyjątkowej,
które mogą wystąpić podczas wykonywania programu.
Przykładowa informacja o błędzie:
NameError: name 'HelloWorld' is not defined
Błędy to niepozbywalna część programowania. Errory będą się pojawiać, a im dłuższy kod, tym więcej błędów. Dlatego ważne jast testowanie kodu na bieżąco i debugging.
Debugging - (po polsku śmiesznie zwany czasem odpluskwianiem) to proces, w którym będziemy się pozbywać błędów z naszego kodu zwanych rónież buggami. Spokojnie, program, w którym będziesz programował, pomoże Ci odnaleść miejce i źródło buga. Z doświadczeniem liczba błędów będzie maleć, a naprawianie tych, które się pojawią, nie zajmie długo.
Kiedy objaśniliśmy już sobie parę definicji pora przejść do prawdziwego kodowania!