Algorytmem nazywamy opis pewnej procedury. W tym opisie powinny znaleźć się informacje o istotnych danych w niej wykorzystywanych i ścisłym sposobie jej realizacji – krok po kroku. Owe kroki muszą być precyzyjnie i jasno sformułowanymi, oraz możliwymi do realizacji/wykonania instrukcjami naszego algorytmu. Instrukcje te podzielimy sobie na właściwe dla nich kategorie: Wprowadzenie danych początkowych, modyfikacja - zmiana tych danych w trakcie jej wykonywania oraz instrukcje warunkowe – podejmowanie decyzji w zależności od tego czy dane spełniają przyjęty warunek. Instrukcja warunkowa będzie przyjmowała odpowiednio wynikowe wartości 0 – fałsz, 1 – prawda, zgodnie z zasadami algebry wartości logicznych Boole'a. Instrukcję warunkowe możemy także wykorzystać do stworzenia tak zwanej pętli. Pętla stanowi bowiem taką sytuację w której powtarzamy instrukcje warunkową i instrukcję modyfikacji do czasu otrzymania właściwych danych. Takie algorytmy pętle dzielimy na odwracalne i nieodwracalne. Algorytmy odwracalne to takie, które wykonane raz a następnie w przeciwny sposób (z danymi początkowymi będącymi jednocześnie tymi końcowymi z poprzedniego wykonania) doprowadzą nas do ponownie do stanu początkowego. Przykładem odwracalnego algorytmu jest na przykład prosty szyfr cezara - rot13. Nieodwracalne algorytmy to takie w których tracimy część danych w trakcie realizacji procesu i nie można już ich odzyskać, bo wymagałoby to zmyślania ich a w rezultacie błędny wynik. Takimi algorytmami są na przykład stosowane w informatyce stratne szyfry CRC32, MD5, SHA1, SHA256 zwane potocznie hashami. Omówiliśmy sobie podstawowe instrukcje, ale algorytmach stosujemy wiele różnych instrukcji. Warto więc sobie przybliżyć sytuację i poznać konkretne przykłady.
Oto prosty algorytm dodawania dwóch liczb:
Krok 1 − Początek
Krok 2 − Zadeklaruj trzy wartości a, b, c
Krok 3 − Ustaw początkowe wartości a = 1, b = 1
Krok 4 − Dodaj do siebie a i b (a + b = 2)
Krok 5 − Zachowaj wartość kroku 4 jako c = 2
Krok 6 − Wyświetl c
Krok 7 − Koniec
Ten algorytm jest tak prosty, że nie posiada żadnej instrukcji warunkowej, funkcjonuje głównie na zasadzie ustawienia wartości początkowych i operacji matematycznej z zachowaniem wartości i modyfikacji c.
Języki programowania często stosują pewne uproszczenia tych instrukcji. Na przykład w PHP zapiszemy ten alogrytm w następujący sposób:
$a = 1; $b = 1; // Krok 2 i Krok 3 $c = $a + $b; // Krok 4 i 5 print $c; // krok 6
Schemat blokowy to taki schemat w którym instrukcje algorytmu przedstawione są w postaci bloków.
Nazwa bloku | Reprezentacja graficzna |
---|---|
Początek algorytmu |
Start
|
Może wystąpić tylko raz w schemacie. | |
Zakończenie algorytmu |
Stop
|
Może wystąpić wiele razy w schemacie. | |
Wprowadzenie danych (blok wejścia) |
Wprowadź (A)
|
Może wystąpić wiele razy w schemacie. | |
Wyprowadzenie danych (blok wyjśćia) |
Wyprowadź (A)
|
Może wystąpić wiele razy w schemacie. | |
Wykonywanie działań (blok operacyjny) |
B = A * 2
|
Może wystąpić wiele razy w schemacie. | |
Sprawdzanie warunków (blok decyzyjny / warunkowy) |
tak
nie
|
Może wystąpić wiele razy w schemacie. | |
Łącznik | 1 |
Może wystąpić wiele razy w schemacie. | |
Połączenie |
|
Może wystąpić wiele razy w schemacie. |
© 2022 - REGZ.PL