Strona główna › Pytania INF.03 › Pytanie 1911
INF.03 · pytanie #1911
Programista stworzył pętlę w języku C++ mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny polegający na tym, że <pre class="code-block">int a = 1; for (int i = 1; i < 5; i++) { a = a * i; } cout << a;</pre>
- Azmienna a powinna być ustawiona na 0 zamiast 1
- Bparametr i pętli powinien być zmniejszany zamiast zwiększany
- Cparametr i pętli powinien być inicjowany wartością 0, a nie 1
- Dw drugim warunku pętli powinno być porównanie i < 6 zamiast i < 5
Poprawna odpowiedź: D. w drugim warunku pętli powinno być porównanie i < 6 zamiast i < 5
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Pętla for w języku C++ jest często używana do wykonywania określonej liczby iteracji. W przypadku obliczania silni liczby 5, czyli 5!, iteracja powinna przebiegać od 1 do 5 włącznie, co oznacza, że zmienna sterująca i powinna przyjąć wartości 1, 2, 3, 4 i 5. Dlatego warunek zakończenia pętli powinien być zapisany jako i <= 5 lub alternatywnie i < 6. W zestawie egzaminacyjnym podano kod z warunkiem i < 5, co powoduje, że pętla kończy się przy czwartej iteracji, a ostatnia potrzebna mnożenie przez 5 nie jest wykonane. Poprawnym rozwiązaniem problemu jest zmiana warunku na i < 6. Przykład praktyczny: przy obliczaniu silni w programach obliczeniowych często stosujemy pętlę o poprawnym zakresie, co jest kluczowe dla uzyskania prawidłowych wyników. Ponadto, w kontekście dobrych praktyk programistycznych, warto zawsze dokładnie analizować warunki pętli, aby uniknąć nieoczekiwanych błędów logicznych, które mogą prowadzić do niepoprawnych wyników końcowych.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.