Programowanie 2. Lista zadań 1. 1 Zadanie 1. Napisać program

Transkrypt

Programowanie 2. Lista zadań 1. 1 Zadanie 1. Napisać program
Programowanie 2. Lista zadań 1.
Zadanie 1. Napisać program ilustrujący następujące własności obiektów stałych:
1. Obiektom const nie można zmienić wartości.
2. Obiekty const muszą być zawsze zainicjowane.
3. Obiekty const służą do określania wielkości tablicy.
4. Obiekty const mają zasięg w pliku w którym są zdefiniowane. Aby użyć obiektu constw pliku w którym
nie jest on zdefiniowany należy użyć deklaracji extern.
Rozwiązanie: cw01-01-const.cpp
Zadanie 2. Napisać program ilustrujący następujące własności obiektów statycznych:
1. Lokalny obiekty typu static zachowuje swoją wartość po zakończeniu funkcji.
2. Obiekty typu static obowiązują w jednym pliku.
Rozwiązanie: cw01-02a-static.cpp, cw01-02b-static.zip
Zadanie 3. Podać definicję wskaźnika.
Wymienić obszary pamięci w których można alokować obiekty.
Zdefiniować wskaźnik do zmiennej typu int na stosie.
Zdefiniować wskaźnik na stercie.
Zdefiniować wskaźnik typu int na stercie i zainicjować go konstruktorem int().
Na standardowe wyjście przekierować wartości i adresy wskaźników, wartość zmiennej na który wskazuje
wskaźnik.
Rozwiązanie: cw01-03-wskaznik-stos-sterta.cpp
Zadanie 4. Napisać program ilustrujący następujące własności wskaźników:
1. Wskaźnikowi można zmienić wartość, czyli przypisać mu adres innej zmiennej.
2. Poprzez wskaźnik można zmienić wartość zmiennej na który wskazuje.
3. Referencje można inicjować wskaźnikiem.
4. Wskaźnik można inicjować referencją.
Zainicjować wskaźniki na stercie wartością zdefiniowanego wskaźnika za pomocą placement new.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.doc
Zadanie 5a. Napisać program ilustrujący operacje na wskaźnikach.
Dla wskaźnika p przechowującego adres zmiennej typu int pokazać, jaka jest wartość
p + 4, *p + 9, &p + 1?
Rozwiązanie: cw01-05a-operacje-stos.cpp
Zadanie 5b. Napisać program w którym będzie zdefiniowana:
- tablica wskaźników wskazująca na tablicę typu int,
- wskaźnik do tablicy jednowymiarowej,
- wskaźnik do tablicy dwuwymiarowej,
- wskaźnik do zmiennej typu char,
- wskaźnik do trójwymiarowej tablicy typu char.
Na standardowe wyjście przekierować wartości i adresy elementów tablic.
Rozwiązanie: cw01-05b-tablice&wskazniki.cpp
Zadanie 5c. Napisać program w którym będzie zdefiniowana tablica wskaźników na stercie typu int, typu char.
Na standardowe wyjście przekierować wartości i adresy elementów tablic.
Rozwiązanie: cw01-05c-tablice-stos.cpp
Zadanie 5d. Napisać program ilustrujący błąd wycieku pamięci (w pętli tworzyć tablicę na stercie i nie usuwać).
Rozwiązanie: cw01-05d-testWyciekuPamieci.cpp
1
Programowanie 2. Lista zadań 1.
Zadanie 6. Podać definicję referencji.
Napisać program ilustrujący następujące własności referencji:
1. Referencja musi być przypisana do zmiennej (musi być zainicjowana).
2. Referencji nie można przypisać wartosci NULL
3. Referencji nie można zmienić przypisania.
4. Referencji można przypisać wartość.
5. Referencja musi być zainicjowana takim samym typem jaki jest typ referencji.
Referencja typu const może być zainicjowana podobnym typem do typu referencji.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf, cw01-06-referencje-wlasnosci.cpp
Zadanie 7. Zdefiniować wskaźnik do wskaźnika na stosie, stercie.
Na standardowe wyjście przekierować: wartości, adresy wskaźników i wskaźników do wskaźników.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf, cw01-07a-Wsk2Wsk-stos.cpp
Zadanie 8. Napisać program konsolowy, uruchamiany z parametrami.
Wpisane parametry program przekierowuje na standardowe wyjście.
Jakie znaczenie mają parametry funkcji main()?
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf, cw01-08-main.cpp
Zadanie 9. Zdefiniować typ const unsigned int. Zadeklarować zmienną zdefiniowanego typu i przypisać jej
wartość. Na standardowe wyjście przekierować wartość tej zmiennej.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf
Zadanie 10. Napisać program ilustrujący następujące własności typu wyliczeniowego enum:
1. Domyślna wartość pierwszego elementu jest 0, następnego 1, itd..
2. Typ enum jest typu const.
3. Typ wyliczeniowy enum można zagnieżdżać w klasach.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf
Zadanie 11. Dla zadanego typu wyliczeniowego
enum Kolory { czerwony=2, zielony=30, niebieski };
Jaką wartość ma niebieski?
Rozwiązanie: cw01-11-enum-kolory.cpp
Zadanie 12. Podać definicję obszaru nazw.
Napisać program ilustrujący następujące własności obszarów nazw:
1. Do deklaracji użycia obszaru nazw stosuje się dyrektywę using,
np. using namespace <nazwa_obszaru>;
2. Obszary nazw można zagnieżdżać.
3. Dostęp do elementów obszaru nazw można uzyskać za pomocą operatora zakresu ::
4. Nazwa zadeklarowana poza obszarem nazw, blokiem, klasą ma zakres globalny.
5. Obszar nazw może nie mieć nazwy.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf
Zadanie 13. Wymienić obszary pamięci w których można definiować obiekty.
Napisać program w którym będą zdefiniowane i zainicjowane zmienne w każdym wymienionych obszarów
pamięci.
Rozwiązanie: cw01-13-obszaryPamieci.cpp
Zadanie 14. Napisać program ilustrujący zakresy zmiennych lokalnych.
Rozwiązanie: Programowanie2-cpp-Wyklad-01.pdf
2