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

Słowa kluczowe: Inkrementacja i dekrementacja w JavaScript JavaScript Operator przypisania dodawania += w JavaScript Operatory porównania w JavaScript Pętla for w JavaScript document.write() w JavaScript

Wskaż pętlę, która w języku JavaScript wyświetli sześć kolejnych liczb parzystych.

A.
for(i=2;i<12;i+=2) {document.write(i);}
B.
for(i=2;i<=12;i+=2) {document.write(i);}
C.
for(i=2;i<=12;i++) {i=i+2; document.write(i);}
D.
for(i=2;i<12;i++) {i++; document.write(i);}

Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.14-X-19.06).

Ta pętla działa poprawnie, ponieważ spełnia trzy warunki potrzebne do wypisania dokładnie sześciu kolejnych liczb parzystych: startuje od 2, wykonuje się dopóki i <= 12, a po każdym obiegu zwiększa zmienną i o 2. W efekcie document.write(i) wypisze kolejno: 2, 4, 6, 8, 10, 12. To jest sześć wartości i każda z nich jest parzysta, bo różnica między kolejnymi liczbami wynosi 2. W pętli for zapis ma postać: inicjalizacja; warunek; modyfikacja licznika. Tutaj i=2 ustawia początek, i<=12 pilnuje końca zakresu, a i+=2 jest skrótem od i = i + 2. Moim zdaniem to najbardziej czytelny wariant, bo od razu widać zamiar programisty. W praktyce w nowoczesnym JavaScript lepiej byłoby jeszcze zadeklarować zmienną, np. for (let i = 2; i <= 12; i += 2), żeby nie tworzyć przypadkiem zmiennej globalnej. Zamiast document.write w realnych projektach częściej używa się console.log albo modyfikacji DOM, np. dopisywania tekstu do elementu strony. Sama logika pętli jest jednak jak najbardziej poprawna.
W tym zadaniu kluczowe jest policzenie, ile razy pętla faktycznie się wykona oraz jakie wartości zmiennej i zostaną wypisane. Częsty błąd polega na patrzeniu tylko na początek i krok pętli, bez sprawdzenia warunku końcowego. Jeśli pętla zaczyna od 2 i zwiększa licznik o 2, ale ma warunek i < 12, to wartość 12 nie zostanie już wypisana. Dostaniemy 2, 4, 6, 8, 10, czyli tylko pięć liczb parzystych. Niby prawie dobrze, ale pytanie wymaga sześciu kolejnych liczb. Trzeba więc użyć i <= 12, aby ostatnia liczba też weszła do wyniku. Inny problem pojawia się wtedy, gdy licznik jest zwiększany zarówno w nagłówku pętli, jak i wewnątrz jej ciała. W konstrukcji z i++ w nagłówku oraz dodatkowym i++ przed document.write zmienna zmienia się dwa razy w jednym obiegu, więc łatwo zgubić kontrolę nad wartościami. Taki zapis wypisuje liczby niezgodne z celem, np. zaczyna od 3 i przechodzi przez wartości nieparzyste. Jeszcze mniej czytelne jest mieszanie i++ z instrukcją i = i + 2 wewnątrz bloku. Wtedy krok pętli nie wynosi po prostu 2, tylko zmienia się w praktyce o 3 między kolejnymi sprawdzeniami, a wypisywane wartości mogą być 4, 7, 10, 13. To nie są kolejne liczby parzyste. Z mojego doświadczenia najlepiej trzymać całą zmianę licznika w trzeciej części pętli for, a w ciele pętli robić tylko właściwą operację, czyli tutaj wypisanie wartości. Kod jest wtedy prosty, przewidywalny i łatwiejszy do sprawdzenia na egzaminie oraz w normalnym projekcie.

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.