KWALIFIKACJA INF2 + INF3 - PRÓBNY

PYTANIE NR 8.
Algorytm przedstawiony na rysunku można zapisać jako
Ilustracja przedstawia schemat blokowy algorytmu, który jest typowym przykładem pętli 'while'.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny zapis musi odpowiadać schematowi: inicjalizacja x=0, następnie powtarzanie zwiększania x o 1 tak długo, jak spełniony jest warunek x<=10. Konstrukcja while sprawdza warunek przed wejściem do bloku, a użycie <= powoduje inną liczbę iteracji niż przy <10.

Pełne wyjaśnienie:

W tym typie zadania chodzi o przetłumaczenie schematu blokowego na zapis pętli. Kluczowe są trzy elementy: inicjalizacja licznika, miejsce modyfikacji licznika (inkrementacja) oraz warunek kontynuacji.

Odpowiedź "x=0; while (x<=10) {x++;}" jest poprawna, bo zawiera:

  • inicjalizację licznika: x=0,
  • pętlę z warunkiem na początku: while (...), czyli decyzja o wejściu do bloku zapada przed wykonaniem instrukcji w klamrach,
  • inkrementację o 1: x++,
  • warunek z równością: x<=10, co jest istotne dla liczby wykonań (to typowy obszar błędów off-by-one).

Dlaczego pozostałe propozycje nie pasują:

  • "x=0; do {x=x+1;} while (x<10)" to pętla do-while, czyli warunek jest sprawdzany po wykonaniu bloku. Dodatkowo warunek ma postać x<10, więc zakres iteracji różni się od przypadku z x<=10.
  • "x=0; do {x++;} while (x>10)" ma warunek w przeciwną stronę (x>10). Przy starcie od zera taki warunek nie będzie spełniony po pierwszym obrocie, więc zachowanie pętli nie odpowiada typowemu schematowi "liczenia w górę do 10".
  • "for (x=0;x<10;x++)" jest pętlą z warunkiem x<10, a więc znowu pojawia się różnica brzegowa w porównaniu do x<=10. Nawet jeśli stylistycznie for bywa równoważny while, tutaj warunek determinuje inną liczbę iteracji.

Wskazówka egzaminacyjna: najpierw odczytaj ze schematu warunek dokładnie z operatorem (<, <=, >, >=), potem sprawdź, czy warunek jest przed czy po bloku (while vs do-while). To najszybciej eliminuje odpowiedzi pozornie podobne.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Pętla while wykonuje blok instrukcji tak długo, jak warunek jest prawdziwy, a warunek sprawdzany jest przed każdą iteracją. Używa się jej, gdy liczba powtórzeń nie jest z góry znana i zależy od bieżącego stanu zmiennych.
Pętla do-while sprawdza warunek po wykonaniu bloku, więc blok wykona się co najmniej raz. W while warunek jest sprawdzany na początku, więc przy fałszywym warunku początkowym blok może nie wykonać się ani razu.
Operator <= dopuszcza przypadek równości, więc pętla trwa także wtedy, gdy zmienna ma wartość graniczną (np. 10). To często daje jedną iterację więcej niż przy <, dlatego w zadaniach łatwo o błąd typu off-by-one.
Patrz na miejsce decyzji (romb z warunkiem). Jeśli warunek jest sprawdzany przed wejściem do bloku działań, odpowiada to while. Jeśli romb jest po bloku i strzałka wraca do początku, to odpowiada to do-while.
Najczęstsze pomyłki to: zły operator porównania (< zamiast <=), przeniesienie warunku na koniec (do-while zamiast while), oraz błędne miejsce inkrementacji. Warto zawsze prześledzić pierwsze 2–3 iteracje "na sucho".
Ustal wartość startową, krok zmiany (np. +1) i warunek (np. x<=10). Następnie wypisz kolejne wartości x aż do złamania warunku. Taka krótka symulacja zwykle wystarcza, by odróżnić < od <= oraz while od do-while.
W typowych językach (np. C/Java/JavaScript) oba zapisy zwiększają wartość zmiennej o 1. Różnice pojawiają się dopiero w wyrażeniach (pre/postinkrementacja), ale gdy jest to osobna instrukcja w bloku pętli, efekt dla licznika jest taki sam.
for jest wygodny, gdy masz klasyczny licznik: inicjalizacja, warunek i krok są w jednym miejscu. while bywa czytelniejsza, gdy warunek zależy od kilku zmiennych lub gdy krok nie jest stały. Na egzaminie wybieraj zapis zgodny ze schematem.
Jeśli startujesz od x=0 i zwiększasz x o 1, to warunek x>10 jest początkowo fałszywy. W pętli z warunkiem na początku blok w ogóle się nie wykona, a w do-while wykona się tylko raz. To typowy "odwrócony" warunek.
Ćwicz trzy rzeczy: (1) tłumaczenie schematu blokowego na while/do-while/for, (2) symulację iteracji i przypadki brzegowe (< vs <=), (3) rozpoznawanie błędów off-by-one. Pomaga rozwiązywanie krótkich zadań z analizą 2–3 pierwszych obrotów.
info

To pytanie poprawnie rozwiązuje 40% zdających egzamin. trudne

Specjaliści zwracają uwagę: "Poprawny zapis musi odpowiadać schematowi: inicjalizacja x=0, następnie powtarzanie zwiększania x o 1 tak długo, jak spełniony jest warunek x&lt;=10."

Źródła:

  • MDN Web Docs: "while" statement, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while (dostęp: 2026-03-01)
  • MDN Web Docs: "do...while" statement, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while (dostęp: 2026-03-01)
  • The Java™ Tutorials (Oracle): "while and do-while", https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja języka używanego na zajęciach (sekcja: instrukcje iteracyjne/pętle)
  • Materiały o schematach blokowych i translacji schematu na pseudokod
  • Zadania typu: policz liczbę iteracji dla danego warunku pętli

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego