Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

PROGRAMOWANIE STRUKTURALNE

Podobne prezentacje


Prezentacja na temat: "PROGRAMOWANIE STRUKTURALNE"— Zapis prezentacji:

1 PROGRAMOWANIE STRUKTURALNE
Wprowadzenie do programowania w TP. część 3

2 Temat: Tablice.

3 Tablica Tablica to struktura będąca uporządkowanym zbiorem elementów.
Każdy element posiada własny niepowtarzalny numer pozwalający go szybko odnaleźć. Tablicę można porównać do ponumerowanych wieszaków w szatni: każdemu numerowi odpowiada dokładnie jedna zawieszona kurtka lub płaszcz - okrycie, aby odnaleźć kurtkę wystarczy znać przypisany jej numer.

4 Tablica jednowymiarowa
Deklaracja tablicy var tablica = array[1..N] of typ; gdzie tablica – nazwa tablicy [1..N] - rozmiar tablicy od 1 do N typ - typ tablicy (np. integer)

5 Temat Zbiory

6 Zbiory (sets) Zbiory wykorzystuje się do przechowywania kolekcji elementów porządkowych. TYPE zbior = SET OF typ_podstawowy; (w Pascalu liczba elementów do 256)

7 Przykłady TYPE tydzien = (po, wt, sr, cz, pi, so, ni); zbiorliczb = SET OF 0..47; zbiorliter = SET OF 'A'..'Z'; dni_wolne = SET OF pi..ni; Tznakow = SET OF char; Tliczb = SET OF byte;

8 Przykłady var zbiorA, zbiorB, zbiorC: SET OF byte; begin zbiorA := [1,2,5,7]; zbiorB := [3,4,5,6]; zbiorC := zbiorA + zbiorB - [5]; if 5 in zbiorC then writeln (‘OK’); if 1 in zbiorC then writeln (‘Jest 1’); end.

9 Temat Rekordy

10 Rekordy – własne typy danych
Czasami zachodzi potrzeba utworzenia własnego typu - rekordu, który będzie przechowywał wymyślone przez nas dane. Przypuśćmy że chciałbyś zbudować prostą bazę danych zawierającą imiona, nazwiska i inne dane swoich klientów. Zamiast przechowywać wszelkie dane w różnych osobnych tablicach, to tworzymy rekord.

11 Przykład type ksiazka=record autor:string[40]; nazwa:string[80]; rokwyd:integer; end; var biblioteka:array[1..50] of ksiazka; // … odwołanie do zawartości rekordu writeln(‘Autor: ’,biblioteka[2].autor);

12 Temat Wskaźniki

13 Wskaźniki Wskaźniki to adresy pamięci, które pokazują komputerowi miejsce gdzie znajdują się jakieś dane. Pamięć do której odnoszą się wskaźniki można w każdej chwili zwalniać, deklarować i zmieniać.

14 Wskaźniki – uwagi praktyczne
Bez wskaźników nie byłoby możliwe nieograniczone tworzenie nowych danych, np. w słowniku. Gdyby nie wskaźniki mielibyśmy z góry określoną liczbę słów, które słownik byłby w stanie zapamiętać, oraz nie moglibyśmy w systemie uruchomić większej liczby programów niż w nim zaplanowano.

15 Przykład var wsk_na_liczbe:^integer; begin clrscr; new(wsk_na_liczbe);
writeln('liczba=',wsk_na_liczbe^); dispose(wsk_na_liczbe); end.

16 Typ pointer Typ wskaźników nazywa się pointer. Gdy jakąś zmienną zadeklarujesz jako poiner, będzie ona wskaźnikiem. Wskaźniki mogą adresować różne typy zmiennych. Mogą adresować liczby, napisy, tablice, itd. oznacza pobranie adresu zmiennej. Typ pointer należy rzutować (unikniemy błędu kompilacji) w określony typ.

17 Przykład var wskaznik:pointer; //tworzenie wskaźnika tekst:string; begin clrscr; tekst:=‘Zwykły tekst'; //pobranie adresu writeln(string(wskaznik^)); //rzutowanie end.

18 Posługiwanie się wskaźnikami i zmiennymi dynamicznymi
Temat Posługiwanie się wskaźnikami i zmiennymi dynamicznymi

19 Ćwiczenia praktyczne

20 Funkcje i procedury dynamicznego przydziału pamięci
Temat Funkcje i procedury dynamicznego przydziału pamięci

21 Wprowadzenie Dynamiczne struktury danych to takie, w których pamięć może być przydzielana w trakcie wykonywania programu, do tej operacji służą zmienne typu wskaźnikowego i zmienne wskazywane.

22 Wprowadzenie Struktury te mogą być proste i złożone. Za ich pomocą można tworzyć np. dynamiczne struktury listowe, tj. uporządkowane zbiory składników, niekoniecznie o jednakowych typach. Składniki te mogą być elementami prostymi (liczbami, czy pojedynczymi znakami) lub elementami złożonymi (tabliczmi, rkordami, obiektami, listami).

23 Typy struktur listowych
stosy kolejki listy jednokierunkowe dwukierunkowe cykliczne drzewa

24 Tworzenie i przetwarzanie dynamicznych struktur danych- stos
Temat Tworzenie i przetwarzanie dynamicznych struktur danych- stos

25 Stos Stos (stack) jest to struktura danych składająca się z liniowo uporządkowanych zbiorów składników, z których tylko „najwyższy” jest niejako dostępny. Miejsce dostępu to wierzchołek stosu. Jest to jedyne miejsce, do którego można dołączyć lub z którego można usunąć elementy.

26 wierzchołek Stos DANE wskaźnik Każdy składnik stosu posiada wyróżniony element (wskaźnik), który wskazuje na następujący po nim (aders) składnik Wskaźnik ostatniego składnika stosu wskazuje na pusty adres nil. Wierzchołek stosu to miejsce wstawiania i usuwania danych. DANE wskaźnik DANE wskaźnik DANE wskaźnik nil

27 Tworzenie i przetwarzanie dynamicznych struktur danych- kolejka
Temat Tworzenie i przetwarzanie dynamicznych struktur danych- kolejka

28 Kolejki Kolejka (queue) jest strukturą składającą się z liniowo uporządkowanych zbiorów składników, do której można dołączyć składnik tylko w jednym końcu (na końcu kolejki), a usunąć tylko na drugim końcu (na początku).

29 Kolejki Powiązanie między składnikami kolejki jest podobne do powiązań między składnikami stosu. Natomiast usuwamy składniki tylko na początku kolejki, zaś dodajemy na końcu kolejki. wierzchołek DANE wskaźnik DANE wskaźnik DANE wskaźnik DANE wskaźnik początek kolejki koniec kolejki nil

30 Tworzenie i przetwarzanie dynamicznych struktur danych- listy
Temat Tworzenie i przetwarzanie dynamicznych struktur danych- listy

31 Listy Listą (liniową) nazywamy liniowo uporządkowany zbiór składników, z którego w dowolnym miejscu można usunąć składnik, jak również dodać. Wyróżniamy: listy jednokierunkowe, listy dwukierunkowe, listy cykliczne.

32 Listy jednokierunkowe
Organizacja listy jednokierunkowej jest podobna do organizacji stosu bądź kolejki.

33 Listy dwukierunkowe Listą dwukierunkową nazywamy liniowo uporządkowany zbiór składników, w którym dla każdego składnika, poza pierwszym i ostatnim, jest określony składnik poprzedni i następny. wierzchołek wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 nil

34 Listy cykliczne Lista cykliczna powstaje z listy jedno- lub dwukierunkowej przez powiązanie ostatniego składnika listy z jej pierwszym składnikiem. W wyniku takiego powiązania wyróżnione składniki (pierwszy i ostatni) przestają pełnić swoje funkcje. W liście cyklicznej żaden ze składników nie jest wyróżniony.

35 Listy cykliczne wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2

36 Tworzenie i przetwarzanie dynamicznych struktur danych- drzewa
Temat Tworzenie i przetwarzanie dynamicznych struktur danych- drzewa

37 Drzewo binarne korzeń DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0
liść nil DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1 nil nil nil nil DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1


Pobierz ppt "PROGRAMOWANIE STRUKTURALNE"

Podobne prezentacje


Reklamy Google