KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2014

PYTANIE NR 25.
Wynikiem działania programu jest liczba
Ilustracja przedstawia fragment kodu w języku C++ dotyczący struktury danych i funkcji głównej programu.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wynik "-8" jest poprawny, ponieważ odpowiada wartości obliczonej przez program przedstawiony w zadaniu (najczęściej po przejściu krok po kroku przez wyrażenia i przypisania).
Odpowiedzi "8" i "-6" zwykle wynikają z pomylenia znaku liczby lub błędnego uwzględnienia kolejności wykonywania działań.

Pełne wyjaśnienie:

Odpowiedź "-8" oznacza, że po wykonaniu wszystkich instrukcji programu (tak jak pokazano w zadaniu) na wyjściu zostaje wypisana właśnie ta wartość. Tego typu pytania sprawdzają przede wszystkim umiejętność śledzenia wykonania programu: trzeba odtworzyć, jakie wartości przyjmują zmienne po kolejnych operacjach oraz jaka jest finalna wartość wypisywana.

Najczęstsza poprawna metoda rozwiązania to:

  • przepisać początkowe wartości zmiennych,
  • krok po kroku wykonać każdą instrukcję (zwłaszcza przypisania),
  • dla każdej operacji policzyć wartość wyrażenia, uwzględniając priorytety operatorów w danym języku,
  • na końcu odczytać wartość wypisywaną przez program.

Dlaczego pozostałe propozycje są typowo błędne w takich zadaniach:

  • "8" bywa efektem pominięcia znaku minus (np. błędne przeniesienie wartości, nieuwaga przy odejmowaniu) albo intuicyjnego wyboru wartości dodatniej bez wykonania pełnego śledzenia.
  • "-6" często wynika z błędnego obliczenia jednego kroku pośredniego (np. złe zastosowanie kolejności działań, nieprawidłowe zgrupowanie operatorów lub pomylenie kolejności wykonania instrukcji).

W praktyce egzaminacyjnej kluczowe jest, aby nie zgadywać: nawet krótki fragment kodu może zawierać pułapki związane z priorytetami operatorów, nawiasami, znakiem liczby czy typem całkowitym. Najlepszą strategią jest prowadzenie tabelki z wartościami zmiennych po każdym kroku i kontrola znaku wyniku po każdej operacji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To pytanie o wartość wypisaną przez program po wykonaniu wszystkich instrukcji. Zwykle trzeba prześledzić zmiany zmiennych krok po kroku i wyliczyć, jaka liczba trafi na wyjście (np. do konsoli lub jako wynik wyrażenia).
Stosuj metodę "trace": wypisz wartości zmiennych po każdej instrukcji. Najpierw policz wyrażenia po prawej stronie przypisania, potem podstaw wynik do zmiennej. Na końcu odczytaj, co jest wypisywane. To ogranicza błędy z nieuwagi.
Ujemny wynik jest typową konsekwencją odejmowania, użycia liczb ujemnych w danych początkowych albo operacji, które zmieniają znak (np. różnica dwóch liczb). Uczniowie często gubią minus w obliczeniach pośrednich, więc to częsty "haczyk".
Najczęściej to zgubienie znaku minus na jednym etapie (np. przy przepisywaniu wartości, odejmowaniu lub podstawianiu). Drugi częsty mechanizm to wybór "ładniejszej" dodatniej liczby bez wykonania pełnego śledzenia programu.
Priorytet operatorów decyduje, co liczy się najpierw (np. mnożenie przed dodawaniem). Jeśli w kodzie nie ma nawiasów, łatwo policzyć w złej kolejności i uzyskać inną liczbę. Dlatego przy każdym wyrażeniu warto zaznaczyć kolejność działań.
Tak. Dla typów całkowitych niektóre operacje (zwłaszcza dzielenie) mogą zachowywać się inaczej niż w matematyce szkolnej, bo część ułamkowa bywa odrzucana. Dlatego przed liczeniem sprawdza się, czy operujemy na liczbach całkowitych czy zmiennoprzecinkowych.
Zawsze, gdy program ma kilka kroków (przypisań) lub gdy wynik nie jest oczywisty "z głowy". Tabelka po każdej instrukcji zmniejsza ryzyko zgubienia minusa i ułatwia kontrolę, czy uwzględniasz wszystkie modyfikacje zmiennych.
Tak, i zwykle o to chodzi na egzaminie. Rozwiązanie polega na ręcznej analizie kodu. Umiejętność przewidywania wyniku bez komputera jest przydatna np. w code review, w analizie błędów i podczas czytania cudzych fragmentów kodu.
Błąd rachunkowy pojawia się w pojedynczym kroku (np. źle policzone działanie). Błąd kolejności wynika z tego, że ktoś wykonał instrukcje "w głowie" w innej kolejności niż w kodzie. Trace z numerowaniem linii pomaga szybko to wykryć.
Trenuj krótkie fragmenty kodu i wykonuj trace na kartce. Powtórz priorytety operatorów i typowe pułapki (znak liczby, przypisania, kolejność działań). Dobrą praktyką jest też samodzielne sprawdzanie wyniku w IDE po ręcznym wyliczeniu.
info

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

Materiały:

  • Dokumentacja języka używanego na zajęciach (sekcja o operatorach i ich priorytetach)
  • Materiały o debugowaniu i technice "trace" (śledzenie wartości zmiennych krok po kroku)
  • Zadania treningowe z obliczania wartości wyrażeń i przewidywania wyjścia programu

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego