W pierwszej linii programu dołączamy plik nagłówkowy biblioteki iostream (strumieni wejścia-wyjścia). Jest to niezbędne, gdyż w dalszej części programu będziemy chcieli mieć możliwość pisania na ekranie (cout) i wczytywania danych wejściowych z klawiatury (cin). W 2 linii informujemy kompilator, że będziemy używali w programie nazw zdefiniowanych w przestrzeni nazw std (będą to: cin, cout, endl), gdybyśmy tego nie uczynili konieczne byłoby używanie dłuższego zapisu nazw kwalifikowanych (std::cin, std::cout, std::endl).
W linii 4 deklarujemy funkcję o nazwie silnia, przyjmującą jeden parametr typu całkowitego (n) i zwracającą w wyniku liczbę całkowitą. Pomiędzy nawiasami logicznymi { z końca linii 4 i } z linii 9 zawarte jest ciało funkcji - zestaw instrukcji wykonywany przez program po wywołaniu tej funkcji.
W linii 5 sprawdzamy czy n jest większe od 1 - blok (3) algorytmu. Jeżeli tak to w linii 6 określamy wynik funkcji jako n pomnożone przez wartość funkcji silnia (tej samej funkcji silnia, którą aktualnie definiujemy) dla n pomniejszonego o 1 (4). W tym miejscu funkcja silnia wywołuje samą siebie. Taką funkcję nazywamy funkcją rekurencyjną. Jeśli n nie jest większe od 1 to w linii 8 ustalamy wynik funkcji równy 1 (warunek zakończenia rekurencji) - blok (5).
W języku C++ program rozpoczyna się od wykonania funkcji main. Linia 11 zawiera początek definicji funkcji main, jest to początek realizacji naszego algorytmu (blok START (1)). W kolejnej linii deklarujemy dwie zmienne typu integer (zmienne n oraz wynik).
Linie od13 do 14 realizują operację wejścia/wyjścia (2), w której pobierane są dane wejściowe - argument funkcji silnia.
W linii 15 zmiennej wynik przypisujemy wynik działania funkcji silnia wywołanej z argumentem n.
W linii 16 wypisujemy otrzymany wynik (blok wejścia-wyjścia (6)).
Instrukcje w liniach 17 - 18 nie mają żadnego związku z wykonaniem algorytmu. Służą zatrzymaniu programu do czasu wprowadzenia dowolnego znaku i naciśnięcia klawisza enter, co zapobiega natychmiastowemu zamknięciu okienka z programem.
Nawias klamrowy } z linii 19 kończy funkcję main i zarazem działanie całego programu (blok końca algorytmu (7)).
