Imię i nazwisko: 1 2 3 4 suma Kolokwium PROE 28 maja 2015 Zadanie 1 (10 punktów) Mamy do dyspozycji listę dwukierunkową w której każdy węzeł ma wskaźn...
18 downloads
20 Views
618KB Size
I
Imię i nazwisko: 1
2
3
4
suma
Kolokwium PROE 28 maja 2015 Zadanie 1 (10 punktów) Mamy do dyspozycji listę dwukierunkową w której każdy węzeł ma wskaźnik na kolejny i poprzedni węzeł (next i prev). Wskaźnik first wskazuje na pierwszy element listy, last na ostatni. Lista jest cykliczna (first->prev wskazuje na last, last->next wskazuje na first). Opisz proces wymiany jednego węzła listy na nowo stworzony węzeł. "Stary" węzeł powinien zostać usunięty. Zakładamy, że dysponujemy funkcją Wezel* zwrocWezel(int n), która zwraca wskaźnik na n-ty węzeł. Jeśli n jest mniejsze od 0 lub większe od wielkości listy, to funkcja zwraca first. Działa ona poprawnie przy założeniu że struktura listy jest poprawna (tzn. first wskazuje na początek listy i węzły są powiązane). Mamy do dyspozycji zmienną size określającą wielkość listy. Zakładamy, że w liście są co najmniej 3 węzły.
Zadanie 2 (5 punktów) Wskaż błędy w niniejszym kodzie. Proszę zaznaczyć błędne linijki i opisać występujący błąd.
Zadanie 3 (5 punktów) Napisz co zostanie wypisane do strumienia cout po wykonaniu następującego programu:
Zadanie 4 (5 punktów) Za każdą poprawnie udzieloną odpowiedź Student otrzymuje 0,25 punktu, za błędną -0.25. Brak odpowiedzi na pytanie oznacza 0. Za jedno podzadanie (każde z pięciu) nie można otrzymać ujemnych punktów. 1.
Określ prawdziwość zdań dotyczących wyjątków: TAK/NIE Jeśli wyjątek zostanie rzucony w konstruktorze, to wywoła się destruktora tego obiektu. Domyślnie strumień std::ofstream rzuca wyjątek w przypadku wystąpienia błędu. Domyślnie strumień std::ofstream ustawia flagę błędu w przypadku wystąpienia błędu. Błędy strumieni wejściowych (np. cin) można obsłużyć jedynie poprzez mechanizm wyjątków.
2.
Określ prawdziwość zdań dotyczących GUI: TAK/NIE W większości przypadków GUI napisane w WinAPI działa szybciej od GUI Qt WinAPI jest oparte na mechanizmie slotów i sygnałów. Qt jest wieloplatformowe. WinAPI jest oparte na przetwarzaniu kolejki komunikatów.
3.
Określ prawdziwość zdań dotyczących rzutowania obiektów: TAK/NIE dynamic_cast zwraca NULL w przypadku niepowodzenia. const_cast służy, m.in., do usuwania wyrażenia const ze zmiennych. W przypadku poprawnego rzutowania static_cast i dynamic_cast dadzą ten sam efekt działania. reinterpret_cast jest stosowane zamiennie z dynamic_cast.
4.
Odpowiedz na pytania dotyczące kontenerów: TAK/NIE Wykorzystanie mechanizmu szablonów powoduje spowolnienie działania kontenerów. Dostęp do każdego z elementów listy (poza pierwszym) zajmuje zawsze tyle samo czasu. Dostęp do każdego z elementów wektora (poza pierwszym) zajmuje zawsze tyle samo czasu. Klasa stl::deque umożliwia efektywne wstawianie elementów na początek kontenera.
5.
Odpowiedz na pytania dotyczące optymalizacji programów: TAK/NIE Profiler służy do badania czasu wykonania poszczególnych części programu. Programowanie GPU umożliwia efektywne wykonywanie pojedynczych zadań sekwencyjnych. Funkcje inline zwykle powodują spowolnienie działania programu. Programy w trybie DEBUG działają z zasady szybciej niż w trybie RELEASE