KWALIFIKACJA INF3 - CZERWIEC 2016

PYTANIE NR 30.
Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest
Ilustracja przedstawia fragment kodu w języku JavaScript, który jest częścią pytania egzaminacyjnego dla kwalifikacji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna jest odpowiedź: "wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n", bo opisuje jednocześnie efekt uboczny działania funkcji (wypisywanie kolejnych liczb z określonego zakresu) oraz jej wynik (wartość zwracaną przez return). Pozostałe opcje zmieniają górną granicę zakresu lub mylą wypisanie ze zwracaniem.

Pełne wyjaśnienie:

W JavaScript trzeba rozróżniać dwie rzeczy: co funkcja robi "na zewnątrz" (np. wypisuje wartości do konsoli, modyfikuje stronę) oraz co funkcja zwraca jako wynik instrukcją return. Dlatego w odpowiedzi poprawnej muszą wystąpić oba elementy: opis wypisywanego zakresu i informacja o zwracanej wartości.

Stwierdzenie "wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n" jest spójne z typową konstrukcją, w której pętla startuje od a i iteruje do wartości granicznej (tu: 100), a następnie funkcja zwraca zmienną n (np. licznik iteracji albo ostatnio przetworzoną wartość).

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

  • "wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100" miesza dwie niezależne kwestie: ogranicza wypisywany zakres do 99 oraz zakłada stałą wartość zwracaną 100. W praktyce zwracanie stałej jest czymś innym niż zwracanie zmiennej, a pomyłka 99/100 to klasyczny błąd graniczny.
  • "wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n" redukuje wypisywanie do pojedynczej wartości a. Jeśli funkcja ma wypisywać ciąg liczb, samo wypisanie a nie opisuje jej działania.
  • "zwrócenie liczb z przedziału a .. 99" jest nieprecyzyjne: funkcja w JavaScript nie "zwraca liczb" jako serii bez użycia tablicy/łańcucha/iteratora. Taki opis pomija też aspekt wypisywania (np. console.log), który jest innym mechanizmem niż return.

Wskazówka egzaminacyjna: gdy w kodzie widzisz console.log (lub inną formę wypisywania) i osobno return, w odpowiedzi powinny pojawić się oba skutki. Osobno sprawdzaj granice pętli: różnica między warunkiem i < 100 i i <= 100 zmienia, czy 100 zostanie wypisane.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
"Wypisuje" zwykle znaczy, że wykonuje efekt uboczny, np. wyświetla wartości w konsoli przez console.log() albo dopisuje je do strony. To nie jest to samo co wynik funkcji. Wypisywanie nie zmienia wartości zwracanej przez return.
Oznacza, że funkcja kończy działanie instrukcją return n i przekazuje do miejsca wywołania aktualną wartość zmiennej n. Ta wartość może być potem przypisana do zmiennej, użyta w obliczeniach lub porównaniach, niezależnie od tego, co funkcja wypisywała.
Trzeba sprawdzić warunek w pętli: < 100 kończy na 99, a <= 100 kończy na 100. Podobnie działa warunek w while. To klasyczna sytuacja "off-by-one", więc zawsze czytaj dokładnie znak porównania.
W JavaScript pojedynczy return zwraca jedną wartość (np. liczbę, tekst, obiekt, tablicę). Jeśli ktoś pisze "zwraca liczby z przedziału", to powinno to oznaczać np. zwrócenie tablicy tych liczb. Bez tego sformułowanie jest nieprecyzyjne i myli zwracanie z wypisywaniem.
Najczęstszy błąd to pomylenie < i <=, przez co wypisuje się o jeden element za mało lub za dużo. Drugi błąd to złe ustawienie wartości startowej (np. zaczęcie od 0 zamiast od a). Pomaga zawsze przetestować pierwszy i ostatni element zakresu.
Tak. Funkcja może w pętli wypisywać kolejne liczby (np. console.log(i)), a na końcu zwrócić np. licznik lub ostatnią wartość przez return. Na egzaminie to ważne rozróżnienie: wypisywanie to efekt uboczny, a zwracanie to formalny wynik funkcji.
Zmienna n często jest licznikiem iteracji, wynikiem pośrednim albo ostatnio przypisaną wartością. Opisując działanie, sprawdź: gdzie n jest inicjalizowana, jak jest modyfikowana w pętli i czy jest użyta w return. To pozwala odróżnić wynik od samego wypisywania.
Taki zapis sugeruje, że a jest większe od 0 i mniejsze od 99 (przedział otwarty), więc pętla startująca od a ma sens i nie wychodzi od razu poza typowe granice. W praktyce na egzaminie chodzi o to, by warunek pętli działał poprawnie dla różnych wartości startowych.
Najprościej wkleić kod do konsoli w przeglądarce (DevTools) i wywołać funkcję z kilkoma wartościami a, np. 1, 50, 98. Sprawdź, jaka jest ostatnia wypisana liczba oraz co funkcja faktycznie zwraca (np. przypisz wynik do zmiennej i ją wyświetl).
Ćwicz krótkie fragmenty: pętla od a do b, modyfikacja warunku </<=, liczenie iteracji w zmiennej oraz zwracanie wyniku return. Dobrą metodą jest ręczne prześledzenie 3 pierwszych i 3 ostatnich kroków pętli.
info

Około 41% zdających odpowiada poprawnie na to pytanie. trudne

Według specjalistów z branży: "Poprawna jest odpowiedź: "wypisanie liczb z przedziału a .."

Źródła:

  • MDN Web Docs: Functions — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions (dostęp: 2026-03-02)
  • MDN Web Docs: return statement — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return (dostęp: 2026-03-02)
  • MDN Web Docs: for statement — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja MDN: Functions (JavaScript)
  • Dokumentacja MDN: for statement oraz while statement
  • Dokumentacja MDN: return oraz console.log

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego