Strona główna › Pytania INF.03 › Pytanie 817
INF.03 · pytanie #817
Programista stworzył w języku C++ pętlę mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż <pre class="code-block">int a = 1; for (int i=1; i < 5; i++) { a = a * i; } cout << a;</pre>
- AParametr i pętli powinien być zmniejszany zamiast zwiększany.
- BW drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
- CZmienna a powinna być inicjowana wartością 0 zamiast 1.
- DParametr i pętli powinien być rozpoczęty od wartości 0 zamiast 1.
Poprawna odpowiedź: B. W drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
W poprawnej odpowiedzi wskazano, że w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5. W kontekście obliczania silni 5! (czyli 5*4*3*2*1), pętla for powinna iterować od 1 do 5, co oznacza, że końcowy warunek pętli powinien uwzględniać 5. W przeciwnym razie, ostatnia iteracja, w której i wynosi 5, nie będzie wykonana, co skutkuje błędnym wynikiem. Prawidłowa pętla powinna wyglądać tak: for (int i=1; i <= 5; i++) lub for (int i=1; i < 6; i++). Takie podejście jest zgodne z zasadami programowania, które zalecają, aby końcowy warunek pętli obejmował ostatnią wartość, która ma być przetwarzana. Dobrą praktyką w programowaniu jest również przemyślenie granic pętli, aby zapewnić, że wszystkie wymagane wartości są uwzględniane w obliczeniach, co jest kluczowe w takich obliczeniach matematycznych jak silnia.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.