KWALIFIKACJA INF2 + INF3 - CZERWIEC 2009

PYTANIE NR 21.
Przeanalizuj zamieszczony schemat blokowy i wskaż, które polecenie w języku C++ zostało na nim przedstawione.
Ilustracja przedstawia schemat blokowy, który jest typowym elementem używanym w kontekście programowania, szczególnie w
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
"while..." opisuje pętlę z warunkiem sprawdzanym przed wykonaniem bloku. Jeśli na schemacie blokowym decyzja (romb) znajduje się na wejściu do powtarzanego fragmentu i przy niespełnieniu warunku następuje wyjście, odpowiada to konstrukcji while, a nie for, if ani do...while.

Pełne wyjaśnienie:

Pytanie wymaga rozpoznania, jakiej konstrukcji sterującej odpowiada schemat blokowy. Kluczowa jest obserwacja, kiedy sprawdzany jest warunek oraz czy blok działa w powtórzeniu.

Odpowiedź "while..." jest poprawna, gdy schemat przedstawia pętlę przedtestową, czyli taką, w której:

  • najpierw następuje sprawdzenie warunku (romb z pytaniem/warunkiem),
  • dopiero potem wykonywany jest blok instrukcji,
  • po wykonaniu bloku następuje powrót do sprawdzenia warunku,
  • gdy warunek jest fałszywy, algorytm wychodzi z pętli.

Dlaczego pozostałe odpowiedzi nie pasują do typowego schematu pętli while?

  • "for..." to pętla używana zwykle, gdy schemat (lub opis) zawiera wyraźnie trzy elementy: inicjalizację, warunek kontynuacji i krok zmiany (np. inkrementację) w jednym cyklu sterowania. Na schematach blokowych często widać wtedy osobne bloki inicjalizacji i zmiany licznika; sama obecność powrotu nie wystarcza, by uznać to za for.
  • "if..." jest instrukcją warunkową bez wbudowanego mechanizmu powtarzania. Jeśli schemat nie ma strzałki powrotu i wykonuje blok co najwyżej raz (z ewentualnym rozgałęzieniem), wtedy pasuje if, ale nie pętla.
  • "do...while..." to pętla potestowa: najpierw wykonuje się blok, a dopiero potem sprawdza warunek (romb jest "na końcu" obiegu). Taka pętla gwarantuje co najmniej jedno wykonanie bloku, co zwykle widać po umieszczeniu decyzji po wykonaniu instrukcji.

Wskazówka egzaminacyjna: na schemacie blokowym najpierw sprawdź, czy jest powrót do wcześniejszego miejsca (to odróżnia pętlę od if), a następnie zobacz, czy romb warunku jest przed czy po bloku powtarzanym. To najszybciej rozróżnia while i do...while.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla while wykonuje blok instrukcji tak długo, jak długo spełniony jest warunek logiczny. Warunek jest sprawdzany przed wejściem do bloku, więc gdy od razu jest fałszywy, blok może nie wykonać się ani razu.
Najczęściej widać romb z warunkiem na wejściu do powtarzanego fragmentu. Gdy warunek jest prawdziwy, przepływ idzie do bloku, a potem wraca strzałką do rombu. Gdy fałszywy, następuje wyjście z pętli.
W do...while warunek sprawdza się po wykonaniu bloku. Na schemacie romb decyzyjny zwykle znajduje się na końcu obiegu, po bloku instrukcji. To oznacza, że blok wykona się co najmniej jeden raz.
Pętla for zwykle łączy: inicjalizację licznika, warunek kontynuacji oraz krok zmiany (np. inkrementację). Na schemacie często można zobaczyć osobny blok ustawienia wartości początkowej i osobny blok zmiany wartości przed kolejnym sprawdzeniem warunku.
Zwykle nie. if nie ma powtórzeń, więc na schemacie nie powinno być strzałki wracającej do wcześniejszego warunku. Jeśli widzisz wyraźny powrót do rombu lub bloku, to znak, że to pętla, a nie jednorazowe rozgałęzienie.
Użyj while, gdy liczba powtórzeń nie jest z góry znana i zależy od warunku (np. "wczytuj dane, dopóki użytkownik nie poda poprawnej wartości"). for jest wygodniejszy, gdy iteracje są policzalne i sterowane licznikiem.
Najczęstsze pomyłki to ignorowanie kierunku strzałek oraz miejsca sprawdzania warunku (przed czy po bloku). Uczniowie mylą też for z while, gdy widzą zmianę zmiennej, mimo że schemat nie pokazuje pełnej struktury licznika.
Jeśli warunek jest sprawdzany dopiero po wykonaniu bloku, to blok wykona się co najmniej raz (typowe dla do...while). Jeśli warunek jest na wejściu, blok może nie wykonać się wcale (typowe dla while).
Romb oznacza decyzję (sprawdzenie warunku), która rozdziela przepływ na co najmniej dwie ścieżki, np. "tak/nie" albo "prawda/fałsz". W pętlach jedna ze ścieżek zwykle prowadzi do powtórzenia, a druga do wyjścia.
Ćwicz identyfikację: pętla czy rozgałęzienie, a potem miejsce warunku (przed/po). Pomaga rysowanie strzałek na brudno i opisywanie ścieżek "warunek prawda" oraz "warunek fałsz". Dodatkowo tłumacz schemat na pseudokod.
info

To pytanie poprawnie rozwiązuje 64% zdających egzamin. średnie

Specjaliści zwracają uwagę: ""while..." opisuje pętlę z warunkiem sprawdzanym przed wykonaniem bloku."

Źródła:

  • cppreference.com: C++ "while statement" — https://en.cppreference.com/w/cpp/language/while (dostęp: 2026-02-27)
  • cppreference.com: C++ "for statement" — https://en.cppreference.com/w/cpp/language/for (dostęp: 2026-02-27)
  • cppreference.com: C++ "do-while statement" — https://en.cppreference.com/w/cpp/language/do (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja cppreference dotycząca instrukcji iteracyjnych i warunkowych
  • Podręcznik do podstaw programowania C++ (rozdziały: instrukcje sterujące, pętle)
  • Materiały o schematach blokowych: symbole i zasady czytania przepływu

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego