KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2008

PYTANIE NR 10.
Jaką instrukcję zawiera przedstawiony fragment programu w języku C/C++?



                              ... 

                { 
   				int k=1; 
                while (k++<=20) cout << k<< " "; 

   

                              ... 
							  



A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Fragment zawiera pętlę, ponieważ użyto instrukcji while, która wykonuje blok (tu: wypisanie wartości) wielokrotnie, dopóki spełniony jest warunek w nawiasie. Instrukcja wyboru dotyczy rozgałęzień (np. if/switch), a skoku – przerwania lub zmiany przepływu (np. break/goto).

Pełne wyjaśnienie:

W pokazanym fragmencie kodu występuje instrukcja pętli, ponieważ kluczowym elementem jest słowo kluczowe while. Konstrukcja ta realizuje iterację: wielokrotnie wykonuje wskazaną instrukcję (lub blok instrukcji), tak długo, jak długo spełniony jest warunek logiczny podany w nawiasie.

W tym przykładzie zmienna k jest licznikiem. Zapis k++ oznacza inkrementację postfiksową: w wyrażeniu używana jest bieżąca wartość, a dopiero potem następuje zwiększenie o 1. Niezależnie od szczegółów działania tego operatora, sam fakt użycia while jednoznacznie klasyfikuje konstrukcję jako pętlę.

  • Odpowiedź "Wyboru." jest błędna, bo instrukcje wyboru to rozgałęzienia sterowania (np. if, switch), w których wybiera się jedną z gałęzi wykonania, a nie powtarza czynność wiele razy.
  • Odpowiedź "Warunkową." bywa myląca: pętla także ma warunek, ale w klasyfikacji instrukcji sterujących "instrukcja warunkowa" odnosi się zwykle do konstrukcji typu if/else, czyli pojedynczego sprawdzenia warunku i wyboru ścieżki, bez wbudowanego mechanizmu powtarzania.
  • Odpowiedź "Skoku." jest niepoprawna, ponieważ instrukcje skoku to takie, które nagle zmieniają przepływ sterowania (np. break, continue, return, goto). W przedstawionym fragmencie nie ma takiej konstrukcji; jest mechanizm powtarzania oparty o warunek.

Wskazówka egzaminacyjna: jeśli w kodzie widzisz while, for lub do, najpierw rozważ odpowiedź "pętla/iteracja". Dopiero potem analizuj szczegóły warunku i modyfikacji licznika, bo one wpływają na liczbę powtórzeń, ale nie zmieniają typu instrukcji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja pętli to konstrukcja sterująca, która powtarza wykonanie instrukcji lub bloku kodu. Liczba powtórzeń zależy od warunku (np. w while) albo od licznika (np. w for). Pętle stosuje się do iteracji, np. wypisywania wielu wartości lub przetwarzania danych.
Najprościej po słowie kluczowym while i warunku w nawiasie. Schemat wygląda jak: while (warunek) instrukcja; albo while (warunek) { ... }. Jeśli po while występuje warunek i następuje wykonywany kod, to jest to pętla.
Pętla też ma warunek, ale w klasyfikacji instrukcji sterujących "instrukcja warunkowa" oznacza zwykle if/else: jednorazowe sprawdzenie i wybór gałęzi. while łączy warunek z mechanizmem powtarzania, więc jest instrukcją pętli (iteracyjną), a nie tylko warunkową.
k++ zwiększa wartość zmiennej k o 1. W wersji postfiksowej najpierw używana jest bieżąca wartość w wyrażeniu, a dopiero potem następuje zwiększenie. W pętlach taki zapis często pełni rolę licznika, który przesuwa iterację do przodu i pomaga zakończyć pętlę.
Nie. Klamry są wymagane tylko wtedy, gdy pętla ma wykonywać wiele instrukcji. Jeśli po while (warunek) stoi pojedyncza instrukcja zakończona średnikiem, klamry nie są konieczne. Na egzaminie zwracaj uwagę, czy po while jest jedna instrukcja, czy blok w klamrach.
Instrukcje skoku to m.in. break, continue, return (oraz rzadziej goto). One nagłe zmieniają przepływ sterowania, np. przerywają pętlę lub kończą funkcję. Pętla (while/for/do) to konstrukcja do powtarzania, a nie jednorazowego "skoku".
Najczęstszy błąd to utożsamianie pętli z "instrukcją warunkową", bo widać warunek w nawiasie. Drugi błąd to ignorowanie słowa kluczowego i patrzenie tylko na operatory typu ++. Na testach najpierw identyfikuj konstrukcję sterującą (while/if/switch), potem analizuj szczegóły.
while jest wygodne, gdy liczba iteracji nie jest znana z góry i zależy od warunku (np. czytanie danych do końca, powtarzanie aż użytkownik poda poprawną wartość). for częściej stosuje się, gdy masz licznik i znany zakres powtórzeń. Obie konstrukcje są pętlami.
Warunek w nawiasie określa, czy pętla ma wykonać kolejną iterację. Jeśli warunek jest prawdziwy, kod pętli się wykonuje; jeśli fałszywy, pętla się kończy i program przechodzi dalej. To kluczowy element sterowania iteracją i źródło typowych błędów (np. pętla nieskończona).
Przećwicz rozpoznawanie konstrukcji: if/else (wybór), switch (wybór wielokrotny), while/for/do (pętle) oraz break/continue/return (skoki). Rozwiązuj krótkie testy na fragmentach kodu i ucz się czytać składnię bez "uruchamiania" programu w głowie.
info

Około 82% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Według specjalistów z branży: "Fragment zawiera pętlę, ponieważ użyto instrukcji while, która wykonuje blok (tu: wypisanie wartości) wielokrotnie, dopóki spełniony jest warunek w nawiasie."

Źródła:

  • cppreference.com: "while" loop (C++) — https://en.cppreference.com/w/cpp/language/while (dostęp: 2026-03-02)
  • cplusplus.com: "while" — https://cplusplus.com/doc/tutorial/control/ (sekcja o pętlach while) (dostęp: 2026-03-02)
  • LearnCpp.com: lekcje o pętlach (while loops) — https://www.learncpp.com/ (dział Control Flow / While statements) (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja języka C++ dotycząca instrukcji sterujących (sekcja o while)
  • Kurs podstaw programowania w C++ (pętle i operatory inkrementacji)
  • Zadania treningowe: rozpoznawanie konstrukcji sterujących w krótkich fragmentach kodu

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego