Kwalifikacja: EE8 - Kwalifikacja EE8
Zawód: Technik informatyk
Zbadaj podany fragment kodu i ustal, jaką wartość uzyska zmienna x po jego wykonaniu.
#include <iostream.h> void suma (int a, int b) {a=a+b;} void main() { int a=7,b=3,x; suma(a,b); x=a+b; }
#include <iostream.h> void suma (int a, int b) {a=a+b;} void main() { int a=7,b=3,x; suma(a,b); x=a+b; }
Odpowiedzi
Informacja zwrotna
Wybór odpowiedzi 10 jest poprawny ze względu na sposób, w jaki funkcja suma przetwarza argumenty. Wartości a i b są przekazywane do funkcji suma jako argumenty, gdzie w funkcji zmienna a jest modyfikowana poprzez dodanie do niej wartości b. Jednakże, ze względu na przekazywanie przez wartość, oryginalna zmienna a w funkcji main nie ulega zmianie. Po wywołaniu funkcji suma, zmienna x zostanie obliczona jako suma pierwotnych wartości a i b, czyli 7 + 3, co daje 10. Taki mechanizm przekazywania argumentów jest typowy w wielu językach programowania i ilustruje podstawową zasadę, że zmienne przekazywane do funkcji nie są zmieniane, chyba że są przekazywane przez wskaźniki lub referencje. Przykład ten podkreśla również znaczenie zrozumienia zakresu zmiennych oraz konsekwencji ich przekazywania, co jest kluczowe w pisaniu efektywnego kodu.
Wybór odpowiedzi 7, 13 lub 6 opiera się na błędnym zrozumieniu działania przekazywania argumentów w funkcjach oraz zakresu zmiennych w programowaniu. Odpowiedź 7 może wynikać z założenia, że zmienna a pozostaje niezmieniona po wywołaniu funkcji suma, co jest prawdą, ale nie uwzględnia to wpływu zmiennej b. Odpowiedź 13 sugeruje, że ktoś mógłby błędnie pomyśleć, iż zmienna a jest modyfikowana wewnątrz funkcji, co w rzeczywistości nie ma miejsca, ponieważ a w funkcji suma jest lokalną kopią zmiennej a z main. Odpowiedź 6 może wynikać z niepoprawnego dodawania wartości zmiennych lub błędnego zrozumienia tego, co oznacza wywołanie funkcji. Typowe błędy myślowe to mylenie zakresu zmiennych z ich widocznością oraz nieprawidłowe założenie, że zmienne przekazywane do funkcji mogą być modyfikowane bezpośrednio w kontekście ich lokalnych kopii. Aby uniknąć takich nieporozumień, warto praktykować programowanie z wskaźnikami i referencjami, co pozwala na manipulowanie oryginalnymi zmiennymi. Zrozumienie tych zasad jest kluczowe dla efektywnego programowania i unikania błędów w logice aplikacji.