M2 L9 Algorytmy

Algorytmy

Przedstawione do tej pory zadania były dość proste, składające się z maksymalnie kilku instrukcji. Realne problemy programistyczne są jednak bardziej złożone i wymagają zwykle ułożenia planu działania, czyli tzw. algorytmu.

W uproszczeniu, algorytmy są przepisem na wykonanie zadanego nam problemu – ciągiem przyczynowo skutkowym, który ma doprowadzić nas do końcowego celu. Określamy kolejne kroki naszego programu, sprawdzamy, czy mają logiczny sens i dopiero wtedy tworzymy faktyczny program.

Pisanie kodu na tzw. „żywioł” ma swoje zalety, jednak złożone problemy programistyczne lepiej jest rozłożyć na prostsze elementy i skupić się na realizacji każdego z nich. Bez tego, dość łatwo można pominąć pozornie trywialne kroki lub popełnić proste błędy logiczne.

W najprostszej postaci algorytm tworzymy „w głowie”, ale możemy go zapisać w postaci tekstowej, korzystając z pseudokodu lub zwykłego języka. Istnieją wprawdzie bardziej zaawansowane techniki i specjalne diagramy, jednak dla początkujących wystarczy zwykły tekst.

Przykładowy algorytm: Utwórz funkcje zwracającą większą z dwóch liczb.

Krok 1 – Utwórz funkcję przyjmującą dwa parametry A i B

Krok 2 – Porównaj parametry

Krok 3 – Jeśli A=B, zwróć A.

Krok 4 – Jeśli A!=B, sprawdź czy A > B

Krok 5 – Jeśli tak, zwróć A

Krok 6 – W przeciwnym razie, zwróć B

Jest to bardzo prosty algorytm i przełożenie go na Python nie powinno stanowić żadnej trudności. Zauważmy jednak, iż krok trzeci wcale nie był oczywisty i przystępując bezpośrednio do pisania kodu można było łatwo o nim zapomnieć. Im bardziej złożony problem, tym lepiej jest najpierw rozplanować sobie jego działanie. Unikniemy w ten sposób tworzenia kodu, który i tak później uznamy za wadliwy.