Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

Program zapisany w języku JavaScript oblicza cenę promocyjną dla swetrów w kolorach: zielonym, niebieskim (zmienna kolor) przy zakupach powyżej 200 zł (zmienna zakupy). Warunek do obliczeń powinien być zapisany przy pomocy wyrażenia logicznego

A. zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski')
B. zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski')
C. zakupy > 200 && kolor == 'zielony' && kolor == 'niebieski'
D. zakupy > 200 || kolor == 'zielony' || kolor == 'niebieski'

Pytanie z egzaminu CKE, czerwiec 2023 (arkusz EE.09-SG-23.06).

Warunek zakupy > 200 && (kolor == 'zielony' || kolor == 'niebieski') dobrze opisuje sytuację z promocją. Najpierw wymagamy, aby wartość zakupów była większa niż 200 zł, dlatego używamy operatora &&, czyli logicznego I. To oznacza: promocja ma działać tylko wtedy, gdy warunek kwotowy jest spełniony oraz dodatkowo kolor swetra jest jednym z dozwolonych. Część w nawiasie kolor == 'zielony' || kolor == 'niebieski' oznacza, że wystarczy jeden z tych kolorów, bo sweter nie może być jednocześnie zielony i niebieski jako jedna wartość zmiennej kolor. Nawiasy są tu bardzo dobrą praktyką, bo poprawiają czytelność i jasno pokazują intencję programisty, nawet jeśli JavaScript ma określone pierwszeństwo operatorów. W praktyce taki zapis przyda się np. w koszyku sklepu internetowego, gdy rabat naliczamy tylko dla wybranych produktów i dopiero po przekroczeniu minimalnej wartości zamówienia. Z mojego doświadczenia, takie warunki warto pisać możliwie jednoznacznie, bo później łatwiej je testować i poprawiać, zwłaszcza gdy dojdą kolejne kolory albo inne reguły promocji.
W tym zadaniu kluczowe jest rozdzielenie dwóch typów wymagań: wartość zakupów musi przekroczyć 200 zł, a kolor musi należeć do zbioru dopuszczalnych kolorów, czyli zielony albo niebieski. Częsty błąd polega na użyciu operatora || między wszystkimi warunkami. Taki zapis powoduje, że promocja zostałaby naliczona także wtedy, gdy zakupy są większe niż 200 zł, ale kolor jest zupełnie inny, albo odwrotnie: gdy kolor jest zielony, lecz klient kupił tylko za małą kwotę. To już nie odpowiada opisowi biznesowemu, bo warunek kwotowy przestaje być obowiązkowy. Innym mylnym podejściem jest połączenie kolorów operatorem &&. Zmienna kolor przechowuje jedną wartość tekstową, więc nie może jednocześnie spełniać porównania kolor == 'zielony' i kolor == 'niebieski'. Taki warunek w normalnym przypadku zawsze da false, przez co promocja nigdy się nie uruchomi. Warto też uważać na mieszanie operatorów bez dobrego zrozumienia logiki. Zapis z zakupy > 200 || (kolor == 'zielony' && kolor == 'niebieski') w praktyce sprowadza promocję prawie wyłącznie do samej kwoty zakupów, bo część z dwoma kolorami połączonymi przez && i tak nie zadziała. Moim zdaniem najlepiej myśleć o takich warunkach jak o zdaniu po polsku: zakupy powyżej 200 i kolor jest zielony lub niebieski. Potem trzeba tylko dodać nawiasy, żeby JavaScript odczytał to dokładnie tak, jak chcemy. To jest dobra praktyka w kodzie produkcyjnym, bo zmniejsza ryzyko błędów w promocjach, formularzach, walidacji danych i całej logice sklepu.

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.