Przejdź do głównej treści

Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji

Zawód: Technik programista

Kategorie: Programowanie Projektowanie aplikacji

Jakie wyrażenie logiczne powinno być użyte, aby zweryfikować, czy zmienna x zawiera wartości ujemne lub znajduje się w zakresie (10, 100)?

A. (x > 10 || x < 100) && x < 0
B. x > 10 || x < 100 || x < 0
C. x > 10 || x < 100 || x < 0
D. (x > 10 && x < 100) || x < 0
To wyrażenie logiczne: (x > 10 && x < 100) || x < 0 jest najtrafniejsze, bo dokładnie oddaje założone warunki: zmienna x powinna być ujemna lub znajdować się w zakresie od 10 do 100 (bez tych wartości granicznych, czyli przedział otwarty). Z mojego doświadczenia wynika, że takie podejście jest stosowane wszędzie tam, gdzie istotne są szczegółowe warunki – np. w walidacji danych wejściowych czy podczas filtrowania w bazach danych. Operator || gwarantuje, że jeśli chociaż jeden z warunków jest prawdziwy (czyli x jest mniejsze od 0 lub należy do przedziału 10-100), całe wyrażenie zwróci true. Warto też pamiętać, że zastosowanie operatora && wewnątrz nawiasu zapewnia, że oba warunki (x > 10 oraz x < 100) muszą być spełnione jednocześnie, czyli x leży pomiędzy tymi liczbami. Odpowiedniki takiego zapisu znajdziesz praktycznie w każdym języku programowania – od Javy po Pythona. Branżowe standardy jasno wskazują na czytelność i jednoznaczność warunków logicznych, szczególnie jeśli kod ma być utrzymywany przez inne osoby lub przez nas samych za kilka miesięcy. Uważam, że precyzyjne formułowanie wyrażeń tego typu to podstawa dobrego programisty – naprawdę warto się tego trzymać, bo później mniej błędów wychodzi na produkcji, a kod jest dużo łatwiej przetestować. Często spotykam się z przypadkami, gdzie ktoś pomija nawiasy lub źle łączy operatory i potem są problemy z błędami logicznymi, dlatego warto wyrobić sobie taki nawyk dokładnego zapisywania warunków.
Analizując konstrukcje logiczne użyte w niepoprawnych wariantach, widać, że główny problem tkwi w zbyt szerokim lub zbyt wąskim ujęciu warunków. Przykładowo, zapis typu x > 10 || x < 100 || x < 0 wydaje się na pierwszy rzut oka bliski poprawnej odpowiedzi, ale w rzeczywistości powoduje, że praktycznie każdy przypadek (poza x = 10) będzie spełniał ten warunek, bo zawsze jedna z części będzie prawdziwa. Podobnie w innych wariantach, gdzie operator || jest używany do połączenia zbyt szerokich zakresów, prowadzi to do tego, że nawet liczby większe od 100 są uznawane za prawidłowe, co kompletnie mija się z celem zadania. Z drugiej strony, kombinacja (x > 10 || x < 100) && x < 0 jest zbyt restrykcyjna i wynikiem jej działania będzie prawda tylko wtedy, gdy x jest mniejsze od zera – drugi zakres jest tu praktycznie ignorowany, bo && wymusza spełnienie obu stron, a przecież nie chcemy ograniczać się wyłącznie do liczb ujemnych. To bardzo częsty błąd wśród początkujących – nieprawidłowe łączenie operatorów logicznych przez nieuwagę lub brak doświadczenia z kolejnością ich działania. Moim zdaniem, warto wyrobić sobie nawyk rozbijania takich warunków na kartce lub w notatniku, żeby zobaczyć, jakie wartości zostaną faktycznie objęte zakresem. W praktyce spotkałem się już z sytuacjami, gdzie przez nieprecyzyjne warunki logiczne cały system źle klasyfikował dane, co potem generowało trudne do wykrycia błędy. Sugeruję zawsze sprawdzać swoje wyrażenia na kilku testowych wartościach, zanim trafią do produkcji. To naprawdę oszczędza czas i nerwy.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.