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

Zdefiniowano zmienną float zm1; w C++. Jak poprawnie przypisać do niej wartość?

A.
zm1[2] = 3.5;
B.
zm1 = "3.5";
C.
zm1 == 3.5;
D.
zm1 = 3.5;
Instrukcja zm1 = 3.5; jest poprawnym przypisaniem wartości do zmiennej typu float. W C++ operator = oznacza przypisanie, czyli zapisanie nowej wartości w istniejącej zmiennej. Skoro wcześniej zadeklarowano float zm1;, to kompilator wie, że zm1 ma przechowywać liczbę zmiennoprzecinkową, np. temperaturę, cenę, wynik pomiaru albo średnią ocen. W praktyce można więc napisać na przykład: float temperatura; temperatura = 21.5; i później używać tej wartości w obliczeniach. Warto tylko pamiętać o drobnym szczególe: literał 3.5 w C++ domyślnie ma typ double, a przy przypisaniu do float zostanie przekonwertowany. To jest dozwolone, ale w bardziej starannym kodzie często zapisuje się 3.5f, żeby od razu wskazać typ float. Moim zdaniem to dobry nawyk, szczególnie gdy pracuje się z grafiką, mikrokontrolerami albo obliczeniami, gdzie typy danych mają znaczenie dla pamięci i wydajności. Średnik na końcu też jest ważny, bo kończy instrukcję.
W tym pytaniu chodzi o zwykłe przypisanie wartości do pojedynczej zmiennej typu float, więc trzeba odróżnić kilka podobnie wyglądających zapisów. Zapis z nawiasami kwadratowymi, taki jak zm1[2] = 3.5;, sugeruje dostęp do elementu tablicy. To miałoby sens, gdyby zm1 było tablicą, na przykład float zm1[5];. Jednak przy deklaracji float zm1; powstaje tylko jedna zmienna skalarna, a nie kolekcja elementów. Próba indeksowania takiej zmiennej jest błędem składniowym lub semantycznym, zależnie od kontekstu, bo float nie obsługuje operatora indeksowania w taki sposób. Zapis zm1 = '3.5' w sensie tekstowym, czyli wartość w cudzysłowie, też nie pasuje do typu float. Liczba zmiennoprzecinkowa powinna być zapisana jako wartość liczbowa, a nie jako napis. Tekst można co prawda później konwertować na liczbę, np. przy wczytywaniu danych od użytkownika, ale samo przypisanie napisu do float nie jest poprawną drogą. Bardzo częsty błąd początkujących to mylenie operatora = z operatorem ==. Pojedynczy znak = zapisuje wartość do zmiennej, natomiast == sprawdza, czy dwie wartości są równe. Instrukcja zm1 == 3.5; nie ustawi zmiennej, tylko wykona porównanie, którego wynik i tak zostanie od razu wyrzucony, jeżeli go nigdzie nie zapiszemy. Z mojego doświadczenia wynika, że to jedna z tych pomyłek, które potem długo psują programy, bo kod wygląda prawie dobrze, ale robi zupełnie co innego.

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.