KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2010

PYTANIE NR 28.
W języku C/C++ zapisano instrukcję for(i=1;i<100;i=i+2). Jaką instrukcją można zastąpić zapis i=i+2?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zapis i+=2 jest skróconą formą przypisania, równoważną wyrażeniu i=i+2: najpierw do bieżącej wartości i dodaje się 2, a wynik zapisuje z powrotem do i.
Inne propozycje są błędne składniowo albo zmieniają krok (np. i++ zwiększa o 1).

Pełne wyjaśnienie:

W pętli for trzeci element (tzw. "krok" lub "wyrażenie iteracyjne") określa, jak ma się zmieniać zmienna sterująca po każdej iteracji. W podanym przykładzie krok ma postać:

i = i + 2

To oznacza: "weź obecną wartość i, dodaj 2 i wynik zapisz z powrotem do i". W C i C++ istnieją operatory skróconego przypisania, które zapisują dokładnie tę samą operację krócej. Dla dodawania jest to operator +=, więc równoważny zapis to:

i += 2

Dlatego odpowiedź "i+=2" jest poprawna: nie zmienia sensu pętli, a jedynie skraca zapis.

Pozostałe odpowiedzi są niepoprawne:

  • "i=2+" – to nie jest poprawne wyrażenie w C/C++ (brakuje argumentu po znaku +).
  • "i++" – jest poprawne składniowo, ale zwiększa i tylko o 1, więc zmienia działanie pętli (inne wartości i będą przyjmowane).
  • "i=+2" – zapisuje do i stałą wartość 2 (operator + jest tu jednoargumentowy), a nie "dodaje 2 do bieżącej wartości"; to całkowicie zmienia logikę iteracji.

Wskazówka egzaminacyjna: gdy widzisz wzorzec x = x + k, najczęściej istnieje jego skrót x += k. Analogicznie: x = x - kx -= k, x = x * kx *= k.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zapis i+=2 to operator skróconego przypisania. Oznacza: "dodaj 2 do aktualnej wartości i i zapisz wynik z powrotem do i". Jest równoważny zapisowi i = i + 2, tylko krótszy i często czytelniejszy.
W pętli for część po drugim średniku (np. i+=2) wykonuje się po każdej iteracji pętli. To ona zmienia zmienną sterującą, aby pętla przesuwała się do przodu i w końcu spełniła warunek zakończenia.
i++ zwiększa wartość zmiennej tylko o 1, natomiast i=i+2 zwiększa o 2. W pętlach to ważna różnica: zmienia zestaw wartości, które przyjmuje zmienna sterująca (np. parzyste/nieparzyste indeksy) oraz liczbę iteracji.
Najczęściej stosowany skrót to x+=1. Dodatkowo istnieje zapis x++, który także zwiększa o 1, ale ma inne zachowanie w wyrażeniach (postać pre/postinkrementacji). W samym kroku pętli for oba zwykle spełniają tę samą rolę.
i+=2 warto stosować, gdy chcesz podkreślić "modyfikuję zmienną o stały krok" i skrócić zapis. W praktyce zwiększa to czytelność kodu i ogranicza ryzyko literówek przy przepisywaniu nazwy zmiennej po obu stronach znaku =.
Nie. i=+2 przypisuje do zmiennej i wartość 2 (znak + jest tu jednoargumentowy i nie zmienia liczby). Aby dodać 2 do bieżącej wartości, potrzebujesz i=i+2 albo krócej i+=2.
Najczęstsze to: += (dodawanie), -= (odejmowanie), *= (mnożenie), /= (dzielenie), %= (reszta z dzielenia). Działają jak pełny zapis, np. a*=b oznacza a=a*b.
Porównaj semantykę: czy po prawej stronie jest dokładnie ta sama zmienna i ta sama operacja, np. i=i+2. Jeśli tak, to i+=2 jest równoważne. Uważaj na sytuacje typu i=f(i)+2 – tego nie da się tak prosto skrócić.
Typowe pomyłki to przestawienie znaków (np. =+ zamiast +=), urwanie wyrażenia (np. i=2+) lub brak średników w pętli for. Warto ćwiczyć na krótkich przykładach i kompilować kod, by zobaczyć komunikaty błędów.
W INF.3 pętle są używane m.in. do przetwarzania danych (np. tablic, tekstu, rekordów z bazy), generowania elementów strony oraz iteracji po wynikach zapytań. Krok co 2 bywa przydatny np. przy wyborze co drugiego elementu listy lub indeksów o określonej parzystości.
info

Statystycznie 78% uczniów zna prawidłową odpowiedź. średnio łatwe

Źródła:

  • cppreference.com: C++ compound assignment operators (+= etc.), https://en.cppreference.com/w/cpp/language/operator_assignment (dostęp: 2026-02-27)
  • cppreference.com: C++ for loop statement, https://en.cppreference.com/w/cpp/language/for (dostęp: 2026-02-27)
  • cppreference.com: C assignment operators (+= etc.), https://en.cppreference.com/w/c/language/operator_assignment (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja operatorska C/C++ (operatory przypisania, w tym +=)
  • Ćwiczenia z pętlami for (różne kroki iteracji i warunki zakończenia)
  • Materiały do INF.3 z podstaw programowania wykorzystywanego w aplikacjach internetowych (część ogólnoprogramistyczna)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego