informatyka, wykłady z semestru 2

Nasza ocena:

5
Pobrań: 21
Wyświetleń: 903
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
informatyka, wykłady z semestru 2 - strona 1 informatyka, wykłady z semestru 2 - strona 2 informatyka, wykłady z semestru 2 - strona 3

Fragment notatki:


Wykład 1 JĘZYK C++ [PROGRAMOWANIE OBIEKTOWE] Definiowanie klas Klasa - twór, w którym są zdefiniowane zmienne i operacje na tych zmiennych
class nazwa_klasy { specyfikator dostępu: lista komponentów; specyfikator dostępu 2: lista komponentów 2; … } ; Elementy listy komponentów to albo definicje zmiennych, definicje klas albo deklaracje funkcji związanych ze zdefiniowanymi zmiennymi.
Komponenty będące zmiennymi nazywamy często polami, a same funkcje - metodami lub funkcjami składowymi.
Specyfikatory dostępu: private : - komponenty prywatne to takie, do których dostęp mają jedynie inne komponenty tej samej klasy lub tzw. klasy zaprzyjaźnionej
public : - komponenty publiczne to takie, do których dostęp nie jest ograniczony
protected : - komponenty zabezpieczone to inaczej komponenty prywatne z możliwym dostępem w klasach dziedziczących
Klasy możemy definiować lokalnie (wewnątrz funkcji), wewnątrz innych klas oraz jako klasy zewnętrzne.
Przykład: class punkt { private: double x,y,z; public: void Wczytaj (vo id); void Wypisz (void); double Odl (void); //Odległość od punktu (0,0) double Odl2 (punkt) //Odległość 2 punktów } ; Dwuargumentowy operator zasięgu “::” poprzedzony jest nazwą klasy, ustala zasięg komponentu występującego po nim; np. punkt :: Wczytaj() [na zewnątrz odwołujemy się do funkcji z klasy]. Operator ten umożliwia nam zdefiniowanie funkcji poza ciałem klasy.
Przykład c.d.:
void punkt :: Wczytaj (void) { cin x; cin y; cin z; } void punkt :: Wypisz (void) { cout

(…)

… bazowa 1
klasa bazowa 2
klasa bazowa 3





klasa pochodna


3) dziedziczenie wielostronne


klasa bazowa





klasa pochodna 1
klasa pochodna 2
klasa pochodna 3
Wykład 6
LISTA JEDNOKIERUNKOWA (POJEDYNCZO WIĄZANA)
Dynamiczna struktura danych, która składa się z ciągu elementów tego samego typu powiązanych wskaźnikami.
Przykład:
class lista
{
private:
struct element *głowa;
struct element…
… publiczne i zabezpieczone komponenty klasy bazowej. Mechanizm dziedziczenia pozwala na stworzenie układu hierarchicznego klas.
Definicja klasy pochodnej:
class nazwa_klasy_pochodnej : modyfikator_praw_dostępu nazwa_klasy bazowej
{…} ;
class nazwa_klasy_pochodnej : mod1 klasa_bazowa1, mod2 klasa_bazowa2,…
{…} ;
Modyfikator praw dostępu może być publiczny lub prywatny. W przypadku dziedziczenia publicznego…

3) połączenie implementacji tablicowej; szczególny przypadek listowej czyli zastępowanie tablic przez listy (lewy syn prawy brat oraz lewy - prawy syn dla drzew binarnych o stopniu 2)
Efektywność operacji w poszczególnych implementacjach
operacja
Implementacja tablicowa
Implementacja listowa
Implementacja połączona
Lewy syn prawy brat
ojciec(v)
syn(v)
root
( )
Drzewo nazywamy uporządkowanym…
…-tego z lewej poddrzewa w porządku postorder; … wypisz korzeń; przykład: 743156820 inorder (poprzeczny) stosowany dla drzew binarnych wypisz węzły pierwszego z lewej poddrzewa w porządku inorder; wypisz korzeń; wypisze węzły k-tego z lewej poddrzewa w porządku inorder; wypisz korzeń; … przykład: 714305628
// Uporządkowanie liści we wszystkich trzech porządkach jest takie same.
Wykład 10
BINARNE DRZEWA PRZESZUKIWAŃ (BST)
BST to uporządkowane drzewo binarne, w którym klucze w przechowywanych węzłach przechowywane są według reguły: jeśli u jest lewym potomkiem węzła v oraz jeśli u jest prawym potomkiem v.
Podstawowe operacje w BST:
// drzewo zaimplementowane jest jako lewy - prawy syn
1. wyszukujemy pierwszy węzeł o zadanym kluczu
struct węzeł* wyszukaj (typ_klucza klucz)
{
struct węzeł* p;
p = korzeń;
while…
… różne konstruktory
Destruktory
Funkcje składowe klasy o następujących własnościach:
nazwa destruktora to nazwa klasy poprzedzona znakiem „~”
destruktor nie zwraca żadnego wyniku i nie ma żadnego argumentu
nie może być aktywowany na rzecz żadnego obiektu
Destruktor w klasie jest tylko jeden!!!
Definicja w klasie: ~punkt ();
Definicja destruktora:
punkt :: punkt ()
{ cout << ”Tu działa destruktor…
… na obiekt, na rzecz którego dana funkcja była aktywowana.
Przykład w klasie: punkt operator = (punkt);
w main: C=A+B;
deklaracja:
punkt punkt :: operator = (punkt A)
{
x = A.x;
y = A.y;
z = A.z;
return *this;
}
Operatory new (rezerwacja pamięci) i delete (zwolnienie pamięci)
Deklaracja:
wskaźnik = new typ;
wskaźnik = new typ [liczba obiektów];
delete wskaźnik;
przykład: int *w;
w=new int;
delete w;
ZADANIE…
... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz