KWALIFIKACJA ELM5 - TEST WIEDZY NR 8

PYTANIE NR 1.
Rozważ następujący fragment kodu:
if (A || B) {
    C = 1;
} else {
    C = 0;
}
Jeśli A = 0 i B = 0, jaka będzie wartość C?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Operator || zwraca prawdę, gdy co najmniej jeden z warunków jest prawdziwy. Dla A = 0 i B = 0 wyrażenie (A || B) ma wartość 0 (fałsz), więc wykona się gałąź else, w której przypisywane jest C = 0.

Pełne wyjaśnienie:

W instrukcji if sprawdzany jest warunek (A || B). Zapis || oznacza alternatywę logiczną (OR): całe wyrażenie jest prawdziwe, jeśli przynajmniej jeden z operandów jest prawdziwy.

Podstawowe przypadki (tabela prawdy dla OR) można streścić tak:

  • 0 || 0 → 0 (fałsz)
  • 0 || 1 → 1 (prawda)
  • 1 || 0 → 1 (prawda)
  • 1 || 1 → 1 (prawda)

Dla danych wejściowych A = 0 i B = 0 mamy więc:

(A || B) = (0 || 0) = 0

Warunek w if jest fałszywy, więc program nie wykona instrukcji C = 1; z pierwszego bloku. Zamiast tego przejdzie do gałęzi else i wykona przypisanie C = 0;. Ostatecznie C ma wartość 0.

Dlaczego pozostałe odpowiedzi są błędne?

  • "1" byłoby poprawne tylko wtedy, gdyby którekolwiek z A lub B było równe 1 (np. A=1, B=0). Przy dwóch zerach OR nie "zaskakuje".
  • "Nie można określić" nie pasuje, bo warunek i wartości wejść są jednoznaczne; nie ma tu losowości ani danych z zewnątrz.
  • "Kod jest niepoprawny" jest nieuzasadnione: składnia if/else z operatorem || jest typowa w wielu językach (np. rodzina C). Nawet jeśli nie wskazano języka, interpretacja logiczna 0/1 w tym schemacie pozostaje czytelna.

Wskazówka egzaminacyjna: zawsze sprowadź warunek do wartości 0/1 (prawda/fałsz), a dopiero potem zdecyduj, czy wykona się blok if czy else. To minimalizuje błędy wynikające z pośpiechu.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator || to alternatywa logiczna (OR). Całe wyrażenie jest prawdziwe, gdy co najmniej jeden z warunków jest prawdziwy. Jest fałszywe tylko wtedy, gdy oba warunki mają wartość 0 (fałsz).
Najprościej użyć tabeli prawdy OR: tylko przypadek 0 || 0 daje wynik 0. Wszystkie pozostałe kombinacje (0||1, 1||0, 1||1) dają 1. To szybka metoda na egzaminie.
Bo warunek (A || B) jest wtedy równy 0 (fałsz). Instrukcja if wykonuje swój blok tylko dla warunku prawdziwego. Gdy warunek jest fałszywy, program przechodzi do bloku else.
W wielu językach z rodziny C (i w typowych zadaniach egzaminacyjnych) przyjmuje się, że 0 oznacza fałsz, a wartość niezerowa oznacza prawdę. W tym zadaniu podano wprost A=0 i B=0, więc interpretacja jest jednoznaczna.
Częsty błąd to mylenie || (logiczny OR) z | (bitowy OR). Bitowy OR działa na bitach liczb, a logiczny OR na wartościach prawda/fałsz. W warunku if zwykle oczekuje się wyniku logicznego.
Mechanizm jest zawsze taki sam: najpierw oblicza się warunek, potem wybiera jedną z dwóch ścieżek. W sterowaniu (np. mikrokontroler) często ustawia się flagę lub wyjście: jeśli warunek spełniony, ustaw 1, w przeciwnym razie ustaw 0.
Tak, logiczne (A || B) odpowiada bramce OR: wyjście jest 1, gdy A=1 lub B=1. Taki zapis bywa używany w programowaniu układów, gdy sygnały wejściowe są wcześniej sprowadzone do wartości logicznych.
Gdy wystarczy spełnienie jednego z kilku warunków, np. alarm ma się włączyć, jeśli zadziała czujnik A lub czujnik B, albo gdy funkcja ma się uruchomić po naciśnięciu dowolnego z dwóch przycisków.
Ustal wartości wejściowe (tu: 0 i 0), policz wynik operatora (OR), a potem wybierz blok if albo else. Pomaga zapis mini-tabeli: tylko 0||0 daje 0. Reszta kombinacji daje 1.
Nie, to tylko formatowanie prezentacji kodu (HTML). Na wynik wpływa wyłącznie logika instrukcji if, operator || oraz przypisania do zmiennej C. Znaczniki <div> i <pre> nie są częścią składni języka programu.
info

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

Według specjalistów z branży: "Operator || zwraca prawdę, gdy co najmniej jeden z warunków jest prawdziwy."

Źródła:

  • MDN Web Docs: Logical OR (||) - JavaScript, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR (dostęp: 2026-02-27)
  • cppreference.com: C logical operators (||, &&, !), https://en.cppreference.com/w/c/language/operator_logical (dostęp: 2026-02-27)
  • Microsoft Learn: C language - Logical operators (||, &&, !), https://learn.microsoft.com/en-us/cpp/c-language/c-logical-operators (dostęp: 2026-02-27)

Materiały:

  • Podstawy logiki boolowskiej (tabele prawdy dla OR/AND/NOT)
  • Wprowadzenie do instrukcji sterujących w języku C (if/else, operatory logiczne)
  • Ćwiczenia z analizą krótkich fragmentów kodu (warunki i przypisania)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego