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).


Jak wygląda implementacja algorytmu?
Implementacja to przepisanie algorytmu na kod w konkretnym języku (np. C++). Zwykle wygląda to tak:
- Określasz problem oraz wejście i wyjście.
- Rozpisujesz kroki (lista / pseudokod / schemat).
- Dobierasz konstrukcje: sekwencje, warunki, pętle.
- Piszesz kod i testujesz na przykładach.
Przykład algorytmu: zaparzanie herbaty ☕
Opis kroków (wersja „ludzka”)
- Zagotuj wodę.
- Włóż torebkę herbaty do kubka.
- Zalej wrzątkiem.
- Odczekaj 3–5 minut.
- Wyjmij torebkę.
- (Opcjonalnie) dodaj cukier/cytrynę.
- 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
STOPImplementacja 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.
Co to jest algorytm (własnymi słowami)?
Jakie trzy elementy najczęściej ma algorytm: wejście, kroki, …?
Co oznacza, że algorytm jest skończony?
Co oznacza, że algorytm jest jednoznaczny?
Podaj 2 przykłady algorytmów z życia codziennego (inne niż herbata).
Po co stosuje się zapis symboliczny algorytmu przed programowaniem?
Wymień trzy popularne formy zapisu symbolicznego algorytmu.
Czym różni się pseudokod od kodu w konkretnym języku (np. C++)?
Jakie typowe słowa/konstrukcje spotkasz w pseudokodzie?
Co przedstawia schemat blokowy i do czego służy?
Jaką rolę pełni owal w schemacie blokowym?
Jaką rolę pełni prostokąt w schemacie blokowym?
Jaką rolę pełni romb w schemacie blokowym?
Do czego służą strzałki w schemacie blokowym?
Co to jest implementacja algorytmu?
Jakie są podstawowe etapy przejścia od problemu do programu (wymień min. 3)?
W przykładzie herbaty: które kroki są stałe, a które są opcjonalne?
W kodzie C++: do czego służy instrukcja if w przykładzie z herbatą?
Jakie dane wejściowe przyjmuje funkcja zaparzHerbate() w przykładzie?
Co wypisze program, jeśli wywołasz zaparzHerbate(false, 4)?
