W prezentowanym kodzie popełniono błąd logiczny, który polega na tym, że
W prezentowanym kodzie popełniono błąd logiczny, który polega na tym, że
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: C
Uzasadnienie i szersze wyjaśnienie:
W wielu językach z rodziny C (C++, C#, Java) bardzo częstym błędem jest pomylenie operatora porównania (==) z operatorem przypisania (=).
W kodzie
if (b = 0)użyto operatora przypisania (=). Oznacza to, że do zmiennejbzostanie przypisana wartość 0, a całe wyrażenie(b = 0)zwróci tę przypisaną wartość, czyli 0. W kontekście logicznym, wartość 0 jest interpretowana jakofalse, więc warunekifnigdy się nie spełni, a program zawsze przejdzie do gałęzielse, co przybrównym 0 spowoduje błąd dzielenia przez zero.Aby poprawnie sprawdzić, czy zmienna
bjest równa 0, należało użyć operatora porównania (==), czyli zapisać warunek jakoif (b == 0).
Błąd polega więc na tym, że w warunku jest przypisanie zamiast porównania.
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: Sprawdzana powinna być wartość dzielnika (
b), a nie dzielnej (a). - B: Problem dotyczy jednorazowego sprawdzenia warunku, więc pętla
whilejest tu nieodpowiednia. - D: Chociaż środowisko uruchomieniowe zgłosi błąd (wyjątek) przy próbie dzielenia przez zero, dobra praktyka programistyczna wymaga, aby programista sam zabezpieczył się przed taką sytuacją za pomocą warunku, aby uniknąć awaryjnego zakończenia programu.
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Zmienne i Stałe w programowaniuNazwane obszary pamięci operacyjnej przechowujące dane robocze programu; zmienne pozwalają na modyfikację wartości podczas działania, podczas gdy stałe mają wartość niezmienną.
- Obsługa wyjątków (Exception Handling)Mechanizm kontrolowanego wychwytywania i reagowania na błędy wykonania programu przy użyciu bloków try, catch, finally oraz instrukcji throw.
- Język programowania JavaW pełni obiektowy język programowania kompilowany do kodu bajtowego (bytecode), wykonywanego przez Wirtualną Maszynę Javy (JVM) zgodnie z regułą WORA ('Napisz raz, uruchamiaj wszędzie').
Podobne pytania z działu „Prawo autorskie licencje i rodo”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 31 pytań z tego działu.
- #58
Które z poniższych jest przykładem zagrożenia bezpieczeństwa w środowisku pracy programisty?
- #61
Co może być skutkiem pracy w środowisku o bardzo wysokiej temperaturze?
- #64
Praca w środowisku o niskiej temperaturze może prowadzić do:
- #66
Jak można zdefiniować chorobę zawodową?
- #68
Jakie są skutki pracy w środowisku o wysokim poziomie zapylenia?