Pytanie egzaminacyjne Wersja Zaoczne A:
2. Do czego służy specyfikator private oraz protected?
private - określa część prywatną, wewnątrz modułu składowe są widoczne tak jak
publiczne, poza modułem składowe są niedostępne;
Protected (dostęp tylko w podklasie, nawet jeśli podklasa należy do innego pakietu;
3. Na czym polega mechanizm wielokrotnego/jednokrotnego dziedziczenia klas. Podaj przykład:
Dziedziczenie wielokrotne - z kilku klas bazowych tworzymy jedną klasę pochodną.
Dziedziczenie jednokrotne - dziedziczenie z wykorzystaniem jednej klasy bazowej
4. Do czego służy słowo kluczowe virtual / override ?
virtual - metoda w klasie dziedziczącej może być przedefiniowana,
override - deklaracja metody która będzie przedefiniowana
5. Do czego służy destruktor / metoda Free ?
Destruktor - Kiedy już skończymy używać obiekt, musimy go usunąć. Robimy to,
wywołując specjalną metodę, destruktor, która zwalnia wcześniej przydzieloną pamięć
dla obiektu.
Free - ta metoda działa w ten sposób, że najpierw sprawdza, czy zmienna jest różna od nil,
dopiero wówczas wywołuje destruktor Destroy. Tak więc metoda Free zabezpiecza
programistę przed pomyłkowym kilkukrotnym usunięciem obiektu, czego nie robi metoda
Destroy
6. Na czym polega wczesne / późne wiązanie ?
Wczesne wiązanie jest stosowane w przypadku zamkniętejprzestrzeni, w której wszystkie potencjalne interakcje pomiędzy
komponentami oprogramowania mogą być zdefiniowane w trak-
cie tworzenia tych komponentów przez kompilator.
Późne wiązanie jest przydatne w przypadku otwartej
przestrzeni, kiedy komponenty, które mogą współdziałać
są znane dopiero po uruchomieniu programu.
Pytanie egzaminacyjne Wersja Zaoczne B:
2. Do czego służy słowo kluczowe result / pointer ?
"Result" śluzy do zwracania wyniku.
Definicja każdej funkcji zawiera niejawną deklarację zmiennej lokalnej Result. Zmienna ta
jest tego samego typu, co typ wyniku funkcji. Przypisanie wartości zmiennej Result daje
ten sam efekt, co przypisanie wartości funkcji. Poniższe dwie definicje funkcji Funkcja są
równoważne. W obu przypadkach funkcja zwróci wartość 10.
function Funkcja: Integer; function Funkcja: Integer;
begin begin
Funkcja:=10; Result:=10;
end; end;
Pointer (wskaźnik) jest typem reprezentującym adres pamięci. Kiedy zmienna
wskaźnikowa przechowuje adres do jakiegoś obszaru pamięci, możemy powiedzieć że jest
to wskaźnik który wskazuje na zmienną w pamięci lub do danych zachowanych tam. W
przypadku tablicy lub innego typu strukturalnego, wskaźnik przechowuje adres do
pierwszego elementu w strukturze.
3. Jakie są zalety podziału programu na moduły / procedury i funkcje ?
czytelność ,przejrzystość
praca w zespole
ułatwia wykrycie błędów
ułatwia budowę przyszłych aplikacji
4. Jakie są różnice między typem danych (np. rekordowym, tablicowym) a klasą?
Dane -to są zmienne, wartości, łańcuchy .
Klasa to odmiana struktury, w której oprócz zespołu danych dodane są także procedury i funkcje działających na tych danych.
5. Do czego służy słowo kluczowe overload / virtual ?
overload - metoda przeładowana,
virtual - metoda w klasie dziedziczącej może być przedefiniowana,
6. Do czego służy słowo kluczowe initialization \ finialization.
Opcjonalna sekcja finalization umożliwia wykonanie kodu w momencie zamykania aplikacji. Możesz użyć sekcji finalization, aby zwolnić zasoby zainicjowane w sekcji Initialization
Initialization Jest to opcjonalny element modułu; kod zawarty w tej sekcji będzie wykonywany jako pierwszy, zaraz po włączeniu modułu do aplikacji.
Pytanie egzaminacyjne Wersja Zaoczne C:
2. Do czego służy słowo kluczowe interface / implementation ?
W części Interface deklarujemy wszystkie elementy modułu które mają być widoczne na
"zewnątrz"
W sekcji Implementation, możemy zadeklarować typy, zmienne moduły, ale będą
widoczne jedynie wewnątrz tego modułu
3. Wyjaśnij istote programowania modułowego / strukturalnego ?
W miarę rozwoju Twoich umiejętności będziesz rozwiązywał coraz bardziej złożone problemy i pisał coraz bardziej złożone programy. Prędzej czy później staniesz też przed koniecznością rozbicia programu na kilka prostszych fragmentów, czyli podzielenia go na moduły. Modułowość, będąca jedną z podstawowych zasad dobrego programowania, jest rozszerzeniem podejścia proceduralnego. Struktura modularna zakłada wydzielenie funkcji zajmujących się daną dziedziną (np. operacjami wejścia-wyjścia) i zgrupowanie ich w oddzielnych plikach.
4. Co to jest właściwość klasy i do czego służy ?
Należą do nich omówione już specyfikatory dostępu, zmodyfikowana definicja konstruktora, wprowadzone pojęcie destruktora oraz
składowe statyczne,
definicje stałych wewnątrz klas,
wpływ specyfikatorów dostępu na dziedziczenie,
klasy i metody abstrakcyjne,
klasy i metody finalne,
przeciążanie metod i właściwości,
klonowanie obiektów,
interfejsy,
automatyczne ładowanie klas oraz
wymuszanie typu parametrów.
5. Na czym polega hermetyczność obiektów / specjalizacja klas ?
Hermetyczność - ukrywanie zbędnych informacji , tak aby użytkownik nie miał wpływu na zmianę . Zmiana powinna tylko wynikać z wykonywanych jakichś operacji nad nimi .Ułatwia to operowanie na skomplikowanych obiektach.
Specyfikacja klas - polega na grupowaniu klas , tak aby był łatwiejszy dostęp do nich , oraz zgrupowanie o podobnych działaniach .
Hermetyczność ; oznacza, że struktury danych i kody programowe są połączone w
całościową jednostkę programową, zwaną obiektem. Ogólnie dostępne struktury danych w obiekcie nazywa się własnościami, a ogólnie dostępne kody programowe - metodami.
Obiekt może posiąść metody i dane innego obiektu, ale metody jednego obiektu nie mają bezpośredniego dostępu do danych innego obiektu!
6. Wyjaśnij specyfikę plików (zewnętrznych):typowanych (rekordowych)/amorficznych (binarnych)
Pliki rekordowe to takie, które składają się tylko z jednego typu zmiennych ,powielonego wiele razy
Typ plików amorficzny (luzny) - zawiera w sobie mieszanine roznych typow. Pliki tego
typu to na przyklad BMP, czy CHR. Aby dobrac sie do jakiegokolwiek pliku nalezy
najpierw go przypisac do jakiejs zmiennej i otworzyc. Po zakonczeniu roboty wypada go
takze zamknac.
Jakie są korzyści późnego wiązania.
- Późne wiązanie jest przydatne w przypadku otwartej
przestrzeni, kiedy komponenty, które mogą współdziałać
są znane dopiero po uruchomieniu programu.
Różnica miedzy kompilacją interpretacja.
-Kompilacja - jednokrotne uruchomienie i tłumaczy na język procesora
- Interpretacja polega na wielokrotnym tłumaczeniu programu tyle razy ile chcemy go uruchomić , czyli ciągle nadzorowany
Jak rozumiemy stwierdzenie że klasa jest magazynem obiektów.
- klas grupuje obikty o tej samej budowie i cechach , metody będące w różnych stanach .
Co to jest hermetyczność obiektu.
- Hermetyczność ; oznacza, że struktury danych i kody programowe są połączone w
całościową jednostkę programową, zwaną obiektem. Ogólnie dostępne struktury danych w obiekcie nazywa się własnościami, a ogólnie dostępne kody programowe - metodami.
Obiekt może posiąść metody i dane innego obiektu, ale metody jednego obiektu nie mają bezpośredniego dostępu do danych innego obiektu!
Na czym polega polimorfizm ( wielopostaciowość )
- uniwersalne pojedyncze identyfikatory dla różnych typów parametrów
•Polimorfizm metod (virtual i override) - w zależności od tego jakiej klasy jest wystąpieniem dany obiekt, wywoływana jest odpowiednia metoda (późne wiązanie)
•Przesłanianie
-Pełne: metoda podklasy całkowicie przedefiniowuje swoją poprzedniczkę
-Częściowe (z mechanizmem inherited)
•Obiekty są pamiętane jako wskaźniki - stąd możliwość zagnieżdżania obiektów różnych klas w homogenicznych zmiennych strukturalnych