000 PROGRAMOWANIE STRUKTURALNE PASCAL 1 PSTP PROGRAMOWANIE STRUKTURALNE

  • Slides: 11
Download presentation
000 - PROGRAMOWANIE STRUKTURALNE PASCAL 1 PS/TP

000 - PROGRAMOWANIE STRUKTURALNE PASCAL 1 PS/TP

PROGRAMOWANIE STRUKTURALNE STOS (ang. Stack) Stos jest to struktura danych składająca się z liniowo

PROGRAMOWANIE STRUKTURALNE STOS (ang. Stack) Stos jest to struktura danych składająca się z liniowo uporządkowanych elementów w której ostatnio dołączony element nazywamy wierzchołkiem stosu). Stos działa na zasadzie pamięci LIFO (ang. Last Input – First Output) – ostatnio wprowadzony do niego element zostanie pierwszy wyprowadzony. Wierzchołek stosu Element 6 Element 5 Element 4 Element 3 Element 2 Element 1 2 PS/TP

PROGRAMOWANIE STRUKTURALNE wyjście wejście wierzchołek stosu dane wskaznik 3 dane wskaznik NIL PS/TP

PROGRAMOWANIE STRUKTURALNE wyjście wejście wierzchołek stosu dane wskaznik 3 dane wskaznik NIL PS/TP

PROGRAMOWANIE STRUKTURALNE Budowa elementu wierzcholek dane : string[70]; wskaznik : wskaznik_stosu; dane : string[70];

PROGRAMOWANIE STRUKTURALNE Budowa elementu wierzcholek dane : string[70]; wskaznik : wskaznik_stosu; dane : string[70]; wkaznik : wskaznik_stosu; NIL 4 PS/TP

PROGRAMOWANIE STRUKTURALNE Przykładowy program PROGRAM Stos 1; USES Crt; TYPE wskaznik_stosu = ^skladnik_stosu; skladnik_stosu

PROGRAMOWANIE STRUKTURALNE Przykładowy program PROGRAM Stos 1; USES Crt; TYPE wskaznik_stosu = ^skladnik_stosu; skladnik_stosu = record dane : string[70]; wskaznik : wskaznik_stosu; end; VAR {Deklaracje zmiennych dynamicznych} wierzcholek, element : wskaznik_stosu; {Deklaracje zmiennych pomocniczych} tekst : string; koniec : boolean; i, k, n : integer; 5 PS/TP

PROGRAMOWANIE STRUKTURALNE {Procedura tworzenia stosu i dołączania do niego składników} procedure Na. Stos(var element

PROGRAMOWANIE STRUKTURALNE {Procedura tworzenia stosu i dołączania do niego składników} procedure Na. Stos(var element : string[70]; var wierzcholek : wskaznik_stosu); var punkt : wskaznik_stosu; begin punkt : = wierzcholek; New(wierzcholek); wierzcholek^. dane : = element; wierzcholek^. wskaznik : = punkt; end; {Na. Stos} 6 PS/TP

PROGRAMOWANIE STRUKTURALNE {Procedura usuwania (zdejmowania) składnika z wierzchołka stosu} procedure Ze. Stosu(var element :

PROGRAMOWANIE STRUKTURALNE {Procedura usuwania (zdejmowania) składnika z wierzchołka stosu} procedure Ze. Stosu(var element : string[70]; var wierzcholek : wskaznik_stosu); var punkt : wskaznik_stosu; begin if (wierzcholek <> NIL) then begin element : = wierzcholek^. dane; punkt : = wierzcholek^. wskaznik; Dispose(wierzcholek); wierzcholek : = punkt; end; {Ze. Stosu} 7 PS/TP

PROGRAMOWANIE STRUKTURALNE BEGIN Clr. Scr; Text. Color(YELLOW); Text. Background(BLUE); Go. To. XY(32, 1); writeln('PRZYKŁAD

PROGRAMOWANIE STRUKTURALNE BEGIN Clr. Scr; Text. Color(YELLOW); Text. Background(BLUE); Go. To. XY(32, 1); writeln('PRZYKŁAD STOSU'); window(1, 3, 80, 25); Text. Background(BLACK); write('Wprowadź teksty (każdy maks. 70 znaków)'); writeln('** - koniec wprowadzania'); wierzcholek : = NIL; i: =0; koniec : = false; repeat i: =i+1; write('Tekst ', i, ' : '); readln(tekst); if (tekst='**') then koniec : = true else Na. Stos(tekst, wierzcholek); until koniec; 8 PS/TP

PROGRAMOWANIE STRUKTURALNE if (i>1) then begin clrscr; writeln('Stos został utworzony'); i: =i-1; writeln('Liczba składników

PROGRAMOWANIE STRUKTURALNE if (i>1) then begin clrscr; writeln('Stos został utworzony'); i: =i-1; writeln('Liczba składników stosu: ', i); koniec : = false; repeat writeln('Podaj liczbę n tekstów do usunięcia '); write('ze stosu (n<1 - koniec) : '); readln(n); if (n<1) then koniec : = true else if (n>i) then writeln('Liczba składników stosu : ', i) 9 PS/TP

PROGRAMOWANIE STRUKTURALNE else begin k: =0; repeat k: =k+1; Ze. Stosu(tekst, wierzcholek); until (wierzcholek=NIL)

PROGRAMOWANIE STRUKTURALNE else begin k: =0; repeat k: =k+1; Ze. Stosu(tekst, wierzcholek); until (wierzcholek=NIL) or (k=n); writeln('Teksty pozostałe na stosie: '); if (wierzcholek=NIL) then begin writeln('Brak tekstów'); koniec : = true; end else begin i: =0; element : = wierzcholek; 10 PS/TP

PROGRAMOWANIE STRUKTURALNE element : = wierzcholek; repeat i: =i+1; writeln('Tekst ', i, ' :

PROGRAMOWANIE STRUKTURALNE element : = wierzcholek; repeat i: =i+1; writeln('Tekst ', i, ' : '); writeln(element^. dane); element : = element^. wskaznik; until (element=NIL); end until koniec; for k: =1 to i do Ze. Stosu(tekst, wierzcholek); writeln('Koniec programu'); Delay(2000); end; {(i>1)} writeln('Naciśnij dowolny klawisz. . . '); Readkey; END. 11 PS/TP