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

Jaki będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, po wprowadzeniu wartości 4?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 64
B. 12
C. 256
D. 24
Poprawna odpowiedź to 24. Po wprowadzeniu 4 zmienna n ma wartość pobraną z okna prompt. Pętla for startuje od i = n i wykonuje się tak długo, jak i >= 2. Zmienna a ma początkowo wartość 1, a instrukcja a *= i oznacza skrócony zapis a = a * i. Kolejne mnożenia to: 1 × 4 = 4, 4 × 3 = 12, 12 × 2 = 24. Gdy i zostaje zmniejszone do 1, warunek i >= 2 jest fałszywy i pętla kończy działanie. Program wypisuje więc Wynik 24. Taki schemat pętli służy między innymi do obliczania silni, czyli iloczynu liczb od n do 1.
W tym programie nie jest obliczana potęga liczby 4, lecz iloczyn kolejnych wartości zmiennej i. Poprawna odpowiedź to 24, ponieważ pętla wykonuje mnożenia przez 4, potem przez 3, a na końcu przez 2. Wynik 64 oznaczałby 4³, czyli sytuację, w której trzy razy mnożona byłaby ta sama wartość 4, a nie malejące i. Wynik 12 powstałby po wykonaniu tylko mnożeń 4 × 3, na przykład przy warunku i > 2 zamiast i >= 2. Wynik 256 odpowiadałby 4⁴, czyli czterokrotnemu mnożeniu przez 4, czego ten kod nie robi. Typowy błąd polega na potraktowaniu pętli jako potęgowania albo na pominięciu ostatniego przebiegu dla i = 2. Operator *= mnoży aktualną wartość zmiennej a przez bieżącą wartość i, a instrukcja i-- po każdym przebiegu zmniejsza i o 1.

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.