Warunek z treści ma być spełniony w sytuacji, gdy zajdzie co najmniej jedna z dwóch możliwości:
- zmienna a jest dodatnia (w treści opisano to jako "liczba naturalna dodatnia bez 0", co w zapisie nierówności odpowiada warunkowi a > 0),
- zmienna b należy do przedziału domkniętego od 10 do 100, czyli b jest nie mniejsze niż 10 i jednocześnie nie większe niż 100.
W logice programowania alternatywę realizuje operator || (logiczne "lub"): wystarczy, że jeden z członów będzie prawdziwy. Dlatego całe wyrażenie ma postać: (warunek dla a) || (warunek dla b).
Dla przedziału domkniętego [10,100] kluczowe jest to, że muszą być spełnione oba ograniczenia jednocześnie: b >= 10 oraz b <= 100. To jest koniunkcja, więc używa się operatora &&. Zastosowanie || pomiędzy tymi nierównościami byłoby błędem, bo wtedy prawdziwe byłyby prawie wszystkie wartości (np. dla dowolnej liczby b zachodzi albo b >= 10, albo b <= 100).
Dlaczego pozostałe propozycje są błędne?
- Połączenie (a > 0) z warunkiem na b przez && wymagałoby spełnienia obu części naraz, a w treści jest wyraźnie "lub", więc to zmienia sens zadania.
- Użycie || między nierównościami dla przedziału to typowa pomyłka: taki zapis nie opisuje przedziału, tylko praktycznie "całą prostą liczbową".
- Wariant z samym && dla obu części (dla a i dla b) także jest zbyt restrykcyjny, bo wymaga jednoczesnego spełnienia warunków dla a i b, a nie spełnienia przynajmniej jednego z nich.
Wskazówka egzaminacyjna: gdy widzisz "przedział domknięty [x,y]", automatycznie tłumacz to na dwa porównania połączone &&: v >= x && v <= y. Gdy widzisz w treści "lub", łączysz główne części przez ||.