Paradygmaty programowania/Test 4: Podprogramy: Różnice pomiędzy wersjami
m →Test 4 |
|||
Linia 10: | Linia 10: | ||
<quiz type="exclusive"> | <quiz type="exclusive"> | ||
Przekazanie funkcji jako parametru można w C | Przekazanie funkcji jako parametru można w C# osiągnąć za pomocą mechanizmu: | ||
<wrongoption reply="Źle">bezpośrednio, bez dodatkowych mechanizmów</wrongoption> | <wrongoption reply="Źle">bezpośrednio, bez dodatkowych mechanizmów</wrongoption> | ||
<rightoption reply="Dobrze">delegatów</rightoption> | <rightoption reply="Dobrze">delegatów</rightoption> | ||
Linia 54: | Linia 54: | ||
Załóżmy, że x jest parametrem w trybie out w procedurze w Adzie. | Załóżmy, że x jest parametrem w trybie out w procedurze w Adzie. | ||
Która instrukcja ma szansę być poprawna? | Która instrukcja ma szansę być poprawna? | ||
<wrongoption reply="Źle">x | <wrongoption reply="Źle">x := x + 1</wrongoption> | ||
<rightoption reply="Dobrze">x | <rightoption reply="Dobrze">x := y + 1</rightoption> | ||
<wrongoption reply="Źle">y | <wrongoption reply="Źle">y := x + 1</wrongoption> | ||
<wrongoption reply="Źle">y | <wrongoption reply="Źle">y := T(x)</wrongoption> | ||
</quiz> | </quiz> | ||
<quiz type="exclusive"> | <quiz type="exclusive"> | ||
Jawne przekazywanie przez referencję jest w C | Jawne przekazywanie przez referencję jest w C# możliwe, jeśli | ||
umieścimy słowo kluczowe ref: | umieścimy słowo kluczowe ref: | ||
<wrongoption reply="Źle">przy parametrze aktualnym</wrongoption> | <wrongoption reply="Źle">przy parametrze aktualnym</wrongoption> |
Aktualna wersja na dzień 20:01, 22 wrz 2006
Test 4
Który język nie pozwala na użycie parametrów z wartością domyślną?
Ada
C
C++
PHP
Przekazanie funkcji jako parametru można w C# osiągnąć za pomocą mechanizmu:
bezpośrednio, bez dodatkowych mechanizmów
delegatów
tablic wielowymiarowych
wskaźników do funkcji
Który język nie sprawdza zgodności typów parametrów?
Ada
C#
Java
PHP
Przy której deklaracji procedury f wywołanie f(2*x + 3) jest poprawne?
procedure f(n: in out Integer) w Adzie
procedure f(n: out Integer) w Adzie
void f(int n) w języku C
void f(int *n) w języku C
Chcąc w języku C przekazać do funkcji tablicę przez wartość, trzeba:
"obudować" ją strukturą i przekazać tę strukturę
użyć nawiasów kwadratowych po nazwie tablicy w wywołaniu funkcji
użyć nawiasów kwadratowych po nazwie parametru w nagłówku funkcji
nie trzeba robić niczego szczególnego
Jaką dodatkową cechę mają parametry stałe deklarowane w C++ z użyciem const w stosunku do parametrów w trybie wejściowym w ogóle?
nie mogą być zmieniane nawet w obrębie podprogramu
są zawsze alokowane statycznie
wymuszają statyczne sprawdzenie zgodności typu
nie mają żadnej dodatkowej cechy
Załóżmy, że x jest parametrem w trybie out w procedurze w Adzie.
Która instrukcja ma szansę być poprawna?
x := x + 1
x := y + 1
y := x + 1
y := T(x)
Jawne przekazywanie przez referencję jest w C# możliwe, jeśli umieścimy słowo kluczowe ref:
przy parametrze aktualnym
przy parametrze formalnym
i przy parametrze formalnym, i przy aktualnym
to w ogóle nie jest możliwe
W językach z zakresem widoczności zmiennych wiązanym statycznie jako środowiska wykonywania przekazanego przez parametr podprogramu najczęściej używa się:
środowiska instrukcji (w podprogramie), wywołującej przekazany podprogram
środowiska definicji przekazanego podprogramu
środowiska instrukcji, która przekazała podprogram jako parametr
żadnego z wymienioinych środowisk
W implementacji podprogramów bez zagnieżdżeń, ale z rekurencją i z dynamicznymi zmiennymi lokalnymi na stosie potrzebne jest przechowywanie w rekordzie aktywacyjnym:
tylko łącza dynamicznego
tylko łącza statycznego
łącza dynamicznego i statycznego
żadnego z nich