Autor: 17.03.2023
Algorytmy - od schematu blokowego do kodu
Programowanie w sporym stopniu polega na pisaniu różnych algorytmów. Działa to tak, że schemat algorytmu musimy zamienić na działający kod. To bardzo ważna umiejętność dla każdego programisty.
W tym artykule pokażemy jak schemat blokowy algorytmu zamienić na realny kod. Spróbujemy najpierw przeanalizować nasz algorytm. Zastanowimy się nad tym, jakie będą poszczególne kroki. I w końcu spróbujemy ten schemat zamienić na kod w języku Python.
Co to jest algorytm
Definicja algorytmu jest prosta - to zestaw czynności prowadzących do określonego rezultatu. To schemat postępowania, który umożliwia rozwiązanie problemu.
Algorytmy mogą być proste i obejmować pojedynczą operację. Mogą też być bardzo złożone i obejmować dziesiątki kroków pośrednich. W tym artykule skupimy się na prostych, zrozumiałych przykładach. Zajmiemy się algorytmem, który sprawdza czy dana liczba jest dodatnia.
Różne sposoby zapisu algorytmów
Zanim zaczniemy pisać kod, powinniśmy przeanalizować nasz algorytm. Są różne sposoby zapisywania i prezentowania algorytmów:
Możesz na przykład zapisać swój algorytm w formie tzw. listy kroków. Polega to na tym, że piszesz prostym, zrozumiałym językiem poszczególne kroki algorytmu:
1. Pobierz liczbę
2. Jeżeli jest większa od 0 to:
a. Zwróć wartość Prawda
3. W przeciwnym wypadku:
a. Zwróć wartość Fałsz
Ten prosty sposób pozwala nam zrozumieć nasz algorytm, i zamienić go potem na wynikowy kod.
Schemat blokowy
Często możesz spotkać się z algorytmami zapisanymi w postaci tzw. schematu blokowego. To zestaw pól i strzałek, które w wizualny sposób pokazują jak nasz algorytm działa. Popatrz na poniższy schemat:
Na obrazku mamy dobrze nam znany algorytm sprawdzający czy dana liczba jest dodatnia. Zwróć teraz uwagę na liczby po prawej stronie każdego bloku:
1 - To blok START rozpoczynający nasz algorytm.
2- To blok wykonujący operacje. W tym wypadku operacją jest przypisanie wartości do zmiennej.
3 - To blok warunkowy. W przypadku naszego algorytmu jest to sprawdzenie wartości. Sprawdzamy czy jest ona większa od 0. Zauważ, że możliwe są dwa rozgałęzienia. Albo liczba jest większa od 0 (dodatnia) albo nie.
4 - Tutaj mamy dwa bloki wejścia/wyjścia. Będą one odpowiedzialne za wyprowadzenie danych na ekran. Jeśli liczba jest dodatnia to wyprowadzamy “True” (Prawda), jeśli nie jest dodatnia, to wyprowadzamy “False” (Fałsz).
5 - To blok STOP kończący cały algorytm.
Na tym etapie już dobrze wiemy, co będzie nam potrzebne. Wiemy jakie będą kroki naszego algorytmu. Nie pozostaje nic innego, jak zamienić go na działający kod.
Jeśli chcesz rysować własne schemat blokowe, zainteresuj się darmowym narzędziem diagrams.net. To właśnie za jego pomocą stworzony został powyższy schemat.
Zamieniamy schemat blokowy na kod
Będziemy pracowali z językiem Python. Jego prosta, przejrzysta składnia pozwoli nam szybko napisać kod algorytmu. A kod ten jest naprawdę prosty:
# 1
digit = 4 # 2
def is_positive(value):
if value > 0: # 3
return True
else:
return False
print(is_positive(digit)) # 4
# 5
Najpierw przypisujemy wartość do zmiennej digit (krok 2). Następnie, wewnątrz funkcji sprawdzamy wartość parametru value (krok 3 na schemacie blokowym). Potem wywołujemy za pomocą print() naszą funkcję (krok 4). Wynik wygląda następująco:
True
Dla wartości zmiennej równej 4, mamy wynik True. Zwróć uwagę na to, że kroki 1 oraz 5 zostały oznaczone w formie komentarzy w kodzie. Odpowiadają one blokom START oraz STOP ze schematu blokowego, z tym, że w powyższym kodzie nie pełnią one żadnej roli. Dodaliśmy je po to, aby przenieść w dosłowny sposób, wszystkie bloki ze schematu na kod Python.
Alternatywne rozwiązanie
Jeśli znasz dobrze Pythona, to możesz słusznie zauważyć, że powyższy kod da się znacznie skrócić. Na przykład w ten sposób:
def is_positive(value):
return value > 0
print(is_positive(4))
Python umożliwia pisanie kodu w bardzo zwięzły sposób. I warto tą możliwość wykorzystać. Oczywiście to jest wciąż ten sam algorytm, który sprawdza czy dana liczba jest dodatnia.
Podejście, które pokazaliśmy powyżej ma służyć jako ilustracja tego, że dany schemat blokowy można zamienić na wyjściowy kod na wiele sposobów. Nie ma jednego słusznego rozwiązania. Nasze pierwsze podejście lepiej ilustrowało zasadę zamiany kroków schematu blokowego na wyjściowy kod. Z kolei podejście drugie jest bardziej optymalne, choć dla osoby początkującej może być trochę mniej czytelne.
Podsumowanie
Mamy nadzieję, że ten artykuł dobrze pokazuje tok myślenia niezbędny do zamiany schematu blokowego na wyjściowy kod. Dla programisty jest to bardzo istotna umiejętność. Jeśli nauczysz się rozbijać algorytmy na poszczególne kroki, to bez problemu poradzisz sobie z napisaniem działającego kodu. To jest w gruncie rzeczy istota wszelkiego rodzaju programowania.
Jeśli chcesz poćwiczyć swoje umiejętności zamiany schematów na kod, i jednocześnie popracować nad swoimi umiejętnościami pisania algorytmów to zapraszamy do kursu Python - Ćwiczenia praktyczne.
Znajdziesz w nim aż 16 przykładów, podobnych do tego, który pokazaliśmy w artykule. Twoim zadaniem będzie zmiana schematu danego algorytmu, na działający kod Python. To doskonała okazja aby przećwiczyć w praktyce pisanie kodu i jednocześnie rozwinąć swoje zdolności analizowania problemów.