Alorytmy

Czym są algorytmy i jak je zapisujemy? + przykład z herbatą (C++)

Algorytm to przepis na rozwiązanie problemu: kroki wykonywane w określonej kolejności.
Zanim przejdziesz do kodu, warto użyć zapisu symbolicznego (pseudokod, schemat blokowy), a dopiero potem zaimplementować to w języku programowania.

Co to jest algorytm?

Algorytm to uporządkowany zestaw kroków prowadzących do osiągnięcia celu (wyniku). Najczęściej ma:

  • wejście (dane, które dostaje),
  • kroki w określonej kolejności,
  • wyjście (rezultat),
  • jest jednoznaczny i skończony (musi się kiedyś zakończyć).

Algorytmy spotkasz w przepisach, instrukcjach, nawigacji GPS, wyszukiwarkach, grach i aplikacjach.

Zapis symboliczny algorytmu – po co?

Zapis symboliczny pomaga opisać rozwiązanie bez zależności od języka programowania.
Dzięki temu łatwiej wykryć błędy w logice zanim zaczniesz pisać kod.

Najczęstsze formy zapisu

  • Lista kroków – prosta instrukcja „zrób A, potem B”.
  • Pseudokod – „prawie-kod” z JEŻELI / W PRZECIWNYM RAZIE / DOPÓKI / DLA.
  • Schemat blokowy – zapis graficzny (start/stop, czynność, warunek, strzałki).
Podstawowe symbole schematu blokowego algorytmu
Przykładowe symbole schematu blokowego (start/stop, czynność, warunek).

Jak wygląda implementacja algorytmu?

Implementacja to przepisanie algorytmu na kod w konkretnym języku (np. C++). Zwykle wygląda to tak:

  1. Określasz problem oraz wejście i wyjście.
  2. Rozpisujesz kroki (lista / pseudokod / schemat).
  3. Dobierasz konstrukcje: sekwencje, warunki, pętle.
  4. Piszesz kod i testujesz na przykładach.

Przykład algorytmu: zaparzanie herbaty ☕

Opis kroków (wersja „ludzka”)

  1. Zagotuj wodę.
  2. Włóż torebkę herbaty do kubka.
  3. Zalej wrzątkiem.
  4. Odczekaj 3–5 minut.
  5. Wyjmij torebkę.
  6. (Opcjonalnie) dodaj cukier/cytrynę.
  7. Zamieszaj.

Pseudokod (z warunkiem)

START
Zagotuj wodę
Włóż torebkę herbaty do kubka
Zalej wrzątkiem
Odczekaj 4 minuty
Wyjmij torebkę

JEŻELI użytkownik chce cukier
    dodaj cukier
KONIEC JEŻELI

Zamieszaj
STOP

Implementacja w C++

Poniżej prosta „symulacja” algorytmu: program wypisuje kroki, a warunek if decyduje o dodaniu cukru.

#include <iostream>

void zaparzHerbate(bool cukier, int czasParzeniaMinuty = 4) {
    std::cout << "1) Gotuję wodę...\n";
    std::cout << "2) Wkładam torebkę herbaty do kubka.\n";
    std::cout << "3) Zalewam wrzątkiem.\n";

    std::cout << "4) Parzę przez " << czasParzeniaMinuty << " min.\n";
    std::cout << "5) Wyjmuję torebkę.\n";

    if (cukier) {
        std::cout << "6) Dodaję cukier.\n";
    }

    std::cout << "7) Mieszam.\n";
    std::cout << "8) Herbata gotowa! ☕\n";
}

int main() {
    zaparzHerbate(true, 4);   // z cukrem, 4 minuty
    return 0;
}

Podsumowanie

Algorytm to plan działania. Zapis symboliczny (pseudokod, schemat blokowy) pomaga zaplanować logikę,
a implementacja w C++ to zamiana tego planu na kod, który komputer wykona krok po kroku.

  1. Co to jest algorytm (własnymi słowami)?

  2. Jakie trzy elementy najczęściej ma algorytm: wejście, kroki, …?

  3. Co oznacza, że algorytm jest skończony?

  4. Co oznacza, że algorytm jest jednoznaczny?

  5. Podaj 2 przykłady algorytmów z życia codziennego (inne niż herbata).

  6. Po co stosuje się zapis symboliczny algorytmu przed programowaniem?

  7. Wymień trzy popularne formy zapisu symbolicznego algorytmu.

  8. Czym różni się pseudokod od kodu w konkretnym języku (np. C++)?

  9. Jakie typowe słowa/konstrukcje spotkasz w pseudokodzie?

  10. Co przedstawia schemat blokowy i do czego służy?

  11. Jaką rolę pełni owal w schemacie blokowym?

  12. Jaką rolę pełni prostokąt w schemacie blokowym?

  13. Jaką rolę pełni romb w schemacie blokowym?

  14. Do czego służą strzałki w schemacie blokowym?

  15. Co to jest implementacja algorytmu?

  16. Jakie są podstawowe etapy przejścia od problemu do programu (wymień min. 3)?

  17. W przykładzie herbaty: które kroki są stałe, a które są opcjonalne?

  18. W kodzie C++: do czego służy instrukcja if w przykładzie z herbatą?

  19. Jakie dane wejściowe przyjmuje funkcja zaparzHerbate() w przykładzie?

  20. Co wypisze program, jeśli wywołasz zaparzHerbate(false, 4)?

 

Zostaw komentarz

Koszyk