049 PROGRAMOWANIE STRUKTURALNE PASCAL 1 jkluczewskiwp pl PSTP

  • Slides: 21
Download presentation
049 - PROGRAMOWANIE STRUKTURALNE PASCAL 1 jkluczewski@wp. pl PS/TP

049 - PROGRAMOWANIE STRUKTURALNE PASCAL 1 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA Listą liniową nazywamy liniowo uporządkowany zbiór elementów, z którego w

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA Listą liniową nazywamy liniowo uporządkowany zbiór elementów, z którego w dowolnym miejscu można usunąć, jak również dołączyć nowy element. W zależności od rodzajów połączeń pomiędzy elementami wyróżniamy listy: qjednokierunkowe qdwukierunkowe qcykliczne Element 1 2 Element 3 Element 4 jkluczewski@wp. pl Element 5 PS/TP

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA Listą JEDNOKIERUNKOWĄ nazywamy liniowo uporządkowany zbiór elementów, W KRÓRYM dla

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA Listą JEDNOKIERUNKOWĄ nazywamy liniowo uporządkowany zbiór elementów, W KRÓRYM dla każdego elementu, poza pierwszym jest określony element poprzedni. Koniec listy (ostatni element) Początek LISTY (pierwszy element) Element 1 3 Element 2 Element 3 Element 4 jkluczewski@wp. pl Element 5 PS/TP

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA „o kierunku do przodu” Początek listy Koniec listy dane wskaznik

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA „o kierunku do przodu” Początek listy Koniec listy dane wskaznik 4 dane wskaznik jkluczewski@wp. pl dane wskaznik NIL PS/TP

PROGRAMOWANIE STRUKTURALNE Budowa elementu LISTY JEDNOKIERUNKOWEJ Poprzedni element dane : string[70]; wskaznik : wskaznik_listy;

PROGRAMOWANIE STRUKTURALNE Budowa elementu LISTY JEDNOKIERUNKOWEJ Poprzedni element dane : string[70]; wskaznik : wskaznik_listy; Następny element 5 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA „o kierunku do tyłu” Początek listy dane wskaznik Koniec listy

PROGRAMOWANIE STRUKTURALNE LISTA JEDNOKIERUNKOWA „o kierunku do tyłu” Początek listy dane wskaznik Koniec listy dane wskaznik NIL 6 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE Budowa elementu LISTY JEDNOKIERUNKOWEJ dane : string[70]; wskaznik : wskaznik_listy; 7 jkluczewski@wp.

PROGRAMOWANIE STRUKTURALNE Budowa elementu LISTY JEDNOKIERUNKOWEJ dane : string[70]; wskaznik : wskaznik_listy; 7 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE Tworzenie listy PROGRAM Lista 0; {Demonstracja listy jednokierunkowej} USES Crt; TYPE wskaznik_listy

PROGRAMOWANIE STRUKTURALNE Tworzenie listy PROGRAM Lista 0; {Demonstracja listy jednokierunkowej} USES Crt; TYPE wskaznik_listy = ^skladnik_listy; skladnik_listy = record dane : string[70]; wskaznik : wskaznik_listy; end; VAR {Deklaracje zmiennych dynamicznych} pierwszy_skladnik, biezacy_skladnik : wskaznik_listy; {Deklaracje zmiennych pomocniczych} poprzedni, nastepny : wskaznik_listy; 8 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE BEGIN Clr. Scr; {==================} writeln('Tworzenie listy'); writeln('Dodanie pierwszego składnika'); i: =0; New(biezacy_skladnik);

PROGRAMOWANIE STRUKTURALNE BEGIN Clr. Scr; {==================} writeln('Tworzenie listy'); writeln('Dodanie pierwszego składnika'); i: =0; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'AAAAA'; biezacy_skladnik^. wskaznik : = NIL; pierwszy_skladnik : = biezacy_skladnik; biezacy_skladnik pierwszy_skladnik dane = ‘AAAAA’ wskaznik NIL 9 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE writeln('Dodanie następnego składnika'); poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : =

PROGRAMOWANIE STRUKTURALNE writeln('Dodanie następnego składnika'); poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'BBBBB'; biezacy_skladnik^. wskaznik : = NIL; poprzedni^. wskaznik : = biezacy_skladnik; pierwszy_skladnik dane = ‘AAAAA’ wskaznik biezacy_skladnik dane = ‘BBBBB’ wskaznik NIL 10 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'CCCCC'; biezacy_skladnik^. wskaznik

