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

W instrukcji warunkowej języka JavaScript należy sprawdzić przypadek, gdy wartość zmiennej a jest z przedziału (0, 100), natomiast wartość zmiennej b jest większa od zera. Warunek taki jest prawidłowo zapisany w następujący sposób

A.
if (a>0 && a<100 && b>0)
Dobrze. Trzy warunki połączone &&: a większe od 0, a mniejsze od 100 i b większe od 0, wszystkie spełnione jednocześnie.
B.
if (a>0 || a<100 || b<0)
Źle. Same operatory || i odwrócony znak przy zmiennej b. Taki warunek przepuści prawie każde dane.
C.
if ((a>0 && a<100) || b<0)
Źle. Część z b < 0 ma odwrotny znak, a || sprawia, że wystarczy spełnić tylko jedną połowę warunku.
D.
if ((a>0 || a<100) && b>0)
Źle. a > 0 || a < 100 jest prawdziwe dla każdej liczby, więc nie ogranicza zmiennej do przedziału (0, 100).

Pytanie z egzaminu CKE, czerwiec 2016 (arkusz E.14-X-16.05).

Przedział otwarty (0, 100) oznacza, że zmienna musi być jednocześnie większa od 0 i mniejsza od 100. Oba warunki łączy się operatorem && (i): a > 0 && a < 100. Do tego dochodzi warunek dla drugiej zmiennej, b > 0, który również musi być spełniony, więc i on dołącza przez &&.

Reguła do zapamiętania: „i jednocześnie” to &&, „albo” to ||. Przedział zawsze zapisuje się dwoma porównaniami połączonymi &&, bo zapis matematyczny 0 < a < 100 w JavaScript nie działa: najpierw powstaje true albo false, a to porównane ze 100 daje zawsze true. Przedział domknięty [0, 100] zapisałbyś z >= i <=.

Sednem tego zadania jest operator ||. Warunek a > 0 || a < 100 jest prawdziwy dla każdej liczby, bo dowolna liczba jest większa od zera albo mniejsza od 100. Wartość -500 spełnia drugą część, 500 pierwszą. Taki zapis nie ogranicza zmiennej do przedziału.

Drugi błąd to porównanie b < 0 zamiast b > 0. Treść wymaga, by b było większe od zera, więc znak nierówności musi być skierowany w drugą stronę. Do tego połączenie tej części z resztą przez || sprawia, że wystarczy spełnić jedną połowę warunku, a zadanie wymaga obu naraz.

Sprawdzaj zapis na konkretnych liczbach: dla a = 150 i b = 5 dobry warunek musi dać false. Zapisy z || dadzą wtedy true i to od razu je wyklucza.

Nawiasy wokół części warunku nie zmieniają tu wyniku, decydują operatory. Nawias nie naprawi zapisu z ||.

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.