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

Wskaż zdanie, które nie jest prawdziwe dla przedstawionej definicji funkcji w języku C++.

double pole(double r)
{
    return 3.14 * r * r;
}
A. Funkcja ma jeden argument.
Źle. To zdanie jest prawdziwe: w nawiasie jest tylko jeden parametr r.
B. Funkcja oblicza pole koła o promieniu r.
Źle. To zdanie jest prawdziwe: 3.14 * r * r to wzór na pole koła.
C. Funkcja przyjmuje argument przez referencję.
Dobrze. To zdanie jest fałszywe - przy parametrze nie ma znaku &, więc funkcja dostaje kopię.
D. Funkcja zwraca wartość typu double.
Źle. To zdanie jest prawdziwe: typ double przed nazwą określa typ wyniku.

Fałszywe jest zdanie o przekazywaniu przez referencję. Parametr zapisano jako double r, bez znaku &, więc funkcja dostaje kopię wartości przekazanej przy wywołaniu. Przez referencję parametr zostałby przekazany w zapisie double &r - wtedy funkcja pracowałaby na oryginalnej zmiennej i mogłaby ją zmienić. Pozostałe cechy wynikają wprost z kodu: typ double przed nazwą to typ wyniku, w nawiasie jest jeden parametr, a wyrażenie 3.14 * r * r to wzór na pole koła. Wywołanie pole(2) zwróci 12,56. Do zapamiętania: & przy typie parametru oznacza referencję, a jego brak - przekazanie przez wartość. Zamiast 3.14 dokładniej jest użyć stałej M_PI.

W pytaniu o zdanie nieprawdziwe każde twierdzenie trzeba zestawić z kodem. Typ double przed nazwą pole mówi, że wynik jest liczbą zmiennoprzecinkową - zdanie prawdziwe. Nawias zawiera tylko double r, czyli funkcja ma jeden argument - też prawda. Instrukcja return 3.14 * r * r; mnoży przybliżenie liczby pi przez kwadrat promienia, więc funkcja liczy pole koła - i to się zgadza. Nie zgadza się jedynie stwierdzenie o referencji. Referencję poznaje się po znaku & między typem a nazwą parametru, jak w funkcji zamieniającej wartości dwóch zmiennych. Tutaj go nie ma, więc r jest kopią i zmiana jej wewnątrz funkcji nie wpłynęłaby na zmienną użytą przy wywołaniu. Ta różnica ma znaczenie w praktyce, bo funkcja przyjmująca argument przez wartość nie zmieni zmiennej podanej przy wywołaniu.

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.