PROGRAMOWANIE STRUKTURALNE poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'CCCCC'; biezacy_skladnik^. wskaznik : = NIL; poprzedni^. wskaznik : = biezacy_skladnik; pierwszy_skladnik dane = ‘AAAAA’ wskaznik dane = ‘BBBBB’ wskaznik biezacy_skladnik dane = ‘CCCCC’ wskaznik NIL 11 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'CCCCC'; biezacy_skladnik^. wskaznik

PROGRAMOWANIE STRUKTURALNE poprzedni : = biezacy_skladnik; New(biezacy_skladnik); biezacy_skladnik^. dane : = 'CCCCC'; biezacy_skladnik^. wskaznik : = NIL; poprzedni^. wskaznik : = biezacy_skladnik; pierwszy_skladnik dane = ‘AAAAA’ wskaznik dane = ‘BBBBB’ wskaznik biezacy_skladnik dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL 12 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE GOTOWA LISTA pierwszy_skladnik dane = ‘AAAAA’ wskaznik dane = ‘BBBBB’ wskaznik dane

PROGRAMOWANIE STRUKTURALNE GOTOWA LISTA pierwszy_skladnik dane = ‘AAAAA’ wskaznik dane = ‘BBBBB’ wskaznik dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik biezacy_skladnik NIL 13 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE Wyświetlanie listy if (pierwszy_skladnik<>NIL) then begin biezacy_skladnik : = pierwszy_skladnik; repeat writeln(biezacy_skladnik^.

PROGRAMOWANIE STRUKTURALNE Wyświetlanie listy if (pierwszy_skladnik<>NIL) then begin biezacy_skladnik : = pierwszy_skladnik; repeat writeln(biezacy_skladnik^. dane); biezacy_skladnik : = biezacy_skladnik^. wskaznik; until (biezacy_skladnik=NIL); end else writeln('Lista jest pusta'); 14 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘AAAAA’ wskaznik biezacy_skladnik dane = ‘BBBBB’ wskaznik Kierunek przesuwania

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘AAAAA’ wskaznik biezacy_skladnik dane = ‘BBBBB’ wskaznik Kierunek przesuwania się wskaźnika dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL 15 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE Usuwanie elementów z listy biezacy_skladnik : = pierwszy_skladnik; repeat nastepny : =

PROGRAMOWANIE STRUKTURALNE Usuwanie elementów z listy biezacy_skladnik : = pierwszy_skladnik; repeat nastepny : = biezacy_skladnik^. wskaznik; Dispose(biezacy_skladnik); biezacy_skladnik : = nastepny; pierwszy_skladnik : = biezacy_skladnik; until (nastepny=NIL); 16 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘AAAAA’ wskaznik biezacy_skladnik dane = ‘BBBBB’ wskaznik Kierunek przesuwania

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘AAAAA’ wskaznik biezacy_skladnik dane = ‘BBBBB’ wskaznik Kierunek przesuwania się wskaźnika dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL Dispose 17 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘BBBBB’ wskaznik biezacy_skladnik Kierunek przesuwania się wskaźnika dane =

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik dane = ‘BBBBB’ wskaznik biezacy_skladnik Kierunek przesuwania się wskaźnika dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL Dispose 18 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik biezacy_skladnik dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL Dispose

PROGRAMOWANIE STRUKTURALNE pierwszy_skladnik biezacy_skladnik dane = ‘CCCCC’ wskaznik dane = ‘DDDDD’ wskaznik NIL Dispose 19 jkluczewski@wp. pl Kierunek przesuwania się wskaźnika PS/TP

PROGRAMOWANIE STRUKTURALNE biezacy_skladnik pierwszy_skladnik dane = ‘DDDDD’ wskaznik NIL Dispose 20 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE biezacy_skladnik pierwszy_skladnik dane = ‘DDDDD’ wskaznik NIL Dispose 20 jkluczewski@wp. pl PS/TP

PROGRAMOWANIE STRUKTURALNE until (nastepny = NIL); {warunek zakończenia} biezacy_skladnik pierwszy_skladnik NIL nastepny 21 jkluczewski@wp.

PROGRAMOWANIE STRUKTURALNE until (nastepny = NIL); {warunek zakończenia} biezacy_skladnik pierwszy_skladnik NIL nastepny 21 jkluczewski@wp. pl PS/TP