KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 30.
Podaj wynik działania programu zapisanego w języku JavaScript, znajdującego się w ramce, po podaniu na wejściu wartości 5.
Ilustracja przedstawia fragment kodu w języku JavaScript, który jest częścią pytania egzaminacyjnego dotyczącego
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Dla wejścia 5 program oblicza wartość 120. Taki wynik jest typowy dla algorytmu wyznaczającego silnię (iloczyn kolejnych liczb całkowitych od 1 do 5): 1·2·3·4·5 = 120. Pozostałe odpowiedzi odpowiadają innym operacjom (np. potęgom lub niepełnemu iloczynowi).

Pełne wyjaśnienie:

W zadaniach tego typu należy wykonać śledzenie programu krok po kroku dla podanej wartości wejściowej. Dla wejścia równego 5 poprawny wynik to 120, co odpowiada klasycznemu obliczeniu silni.

Silnia liczby 5 (zapisywana jako 5!) jest iloczynem kolejnych liczb naturalnych od 1 do 5:

5! = 1 · 2 · 3 · 4 · 5 = 120

W praktyce program w JavaScript często realizuje to przez zmienną-akumulator (np. ustawioną początkowo na 1) oraz pętlę, w której akumulator jest mnożony przez kolejne wartości (1,2,3,4,5) albo przez wartości schodzące (5,4,3,2,1). Po zakończeniu pętli (lub po powrocie z rekurencji) wypisywana jest wartość akumulatora, czyli 120.

Dlaczego pozostałe odpowiedzi są błędne?

  • 60 – to typowy efekt "ucięcia" jednego czynnika (np. policzenie 1·2·3·4 lub 2·3·4·5) albo błędu granic pętli. Nie jest to pełna silnia 5.
  • 125 – to 53. Taki wynik pasowałby do programu obliczającego potęgę, a nie iloczyn kolejnych liczb.
  • 625 – to 54. Również wskazuje na potęgowanie, często wybierane na podstawie skojarzenia z liczbą 5, ale nie wynika z typowego algorytmu silni.

Wskazówka egzaminacyjna: zapisuj wartości pośrednie w tabelce (iteracja → aktualna wartość zmiennej). To ogranicza błędy typu off-by-one i pomyłki rachunkowe, szczególnie gdy w kodzie są inkrementacje/dekrementacje.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To polecenie oznacza, że masz prześledzić wykonanie kodu dla podanego wejścia i wskazać wartość, którą program wypisze (np. w konsoli, w dokumencie lub jako wynik funkcji). Najlepiej rozpisać wartości zmiennych po każdej iteracji pętli.
Ustal wartości początkowe zmiennych, a potem dla każdej iteracji zapisz: (1) aktualny licznik pętli, (2) wartość akumulatora przed operacją, (3) wynik po operacji. Na końcu porównaj to z miejscem, w którym kod wypisuje wynik (console.log/alert/document.write).
Wynik 120 to silnia 5, czyli iloczyn liczb 1·2·3·4·5. W zadaniach egzaminacyjnych często pokazuje się prosty algorytm z akumulatorem i pętlą, który mnoży kolejne wartości, aby sprawdzić umiejętność analizy pętli i zmiennych.
Najczęściej pojawia się błąd granic pętli (np. wykonanie o jedną iterację za mało/za dużo), pominięcie inicjalizacji akumulatora (np. start od 0 zamiast 1) oraz mylenie momentu aktualizacji licznika (pre/post inkrementacja). Pomaga tabelka wartości po każdej iteracji.
Wartości 125 i 625 to typowe potęgi liczby 5 (5³ i 5⁴), natomiast 120 jest charakterystyczne dla silni 5. 60 często wskazuje na "ucięty" iloczyn. Mimo to na egzaminie zawsze rozstrzyga analiza kodu, nie skojarzenia.
Najprościej wkleić kod do pliku HTML/JS i uruchomić w przeglądarce. Potem użyć DevTools: zakładki Console (wyniki), Sources (debugger, breakpoints) oraz podglądu zmiennych. To pozwala zobaczyć wartości pośrednie bez liczenia w pamięci.
Tak. Rekurencyjna definicja silni to: jeśli n=0 lub n=1, zwróć 1; w przeciwnym razie zwróć n·silnia(n−1). Dla n=5 daje to 5·4·3·2·1 = 120. Na egzaminie trzeba zwrócić uwagę na warunek stopu, bo jego błąd zmienia wynik.
Akumulator przechowuje wynik pośredni. Dla iloczynu (silni) powinien startować od 1, bo 1 nie zmienia mnożenia. Jeśli ktoś zacznie od 0, wynik zawsze wyjdzie 0. Jeśli zacznie od 5, a potem mnoży od 1 do 5, otrzyma zawyżony wynik.
Występuje, gdy pętla ma złą granicę, np. "i < 5" zamiast "i <= 5", albo zaczyna od 0 zamiast od 1. Skutek to brak jednego czynnika (wynik zaniżony, np. 60 zamiast 120) albo dodatkowy czynnik (wynik zawyżony).
Ćwicz na krótkich fragmentach JS: pętle, instrukcje warunkowe, funkcje i praca na zmiennych. Stosuj stałą metodę: (1) spisz wejście, (2) wypisz zmienne startowe, (3) tabela iteracji, (4) wskaż miejsce wypisania wyniku. To minimalizuje pomyłki na egzaminie.
info

Około 65% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "Dla wejścia 5 program oblicza wartość 120."

Źródła:

  • MDN Web Docs: for statement (JavaScript) — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for — dostęp 2026-02-18
  • MDN Web Docs: while statement (JavaScript) — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while — dostęp 2026-02-18
  • Wikipedia: Silnia — https://pl.wikipedia.org/wiki/Silnia — dostęp 2026-02-18

Materiały:

  • Dokumentacja MDN: pętle for/while w JavaScript
  • Materiały o debugowaniu w przeglądarce (DevTools: Sources/Console)
  • Powtórka z podstaw algorytmiki: iteracja vs rekurencja

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego