KWALIFIKACJA INF2 + INF3 - CZERWIEC 2015

PYTANIE NR 22.
W przedstawionym programie funkcja o nazwie licz oblicza
Ilustracja przedstawia fragment kodu w języku C++.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Potęgowanie polega na wielokrotnym mnożeniu liczby x przez samą siebie n razy, więc funkcja zwraca wartość xn. Odpowiedź o "iloczynie x i wynik" opisuje co najwyżej pojedynczy krok, a nie cały algorytm. Logarytm jest działaniem odwrotnym do potęgowania, a silnia dotyczy mnożenia kolejnych liczb naturalnych, nie potęg.

Pełne wyjaśnienie:

Funkcja, która oblicza n-tą potęgę liczby x, zwraca wynik równy x podniesione do potęgi n, czyli xn. W praktyce programistycznej najczęściej realizuje się to przez:

  • wielokrotne mnożenie (np. start od 1 i wykonywanie mnożenia przez x w pętli n razy),
  • albo rekurencję (wynik dla n zależy od wyniku dla n-1).

Odpowiedź "n-tą potęgę liczby x." jest poprawna, bo opisuje efekt końcowy takiego algorytmu: po wykonaniu n kroków mnożenia (lub n wywołań rekurencji) otrzymujemy x·x·…·x (n czynników).

Odpowiedź "iloczyn liczby x i wynik." jest myląca: to zwykle opis pojedynczej operacji (jednego kroku aktualizacji akumulatora wyniku), a nie tego, co funkcja oblicza jako rezultat końcowy. W potęgowaniu taki iloczyn występuje wielokrotnie, ale ostateczny wynik to właśnie xn.

Odpowiedź "logarytm o podstawie n z liczby x." jest niepoprawna, ponieważ logarytm to działanie odwrotne do potęgowania i w kodzie wyglądałby inaczej (zwykle wymaga funkcji matematycznych, przybliżeń lub gotowych bibliotek, a nie prostego powtarzanego mnożenia).

Odpowiedź "silnię liczby x." również nie pasuje: silnia (x!) polega na mnożeniu kolejnych liczb naturalnych od 1 do x. Typowe implementacje silni używają zmiennej iterującej po kolejnych wartościach (1,2,3,…) i nie polegają na stałym mnożeniu przez tę samą liczbę x.

Wskazówka egzaminacyjna: żeby szybko rozpoznać potęgowanie w kodzie, szukaj schematu "wynik = 1; powtarzaj n razy: wynik *= x" lub rekurencji "jeśli n==0 zwróć 1, w przeciwnym razie zwróć x * licz(x, n-1)".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza to, że wynik działania funkcji jest równy xn, czyli x pomnożone przez siebie n razy (x·x·…·x). W kodzie zwykle widać zmienną "wynik" oraz powtarzane mnożenie przez x w pętli lub rekurencji.
Przy potęgowaniu mnożenie jest wykonywane wielokrotnie: np. inicjalizacja wyniku na 1 i pętla działająca n razy, gdzie za każdym razem wynik jest mnożony przez x. Pojedyncze "wynik = x * coś" bez powtarzania nie oznacza jeszcze potęgowania.
Logarytm jest działaniem odwrotnym do potęgowania i zwykle nie wynika z prostego schematu pętli z mnożeniem. W praktyce logarytmy oblicza się funkcjami bibliotecznymi lub metodami numerycznymi, a nie przez powtarzanie "wynik *= x".
Najczęściej myli się pojedynczy krok (np. "wynik = wynik * x") z tym, co funkcja robi jako całość. Taki krok pojawia się wiele razy, dlatego całościowy rezultat to xn, a nie jednorazowy iloczyn x i aktualnego wyniku.
Potęgowanie mnoży ciągle przez tę samą liczbę x, kontrolując liczbę powtórzeń n. Silnia mnoży kolejne liczby (1, 2, 3, …, x). Jeśli w kodzie rośnie licznik i jest mnożony do wyniku, to typowe dla silni, nie potęgi.
Najczęściej zaczyna się od 1, bo 1 jest elementem neutralnym mnożenia: 1·x = x. Dzięki temu po n mnożeniach przez x uzyskuje się xn. Gdyby zacząć od 0, wynik zawsze pozostałby 0 niezależnie od x i n.
W matematyce dla x ≠ 0 zachodzi x0 = 1, więc wiele implementacji ma warunek szczególny dla n = 0 i zwraca 1. Na egzaminie warto sprawdzić, czy kod uwzględnia taki przypadek (np. pętla wykona się 0 razy lub jest warunek w rekurencji).
Zrób krótką tabelę śledzenia: wpisz kolejne wartości zmiennych (np. licznik pętli i "wynik") po każdym obrocie. Jeśli "wynik" jest za każdym razem mnożony przez x i wykonuje się to n razy, to końcowo otrzymasz xn.
Często spotyka się nazwy typu "wynik", "res", "power", "potega" oraz parametry "x" (podstawa) i "n" (wykładnik). Sama nazwa niczego nie gwarantuje, ale w połączeniu z pętlą/rekurencją i mnożeniem ułatwia rozpoznanie intencji kodu.
Ćwicz analizę krótkich funkcji: pętle, instrukcje warunkowe, rekurencję i akumulację wyniku. Rozwiązuj zadania, w których trzeba nazwać wykonywane działanie (potęga, suma, maksimum, silnia). Pomaga też pisanie własnych wersji funkcji i testowanie ich na małych danych.
info

Statystycznie 57% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że potęgowanie polega na wielokrotnym mnożeniu liczby x przez samą siebie n razy, więc funkcja zwraca wartość xn.

Źródła:

  • Wikipedia (PL): "Potęgowanie" – https://pl.wikipedia.org/wiki/Pot%C4%99gowanie (dostęp 2026-02-27)
  • Wikipedia (PL): "Logarytm" – https://pl.wikipedia.org/wiki/Logarytm (dostęp 2026-02-27)
  • Wikipedia (PL): "Silnia" – https://pl.wikipedia.org/wiki/Silnia (dostęp 2026-02-27)

Materiały:

  • Podstawy algorytmiki: potęgowanie iteracyjne i rekurencyjne (materiały szkolne/CKE dla programowania podstawowego)
  • Dokumentacja języka używanego na egzaminie (sekcja: funkcje, pętle, operatory)
  • Ćwiczenia: śledzenie wartości zmiennych krok po kroku (trace table) dla prostych funkcji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego