KWALIFIKACJA INF3 - STYCZEŃ 2023 (test 2)

PYTANIE NR 4.
Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?
Ilustracja przedstawia fragment kodu w języku JavaScript, który jest częścią pytania egzaminacyjnego z kwalifikacji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W kodzie z ilustracji po
x = 0; x += 10;
zmienna ma wartość 10. Wskazany zapis działa sekwencyjnie:
x=0
, potem
x++
daje 1, a następnie
x = x + 9
daje 10. Pozostałe odpowiedzi zmieniają x inaczej (dekrementacja, mnożenie, inna suma).

Pełne wyjaśnienie:

Pytanie sprawdza, czy potrafisz rozpoznać równoważny rezultat działania kodu JavaScript, czyli tę samą wartość końcową zmiennej po wykonaniu wszystkich instrukcji.

Kod z ilustracji:

x = 0;
x += 10;

Operator += jest skrótem zapisu dodania i przypisania: x += 10 oznacza to samo co x = x + 10. Zatem po wykonaniu obu linii otrzymujemy wartość końcową x = 10.

Dlaczego poprawna odpowiedź działa tak samo?

x = 0;
x++;
x = x + 9;
  1. Po x = 0 mamy x = 0.
  2. Po x++ (inkrementacja) mamy x = 1.
  3. Po x = x + 9 mamy x = 1 + 9 = 10.

Wartość końcowa to również 10, więc rezultat jest jednakowy.

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

  • x = 0; x--; x *= 9;
    Najpierw dekrementacja daje x = -1, a potem mnożenie: x = -1 · 9 = -9. To inny wynik niż 10. Typowy błąd to pomylenie -- z ++ albo *= z +=.
  • x = 10; x = x + 10;
    Startuje od 10, a potem dodaje 10, więc kończy z x = 20. To nie odpowiada kodowi z ilustracji, gdzie start jest od zera.
  • x = 10; x = 0;
    Druga instrukcja nadpisuje wartość i końcowo x = 0. To pokazuje, że sama obecność liczby 10 w kodzie nie oznacza wyniku 10.

Wskazówka egzaminacyjna: przy pytaniach o "jednakowy rezultat" wykonuj krótki trace: po każdej instrukcji zapisz aktualne x. To minimalizuje pomyłki wynikające z pośpiechu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator += to złożone przypisanie: x += 10 jest równoważne x = x + 10. Na egzaminie najbezpieczniej zamienić go w myślach na dłuższy zapis i policzyć wynik krok po kroku.
++ zwiększa wartość zmiennej o 1. W zapisie samodzielnym (np. x++;) po wykonaniu tej instrukcji x jest większe o 1. W zadaniach typu "rezultat kodu" liczy się stan po każdej linii.
Oba fragmenty kończą z tą samą wartością: 10. W pierwszym po inicjalizacji jest 0, potem inkrementacja daje 1, a dodanie 9 daje 10. W drugim od 0 od razu dodajesz 10 przez +=.
Zrób krótki trace: wypisz wartość zmiennej po każdej instrukcji (np. 0 → 1 → 10). Nie oceniaj po wyglądzie kodu. To metoda pewna, szczególnie gdy pojawiają się operatory typu ++, --, *=.
Dla typowych liczb (Number) w JavaScript tak, oba zapisy prowadzą do tego samego wyniku. W zadaniach egzaminacyjnych z podstaw operatorów zwykle zakłada się właśnie taki kontekst. Warto pamiętać, że dla łańcuchów znaków + oznacza konkatenację.
Najczęściej myli się kierunek zmiany: ++ zwiększa, a -- zmniejsza. Drugi błąd to pominięcie jednej linii w sekwencji. Pomaga zapisywanie kolejno wartości po każdej instrukcji zamiast liczenia "w głowie".
Bo zmienia wartość w inną stronę i inną operacją. Po x=0 dekrementacja daje -1, a *=9 mnoży, więc wynik to -9. To nie może dać tego samego rezultatu co kod kończący z x=10.
Najczęściej, gdy startujesz od 10 i dodajesz kolejne 10, np. x = 10; x = x + 10;. To dobry "dystraktor" na egzaminie: wygląda podobnie do +=10, ale różni się wartością początkową.
Operator = przypisuje nową wartość i zastępuje starą. Jeśli wcześniej było x = 10;, a potem x = 0;, to końcowo liczy się 0. W zadaniach o rezultat zawsze patrz na ostatnie przypisania.
Ćwicz krótkie fragmenty kodu i rób trace na kartce: stan zmiennej po każdej linii. Opanuj: =, +=, -=, *=, /=, ++, --. W code review i debugowaniu to codzienna umiejętność, a na egzaminie często pojawia się wprost.
info

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

Eksperci podkreślają: "W kodzie z ilustracji po x = 0; x += 10; zmienna ma wartość 10."

Źródła:

  • MDN Web Docs: Assignment operators (JavaScript) – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment (dostęp: 2026-02-18)
  • MDN Web Docs: Increment (++) operator – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Increment (dostęp: 2026-02-18)
  • MDN Web Docs: Decrement (--) operator – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Decrement (dostęp: 2026-02-18)

Materiały:

  • Dokumentacja MDN: Operatory JavaScript (działy: Assignment operators, Increment/decrement)
  • Specyfikacja ECMAScript (opis zachowania operatorów ++ oraz przypisania złożonego)
  • Ćwiczenia typu trace: ręczne obliczanie wartości zmiennych po każdej instrukcji

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego