Pytanie 1
Jaka będzie wartość zwrócona przez funkcję zao napisaną w C++, jeśli zostanie wywołana z argumentem 3.55?
| int zao(float x){ return (x+0.5); } |
Brak odpowiedzi na to pytanie.
Funkcja zao przyjmuje parametr typu float i zwraca wartość typu int. W C++ operator return konwertuje wartość float do int, co oznacza obcięcie części ułamkowej liczby. Kluczowy aspekt tego problemu to dodanie 0.5 do wartości wejściowej, co jest klasycznym sposobem na zaokrąglenie liczby zmiennoprzecinkowej do najbliższej liczby całkowitej. Gdy funkcja zao zostaje wywołana z argumentem 3.55, wynik operacji (x+0.5) staje się 4.05. Po konwersji do int wartość 4.05 zostaje obcięta do 4, dlatego funkcja zwraca 4. Takie zaokrąglanie jest często stosowane w praktyce, zwłaszcza w obliczeniach, gdzie precyzja jest kluczowa. C++ oferuje również bardziej precyzyjne sposoby zaokrąglania, jak na przykład funkcje round(), floor() czy ceil() z biblioteki cmath. Dobra praktyka programistyczna sugeruje korzystanie z tych funkcji dla zwiększenia czytelności kodu i uniknięcia nieporozumień związanych z konwersją typów wśród mniej doświadczonych programistów.

