Podstawy Programowania semestr drugi. Wykład trzeci

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy Programowania semestr drugi. Wykład trzeci"

Transkrypt

1 1. Kolejki Wykład rzeci Kolejka jes, podobnie jak sos, absrakcyjn ą srukur ą danyc opar ą na liście liniowej. Elemeny kolejki e ż s ą połączone w lis ę, ale inaczej ni ż w sosie przebiegają operacje dodawania i usuwania elemenów z ej lisy. Isnieje kilka odmian kolejek. W najprosszej dodawanie i usuwanie elemenów jes zorganizowane według zasady FIFO (ang. Firs In Firs Ou) pierwszy nadszed ł, pierwszy wycodzi. Elemeny dodawane s ą do kolejki na jej końcu, naomias usuwane s ą z jej począku. Mówiąc lub pisząc kolejka mamy najczęściej na myśli opisan ą wyżej srukur ę. Oprócz niej isniej ą równie ż kolejki dwusronne, w kóryc elemeny możemy dodawać i usuwa ć po obu sronac kolejki. Wśród yc kolejek możemy wyróżni ć kolejki o ograniczonym wejściu, w kóryc operacja dodawania doyczy ylko jednego końca kolejki, a operacja usuwania obu, oraz kolejki o ograniczonym wyjściu, w kóryc operacja usuwania doyczy ylko jednego końca kolejki, a operacja dodawania obu końców. Dalsze rozważania będ ą doyczyły ylko kolejki FIFO. 2. Implemenacja kolejki w oparciu o lis ę liniową Typ pojedynczego elemenu kolejki (yp bazowy kolejki) będzie określony ak samo jak yp bazowy sosu 1 : ype wskaznik=^elemen; elemen=record :ineger; nex:wskaznik; Aby wygodnie korzysa ć z kolejki wprowadza si ę dwie zmienne wskaźnikowe ead (po polsku głowa) i ali (po polsku ogon), kóre wskazuj ą odpowiednio na pierwszy i na osani elemen kolejki. Mając określony yp elemenu i obie zmienne wskaźnikowe należy jeszcze określi ć operacje, kóre będ ą na ej kolejce wykonywane. Podobnie jak w przypadku sosu yc operacji może by ć kilka, jednak uaj zosan ą omówione dwie najważniejsze wsawienia elemenu do kolejki (ang. enqueue) i usunięcia elemenu z kolejki (ang. dequeue) oraz dodakowo operacja wyświelenia warości pola dane wszyskic elemenów należącyc do kolejki. Procedura enqueue posiada rzy paramery. Przez dwa pierwsze przekazywane s ą wskaźniki odpowiednio na pierwszy i osani elemen kolejki, naomias poprzez rzeci przekazywana jes waro ść, kór ą ccemy umieści ć w elemencie. Procedura a posiada równie ż zmienn ą lokaln ą, kóra będzie wskazywała na elemen kolejki, kóry zosanie w niej uworzony. Proces worzenia nowego elemenu dokonywany jes w wierszac 5 7. Najpierw przydzielona jes, za pomoc ą procedury new, pami ęć na en elemen. Poniewa ż nowe elemeny dodawane s ą na końcu kolejki, o ic pole wskazujące na kolejny elemen powinno mie ć waro ść 2. Waro ść a nadawana jes emu polu w wierszu 7. Jeżeli procedura dopiero worzy pierwszy elemen kolejki, o nie może go doda ć do jej końca, poniewa ż kolejka nie isnieje. Aby swierdzi ć, czy pierwszy elemen kolejki isnieje wysarczy sprawdzi ć, czy wskaźnik na pierwszy elemen nie jes równy, jeśli ak, o kolejka isnieje i można do niej doda ć kolejny elemen (wiersze 9 12), jeśli nie należy uworzony elemen porakowa ć ak, jakby mia ł by ć o pierwszy elemen ej kolejki (wiersze 14 17). Można o zilusrowa ć nasępującym rysunkiem: 1 procedure enqueue(,:wskaznik; a:ineger); 2 3 :wskaznik; 4 1. Tworzony jes pierwszy elemen kolejki 1. Przed wykonaniem wiersza Po wykonaniu wiersza 10 5 new(); 6 ^.:=a; 7 ^.nex:=nil; 3. Po wykonaniu wiersza if =nil en 9 2. Dodawany jes kolejny elemen do kolejki 1. Przed wykonaniem wiersza :=; 11 :=; 12 end 2. Po wykonaniu wiersza else 14 nex 15 ^.nex:=; 16 :=^.nex; Po wykonaniu wiesza 16 nex 18 1 Zmiana nazwy pola przecowującego wskaźnik na nasępny elemen nie ma u większego znaczenia. 2 Ta waro ść oznacza, że za ym elemenem nie ma ju ż innyc elemenów. 1

2 Wyjaśnienia wymaga wiersz szesnasy procedury: poniewa ż we wcześniejszym wierszu zapisaliśmy adres nowego elemenu w polu nex osaniego elemenu kolejki, o elemen powinien zosa ć eraz elemenem osanim kolejki. Aby ak było musi na niego wskazywa ć wskaźniki. Wysarczy mu więc nada ć waro ść ak ą, jaka jes w polu nex bieżącego elemenu. Możemy równie ż en wiersz zasąpi ć insrukcj ą :=; Procedura prinqueue drukuje zawaro ść kolejki na ekran moniora: 1 procedure prinqueue(:wskaznik); 2 3 wile <> nil do 4 5 wrie(^.,#32); Procedura a pobiera przez paramer wskaźnik na pierwszy elemen kolejki. Jes on przekazywany przez waro ść, aby można było posługiwa ć si ę paramerem wewnąrz procedury, nie zmieniając przy ym warości zmiennej jaka będzie za niego podsawiona. W wierszu 5 wypisywana jes zawaro ść pola bieżącego elemenu, a w wierszu 6 wskaźnikowi nadawana jes waro ść, jaka jes przecowywana w polu nex bieżącego elemenu, dzięki czemu będzie wskazywa ł na kolejny elemen w kolejce. Te dwie insrukcje zaware s ą w pęli wile, kóra kończy si ę w momencie uzyskania przez zmienn ą wskaźnikow ą warości. 6 :=^.nex; 7 8 wrieln; 9 Procedura dequeue usuwa elemen z kolejki: 1 procedure dequeue( :wskaznik; a:ineger); 2 3 emp:wskaznik; 4 5 emp:=^.nex; 6 a:=^.; 7 dispose(); Procedura a ma dwa paramery: pierwszy jes wskaźnikiem na pierwszy elemen kolejki, a przez drugi procedura zwraca waro ść zapisan ą w ym elemencie ( ę procedur ę można równie ż zapisa ć jako funkcj ę, lub procedur ę, kóra nic nie zwraca). W procedurze jes akże zadeklarowana lokalna zmienna wskaźnikowa, kóra będzie wykorzysywana do zapamięywania adresu nasępnego elemenu w kolejce. Procedura dequeue usuwa pierwszy elemen znajdujący si ę w kolejce. W wierszu 5, w zmiennej emp zapamięywany jes wskaźnik na elemen znajdujący si ę u ż za pierwszym elemenem kolejki, nasępnie w wierszu 6 paramerowi a nadawana jes waro ść, kóra jes zapamięana w pierwszym elemencie, po czym w wierszu 7 zwalniana jes pami ęć przeznaczona na en elemen. Poniewa ż powinien wskazywa ć na począkowy elemen kolejki, a w ej cwili jes nim elemen znajdujący si ę za zwolnionym wcześniej elemenem, więc jego adres, zapamięany w zmiennej emp jes przepisywany do zmiennej. 8 :=emp; 9 3. Przykład Poniżej przedsawiono program, kóry pobiera od użykownika pewn ą liczb ę warości całkowiyc (ypu ineger ) i zapisuje je w kolejce, a nasępnie wypisuje je na ekran oraz likwiduje kolejk ę, wypisując ponownie zapisane w niej liczby: program queue; uses cr; ype wskaznik=^elemen; elemen=record :ineger; nex:wskaznik; ead,ail:wskaznik; ne,nu:ineger; procedure enqueue(,:wskaznik; a:ineger); :wskaznik; 2

3 new(); ^.:=a; ^.nex:=nil; if =nil en :=; :=; end else ^.nex:=; :=^.nex; procedure prinqueue(:wskaznik); wile <> nil do wrie(^.,#32); :=^.nex; wrieln; procedure dequeue( :wskaznik; a:ineger); emp:wskaznik; emp:=^.nex; a:=^.; dispose(); :=emp; wrieln('dosępna pami ęć: ',MemAvail); wrieln('ile elemenów umieści ć w kolejce?'); readln(ne); wile ne>0 do wrieln('podaj waro ść elemenu: '); readln(nu); 3

4 enqueue(ead,ail,nu); dec(ne); wrieln('dosępna pami ęć: ',MemAvail); wrieln('w kolejce umieszczono nasępujące elemeny: '); prinqueue(ead); wrieln('a eraz niszczymy kolejk ę:'); wile ead<>nil do dequeue(ead,nu); wrieln(nu); wrieln('dosępna pami ęć: ',MemAvail); end. 4. Implemenacja kolejki za pomoc ą ablicy W ym podpunkcie zosanie przedsawiony program, kóry buduje kolejk ę w oparciu o ablic ę. Pojemno ść akiej kolejki jes ograniczona rozmiarem ablicy, niemniej jednak waro zapozna ć si ę z jej działaniem, gdy ż rozwiązany jes u problem kopiowania elemenów ablicy, jeśli usuwany jes elemen z kolejki. Przedsawiona implemenacja nazywa si ę cykliczn ą implemenacj ą ablicow ą kolejki. Na ej samej zasadzie działa bufor klawiaury w BIOSie. W ej implemenacji jeden elemen ablicy jes zawsze niewykorzysany. Zaprezenowane w programie procedury zosały zaczerpnięe z książ ki Alfreda V. Ao, Jona E. Hopcrofa i Jeffrey'a D. Ullmana Algorymy i srukury danyc : program abqueue; uses cr; cons maxleng = 20; Funkcja addone zwiększa przekazan ą jej waro ść o jeden modulo liczba elemenów w ablicy. Wskaźniki ead i ail zosały zasąpione zmiennymi indeksowymi firs i las. Procedura makenil usuwa wszyskie elemeny z kolejki, czyli j ą likwiduje. Funkcja empy zwraca waro ść rue, jeśli w kolejce nie ma żadnyc elemenów, w przeciwnym przypadku zwraca waro ść false. Funkcja firsone zwraca warość pierwszego elemenu z kolejki. ype queue = record elemens: array[1..maxleng] of ineger; firs, las:bye; qu:queue; ne:bye; nu:ineger; funcion addone(i: bye):bye; addone := i mod maxleng + 1; 4

5 procedure makenil( q:queue); q.firs:=1; q.las:=maxleng; funcion empy(cons q:queue):boolean; if addone(q.las) = q.firs en empy:=rue else empy:=false; funcion firsone(cons q:queue):ineger; firsone:=-maxin; if empy(q) en exi else firsone:=q.elemens[q.firs]; procedure enqueue( q:queue; a:ineger); if addone(addone(q.las)) = q.firs en exi else q.las:=addone(q.las); q.elemens[q.las]:=a; procedure dequeue( q:queue); if empy(q) en exi else q.firs:=addone(q.firs); makenil(qu); wrieln('ile elemenów umieści ć w kolejce: '); readln(ne); wile ne>0 do readln(nu); enqueue(qu,nu); dec(ne); 5

6 wrieln('elemeny umieszczone w kolejce: '); wile no empy(qu) do nu:=firsone(qu); dequeue(qu); wrie(nu,#32); end. 5. Tesowanie niekóryc operacji srukury dynamicznej Tworzenie oprogramowania, kóre korzysa ze zmiennyc i srukur dynamicznyc jes dosy ć złożonym zajęciem, podczas kórego można popełni ć wiele błędów. Znajdywanie i usuwanie akic userek jes bardzo uciążliwe ze względu na carakerysyk ę zmiennyc dynamicznyc. Isnieje jednak sposób, aby przeesować operacje na srukurac dynamicznyc, kóre nie przydzielaj ą, ani nie zwalniaj ą pamięci, przy pomocy zmiennyc saycznyc. Kolejk ę FIFO można zbudować z elemenów będącyc zmiennymi lokalnymi lub globalnymi, ale wskazującymi na siebie. Odpowiednie warości polom wskaźnikowym poszczególnyc elemenów można nada ć za pomoc ą lub funkcji addr. Tak uworzone kolejki nie maj ą zazwyczaj zby wielu elemenów, ale dzięki nim możemy przeesowa ć, czy operacja działa poprawnie, zanim zasosujemy j ą do kolejki worzonej dynamicznie i zaryzykujemy powsanie wycieków pamięci. Rozwiązanie o można zasosowa ć nie ylko do kolejek FIFO, ale akże do innyc absrakcyjnyc srukur danyc, kóre zosan ą omówione na nasępnyc wykładac. Poniżej znajduje si ę program, kóry pozwala sprawdzi ć działanie procedury prinqueue na kolejce saycznej składającej si ę z rzec elemenów (zmienne globalne a, b i c ). program esowanie; uses cr; ype wskaznik = ^elemen; elemen = record :ineger; nex:wskaznik; ead:wskaznik; a,b,c:elemen; procedure prinqueue(:wskaznik); wile <>nil do wrie(^.,#32); :=^.nex; wrieln; 6

7 a.:=1; b.:=2; c.:=3; prinqueue(ead); end. Do uworzenia kolejki saycznej zosa ł wykorzysany en sam yp elemenu, kóry służy do worzenia kolejki dynamicznej, jednakże zamias zmiennyc dynamicznyc ypu wskaznik zosały uworzone rzy zmienne rekordowe ( a, b i c ) ypu elemen, będące zmiennymi globalnymi. Poniewa ż procedura prinqueue przyjmuje przez paramer ylko wskaźnik na pierwszy elemen kolejki, o zamias dwóc wskaźników do obsługi kolejki zosa ł zadeklarowany ylko jeden ( ead ). W bloku głównym programu, inicjalizowane s ą poszczególne elemeny kolejki, j. w ic polac zapisywane s ą liczby (odpowiednio: 1, 2 i 3) oraz w polac wskaźnikowyc zapisywane s ą adresy elemenów na kóre będ ą one wskazywa ć. Elemen a będzie wskazywa ł na b, a en będzie wskazywa ł na c. Polu nex elemenu c nie rzeba nadawa ć warości, gdy ż jes on zmienn ą globaln ą i w związku z ym o pole ju ż ma ak ą waro ść. Do wskaźnika ead zapisywany jes adres pierwszego elemenu kolejki ( a ). Ten wskaźnik przekazywany jes wywoływanej procedurze prinqueue. Jeżeli jes ona napisana poprawnie, o na ekranie ujrzymy liczby 1, 2 i 3 rozdzielone znakami spacji. Gdyby było inaczej, o nie zobaczymy żadnej liczby, lub będzie kórej ś brakowało. 6. Uwagi końcowe Niekórzy programiści deklaruj ą wskaźniki ead i ali jako pola rekordu, co może uławia ć zarządzanie nimi. Dosy ć częso, aby uprości ć działanie i kod podprogramów obsługującyc kolejki, na począku programu worzy si ę pojedynczy elemen, kóry nie jes prawdziwym elemenem kolejki, ale arap ą. Dzięki niemu nie rzeba wprowadza ć do podprogramów kodu obsługującego przypadki, kiedy kolejka nie isnieje. Ten elemen nazywa si ę warownikiem, a kolejk ę kolejką z warownikiem. To rozwiązanie można zasosowa ć równie ż w przypadku sosu. W kodzie programu worzącego dynamicznie elemeny kolejki nie jes sprawdzana poprawno ść przydziału pamięci 3. W przypadku środowiska Turbo Pascal należałoby najpierw nada ć zmiennej lokalnej z procedury enqueue waro ść, a nasępnie, po wykonaniu procedury new sprawdzi ć, czy ak ą ona nie pozosała. Procedura new ze środowiska Free Pascal sama nadaje waro ść przekazanemu jej przez paramer wskaźnikowi, zaem można pomin ąć krok inicjalizacji zmiennej lokalnej, a jedynie sprawdzi ć, czy po wywołaniu procedury new nie ma ona warości. 3 Ta uwaga doyczy akże programów zaprezenowanyc na poprzednim wykładzie, kóry rakowa ł o sosie. 7

Badanie funktorów logicznych TTL - ćwiczenie 1

Badanie funktorów logicznych TTL - ćwiczenie 1 adanie funkorów logicznych TTL - ćwiczenie 1 1. Cel ćwiczenia Zapoznanie się z podsawowymi srukurami funkorów logicznych realizowanych w echnice TTL (Transisor Transisor Logic), ich podsawowymi paramerami

Bardziej szczegółowo

Rozdział 4 Instrukcje sekwencyjne

Rozdział 4 Instrukcje sekwencyjne Rozdział 4 Insrukcje sekwencyjne Lisa insrukcji sekwencyjnych FBs-PLC przedsawionych w niniejszym rozdziale znajduje się w rozdziale 3.. Zasady kodowania przy zasosowaniu ych insrukcji opisane są w rozdziale

Bardziej szczegółowo

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

Bardziej szczegółowo

WYKORZYSTANIE STATISTICA DATA MINER DO PROGNOZOWANIA W KRAJOWYM DEPOZYCIE PAPIERÓW WARTOŚCIOWYCH

WYKORZYSTANIE STATISTICA DATA MINER DO PROGNOZOWANIA W KRAJOWYM DEPOZYCIE PAPIERÓW WARTOŚCIOWYCH SaSof Polska, el. 12 428 43 00, 601 41 41 51, info@sasof.pl, www.sasof.pl WYKORZYSTANIE STATISTICA DATA MINER DO PROGNOZOWANIA W KRAJOWYM DEPOZYCIE PAPIERÓW WARTOŚCIOWYCH Joanna Maych, Krajowy Depozy Papierów

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

Układy sekwencyjne asynchroniczne Zadania projektowe

Układy sekwencyjne asynchroniczne Zadania projektowe Układy sekwencyjne asynchroniczne Zadania projekowe Zadanie Zaprojekować układ dwusopniowej sygnalizacji opycznej informującej operaora procesu o przekroczeniu przez konrolowany paramer warości granicznej.

Bardziej szczegółowo

ź Ź Ź ć ć ć ź ć ć ć ć ć Ź

ź Ź Ź ć ć ć ź ć ć ć ć ć Ź ź Ź Ź ć ć ć ź ć ć ć ć ć Ź ć ć ć ć ć ć ć ć Ż ć ć ć ć ć ć ć ć ć ć ć Ż Ż ć ć ć ć ć ć ć ć Ż ć ć ć ź ć Ź ć ć ć ć ć ć ć ć ć ź ć ć ć ć ć ć ć ć ć ć ć ć ć ć Ż ć ć ć ć Ż ć ć ć ć ć ć ć ć Ż ć Ł Ś Ś ć Ą Ę ć Ę ć Ż ć

Bardziej szczegółowo

Ą ŚĆ Ś Ś Ę ć

Ą ŚĆ Ś Ś Ę ć Ą Ę Ą Ą ŚĆ Ś Ś Ę ć ć ć ć ź ć ć ć ć ć ć ć ć Ą ć ć ć Ą Ś ć Ś ć ć Ą ć Ś Ś Ą Ś Ą ć ć Ą ź ź ć ć Ą ć ź ć Ą ć Ą ć ć ć ć ć ć ć ć ć ć ć ć ć ź ć ć Ś ć ć ć Ę Ą ć Ą ć ć ć ć ć ć Ł ź ź ź Ł Ł ć Ą ć ć ć ć ć Ą ć Ą ć Ą

Bardziej szczegółowo

ń

ń Ę Ę ż Ę ć ń ń Ą Ą Ę ń ć Ą ń ń Ś ń ń ń ż ń ń ż ń ż ż ż ż ż ż ć ć Ą ź Ę ń ż ż ż Ż ż Ą Ł ż Ę ż ż Ę ć ć Ą ż ż ć ć ż ć ż Ę ż ż ń Ż ż ć Ą ż Ęć ń ż ż ń ć ć Ę Ł ż Ę Ę ć ż ń Ł ż Ż ż Ż Ę ż Ź ż Ź ż ź Ę Ź ń ż Ź ż

Bardziej szczegółowo

ś ść ść ś ść ść ś ś ś ś ść ś ś ś ść ść

ś ść ść ś ść ść ś ś ś ś ść ś ś ś ść ść Ą Ł Ł Ł Ę Ł ś ś ś ś ść ść ść ść Ś ść ŚĆ ś ŚĆ ś ś ść ść ś ść ść ś ś ś ś ść ś ś ś ść ść ś ś ś Ż ś Ś ś Ś ść ś ś ś ś ś ś ś ś Ś ś ś ś ś Ł Ś ś ś ś Ś ś ś ź Ś ŚĆ ś ś ś ś ś ś Ś ś Ś ś ś ś ś ś ś ś Ś Ś ść ś ś ś ś

Bardziej szczegółowo

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

Bardziej szczegółowo

Lista 5 Typy dynamiczne kolejka

Lista 5 Typy dynamiczne kolejka Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Metody i języki programowania 1 Wprowadzenie Lista 5 Typy dynamiczne kolejka Kolejka jest jedną z podstawowych struktur umożliwiających

Bardziej szczegółowo

DYNAMICZNE MODELE EKONOMETRYCZNE

DYNAMICZNE MODELE EKONOMETRYCZNE DYNAMICZNE MODELE EKONOMETRYCZNE IX Ogólnopolskie Seminarium Naukowe, 6 8 września 005 w Toruniu Kaedra Ekonomerii i Saysyki, Uniwersye Mikołaja Kopernika w Toruniu Pior Fiszeder Uniwersye Mikołaja Kopernika

Bardziej szczegółowo

LABORATORIUM PODSTAWY ELEKTRONIKI Badanie Bramki X-OR

LABORATORIUM PODSTAWY ELEKTRONIKI Badanie Bramki X-OR LORTORIUM PODSTWY ELEKTRONIKI adanie ramki X-OR 1.1 Wsęp eoreyczny. ramka XOR ramka a realizuje funkcję logiczną zwaną po angielsku EXLUSIVE-OR (WYŁĄZNIE LU). Polska nazwa brzmi LO. Funkcję EX-OR zapisuje

Bardziej szczegółowo

Ś Ę Ą Ł Ś Ł Ł Ł Ł Ł Ś Ś Ł Ł Ł Ą Ł Ł Ł Ł Ł Ą Ą Ł

Ś Ę Ą Ł Ś Ł Ł Ł Ł Ł Ś Ś Ł Ł Ł Ą Ł Ł Ł Ł Ł Ą Ą Ł ę Ą Ł Ł Ś Ę Ą Ł Ś Ł Ł Ł Ł Ł Ś Ś Ł Ł Ł Ą Ł Ł Ł Ł Ł Ą Ą Ł Ł ś ś ś ś ę ś ę ę ś ść ść ść ę ę ę ść ę ś Ą Ą ś Ż ść Ź Ś Ą ę ść ść ść Ą ś Ż ę Ż Ń Ą Ł ś ę ś ę ś ś ę ś ś ść Ę Ś ś Ś ś Ś ś Ś ź ę ź ę ść ś ę Ę ś Ł ść

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

ć ć Ł ć Ź ć Ł ź ć Ś ć ć Ż Ł Ż ć ż ć

ć ć Ł ć Ź ć Ł ź ć Ś ć ć Ż Ł Ż ć ż ć Ł Ź Ł Ł ź ź Ż Ż ż Ż ć Ś ż ć ć Ę ć ć Ł ć Ź ć Ł ź ć Ś ć ć Ż Ł Ż ć ż ć Ł ć ć ć ć Ł Ż ć Ł ź ć Ś Ż Ż Ż ż Ż Ż ż Ż Ś Ż Ą Ł Ż ź Ż Ż Ż Ż Ż Ż Ś Ż Ż ż Ż Ż ż ż Ł Ż Ś Ż Ż Ż Ż Ż Ż Ś Ż Ę Ł Ź Ó ż Ę Ł ź Ł Ź Ż ż Ł Ż Ż ż

Bardziej szczegółowo

. Podstawy Programowania 2. Jednokierunkowa lista liniowa. Arkadiusz Chrobot. 28 marca 2017

. Podstawy Programowania 2. Jednokierunkowa lista liniowa. Arkadiusz Chrobot. 28 marca 2017 .. Podstawy Programowania 2 Jednokierunkowa lista liniowa Arkadiusz Chrobot Zakład Informatyki 28 marca 2017 1 / 57 Plan.1 Jednokierunkowa lista liniowa.2 Implementacja Typ bazowy i wskaźnik listy Tworzenie

Bardziej szczegółowo

ć Ą Ą Ł Ą

ć Ą Ą Ł Ą ź ź ź ć ć Ą Ą Ł Ą ź ź Ę Ą ź Ą ć Ł Ł Ą Ś Ę ź ź Ą Ą ź ć ć Ł Ę ć ź ć ć Ą Ć ź ź ź ć ć ć ć ć ź ź ć ć ź ć Ś Ę ć ć ć ć Ł ź ź ź ź ć Ę Ż ć ć ć ć Ę Ę ć Ę Ę ć ć Ę ć ć Ł ć Ć ć Ł Ł Ę Ę ć Ę ć ź ć Ń Ł Ł Ł Ś ć ć ć Ę Ś

Bardziej szczegółowo

Ę Ż Ż Ż ś ż Ż

Ę Ż Ż Ż ś ż Ż Ż ż ż ś ś ż ż ż ś ż Ż Ź ś Ź Ź ś ś ż ż ś ś ś ś Ż ś Ż Ę Ż Ż Ż ś ż Ż ś ś ś Ż Ą ż ś ś ź Ż ż ż ś ś ż Ł Ż ź ż ż ś ś Ę ż ż ż ż Ę ś ż ć ś Ę ż ś ż ś Ż ż ś ż ś ść ść Ę ż ż ż ś ż Ą Ż Ś ś Ą Ż ż ż ś Ę ś Ż ś Ń ś ż Ą

Bardziej szczegółowo

ć

ć Ł Ę Ę Ą ć Ś ć ć ź ź ć ć ź ź ź ć ć ź Ś ć ć ć ć ć Ś ć Ż ć ŚĆ Ć Ż Ś Ż Ś Ż ć Ś Ś Ś Ś Ś Ś Ś Ś Ś Ś Ś ć Ć ć Ć ć Ć ć Ś Ś Ś ć Ć Ż Ć ć ć Ś Ż Ż Ś Ć Ż ć ć ć ć ć Ś Ś Ś ć Ż Ż ć ć Ś Ś ć Ś Ż ć Ś ć ć ć Ż Ć ć ć Ż Ś Ż Ć

Bardziej szczegółowo

ż ć

ż ć Ł Ł ż ć ć ż ć Ą Ł ó ó ć ż ć ć ż ć Ę ć Ę ć ć Ę ć ć ć Ę ż ć ć ć Ś ć Ę Ę ż ż ć ż Ę ć ć Ę ż ż Ę Ł ć ć Ą Ę Ł ć ć ć ż ć Ę Ł Ść Ą Ę Ł ć ć ć ć Ę Ł Ść Ą Ę Ł ć ć ć Ł ć Ę Ę ć ć ć ć Ł Ść ć ć Ę Ę Ł Ś Ą Ś Ś Ł Ą Ą ż

Bardziej szczegółowo

ć ż ż ć Ą ż ż Ł ć Ż ż Ż Ż Ż Ż

ć ż ż ć Ą ż ż Ł ć Ż ż Ż Ż Ż Ż Ł Ę Ł ż Ż ć ż ż ć ż ż ć Ą ż ż Ł ć Ż ż Ż Ż Ż Ż ż ż Ł ż Ż Ł Ż Ż Ż Ż ż ż Ż Ż Ż ć ć ż ć ż ż ŻĄ ć ć ż Ż Ż ż Ż Ż ć Ż ź ć ż Ę Ż Ę Ż ć Ż Ż ć Ż ć ż Ż Ż ż Ż Ą Ż ć ż ć Ś Ą ż Ż Ż Ż ż Ż Ż Ż Ż Ż Ż Ż Ż ż ż Ż ż ż Ż Ż

Bardziej szczegółowo

Ć ć ć Ś ć

Ć ć ć Ś ć ź Ę Ę Ę ź ć ć ć Ć ć ć Ś ć ź ć ć ć Ć Ś ź Ś Ć ć Ż ź ć Ż Ś Ł ŚĆ ć ć ć Ć ć Ść ć Ż ć ć ć ć ć ć ć ć Ą ć ć Ś ć Ś ć Ż Ś ć Ó ć Ś ć Ś ć ć ć ć Ś ć ć Ś ć Ć Ż ć Ć ć ć ć ć Ę ć ź ć ć ć ć ć ź ć ć ć Ć ź ć Ż ć ć ć Ś ć Ć

Bardziej szczegółowo

ć Ś Ś Ść

ć Ś Ś Ść ć Ś Ś Ść Ś Ł Ź Ść ć ć ć Ść ć Ść Ś Ść ć ć Ś Ó Ś Ś ć ć Ś Ś Ó Ś Ś ć Ą ć Ś Ś Ł ć Ś Ś Ł ć Ą Ść ć Ś Ó Ź ć ć Ś Ś ć ć ć Ś Ść Ść Ś Ś Ś Ś Ś Ś Ś Ś Ś Ś ć Ą Ś Ą Ś Ś Ź Ź ć ć Ś Ę Ź Ł ź Ę Ę Ś Ś Ś Ę Ą Ź ć Ł Ś Ś Ś Ś ć Ś

Bardziej szczegółowo

ż Ę Ł Ą ż ż ż ź Ł ć Ł ż ć ć Ść ć ź ż ż Ź ć ć ć ć ć ć ć ż ż Ś Ś ż Ś ć ż ć ć Ł Ść ż Ś ż Ś ż ć ż ć ć ć ż ć ż ć ż ż ż ż ć ż ż Ł ć ż ć Ł ż Ź Ę ż ż Ś ć ż ż ć Ź Ś ż Ą ż ć Ś ć ć ż ć ć Ś ż Ź Ł ć ć ć Ć ć ć Ś ć ż

Bardziej szczegółowo

C e l e m c z ę ś c i d y s k u s y j n e j j e s t u ś w i a d o m i e n i e s o b i e, w o p a r c i u o r o z w a ż a n i a P i s m a Ś w.

C e l e m c z ę ś c i d y s k u s y j n e j j e s t u ś w i a d o m i e n i e s o b i e, w o p a r c i u o r o z w a ż a n i a P i s m a Ś w. 1. C e l s p o t k a n i a. C e l e m c z ę ś c i d y s k u s y j n e j j e s t u ś w i a d o m i e n i e s o b i e, w o p a r c i u o r o z w a ż a n i a P i s m a Ś w., ż e : B y d z b a w i o n y m

Bardziej szczegółowo

ć ć Ą ć Ęć Ó Ą ź ć ć ć ć ź ź Ą ć Ę ć ź ć ć ć ź ć ź ć ć ć Ś Ź ź

ć ć Ą ć Ęć Ó Ą ź ć ć ć ć ź ź Ą ć Ę ć ź ć ć ć ź ć ź ć ć ć Ś Ź ź ź Ó ć Ę ć Ó ć ć ć ć Ź ć ź ć ć Ź ć ć ć Ą ć Ęć Ó Ą ź ć ć ć ć ź ź Ą ć Ę ć ź ć ć ć ź ć ź ć ć ć Ś Ź ź ć Ą ć Ą ć ź ć ź ć Ę ć ć Ź ź Ę ć ć ć ć Ę Ę ź ć Ó ć ć ć ć ć ć ć ć ć Ź Ź ć ć ć ź Ę ć ć ć ć Ę Ąć ź Ź ć Ą ć ć

Bardziej szczegółowo

ć ć ż ć ź ż ż ź ź ŚĆ Ź ź ć Ź ź ź ź ź Ś Ą Ć Ć ć Ź ź

ć ć ż ć ź ż ż ź ź ŚĆ Ź ź ć Ź ź ź ź ź Ś Ą Ć Ć ć Ź ź Ł Ł ć ć Ś Ź Ć Ś ć ć ż ć ź ż ż ź ź ŚĆ Ź ź ć Ź ź ź ź ź Ś Ą Ć Ć ć Ź ź Ś Ć Ć Ś ź Ć ż ż ź ż Ć ć ż Ć Ć ż ż ź Ć Ś Ś ż ż ć ż ż Ć ż Ć Ś Ś Ź Ć Ę ż Ś Ć ć ć ź ź Ś Ć Ś Ć Ł Ś Ź Ś ć ż Ś Ć ć Ś ż ÓŹ Ś Ś Ź Ś Ś Ć ż ż Ś ż

Bardziej szczegółowo

Ę Ę ć ć Ę Ą Ę Ą Ę Ę Ę Ę Ę Ę ź Ę Ż Ę Ę Ę Ę ć Ę Ę ć Ę ć

Ę Ę ć ć Ę Ą Ę Ą Ę Ę Ę Ę Ę Ę ź Ę Ż Ę Ę Ę Ę ć Ę Ę ć Ę ć Ł ź Ą Ł Ę Ż Ę Ą ź ź Ę Ę Ę Ę ć ć Ę Ą Ę Ą Ę Ę Ę Ę Ę Ę ź Ę Ż Ę Ę Ę Ę ć Ę Ę ć Ę ć ź Ę Ę Ę ź Ę ć ź Ę ć Ę ź ć Ę ć Ę Ł ź Ę Ę Ę Ę Ę Ę Ę Ę Ę Ę ź Ę ć ź Ę ć Ę Ę Ę Ę ź Ę Ę ź ź ź ź ź Ę ź ź ź Ę ć ć Ń ź ź ź ź ź Ą ć ź

Bardziej szczegółowo

Ą Ź ć ć Ó Ó Ć Ć Ś

Ą Ź ć ć Ó Ó Ć Ć Ś Ł Ł ź Ę Ą Ą Ź ć ć Ó Ó Ć Ć Ś Ł Ą Ą Ó ć ć ć Ś Ś Ó Ś Ó Ó Ó Ó Ó Ó Ó ć Ść Ó Ć ć Ź Ó ć Ó Ó Ó Ś Ź Ó ć ć ć Ł Ć Ź Ó Ó Ś ć Ź ć ć Ć ć ć ć Ź Ó ć Ó Ó Ś Ź Ó Ó Ś Ó ć ć ć Ś Ś Ó Ó Ó ć Ź Ł Ó ć Ś Ś Ó Ó ć Ź ć Ź Ł Ó Ó ć Ź

Bardziej szczegółowo

ż ń Ł ń ń ż ż ż ż ż

ż ń Ł ń ń ż ż ż ż ż Ą ń ż ż ż Ś ż ń Ł ń ń ż ż ż ż ż ż Ś ń Ł ń ż ć ż ż ż ż Ł Ł ż ż ć ż ń Ź ć ż Ę ż ń ć Ź ż Ł ż Ł ż ż ć Ś ż ć ż Ą ż ń ż Ź ż Ź Ą ż ń ż ż ń ć ż ć ć ż ż ż ż ć ż ć Ś ż ń ż ż Ź ż ć ż Ę ż ć ż Ę Ą ń ż Ę Ź ż ć ć ć ć

Bardziej szczegółowo

ń ń ń ń ń Ż ć Ż Ł Ż Ł Ś ć ń Ś Ę Ż ć ń Ż Ż Ż Ą Ż Ż Ł Ż Ś

ń ń ń ń ń Ż ć Ż Ł Ż Ł Ś ć ń Ś Ę Ż ć ń Ż Ż Ż Ą Ż Ż Ł Ż Ś ź Ł ń Ż Ż ń Ą ć ń ń ń Ż Ł ń ń ń ń ń ń ń Ż ć Ż Ł Ż Ł Ś ć ń Ś Ę Ż ć ń Ż Ż Ż Ą Ż Ż Ł Ż Ś ń Ę Ę ń ń ć Ż Ż Ą Ą Ż ć ć ń ć ć ń ć ń ń Ż Ż ń Ż Ż Ż ń Ź Ż Ż Ę ń Ł ń Ś Ł Ż ń ń Ś ń ć Ż Ż Ż Ę Ł Ż ń ń Ż ń Ą Ż ń Ż Ż ń

Bardziej szczegółowo

ć ć ź ć ć ć Ść ć ź ź ź ć ź Ą ź

ć ć ź ć ć ć Ść ć ź ź ź ć ź Ą ź ć ć ć ź ć ć ć ć ź ć Ż ź ź ć ć ź ć ć ć Ść ć ź ź ź ć ź Ą ź ć ć ć ć ć ć ź ź Ż ć ć ć ć ć Ś ć ć Ź ć Ś ź ć ź ć ź ć ź ć ź Ź ć ć Ś ź ć ć ź Ć ć ź Ó Ż ć ć ź Ś ź ź ć ć ć ź ć ć ć ć ć ć ć ź ź ć ć ć Ś Ć Ó ź ć ź ć ć

Bardziej szczegółowo

Ś Ż Ó Ś ż Ó ć ź ż ż Ą

Ś Ż Ó Ś ż Ó ć ź ż ż Ą Ś ż Ż Ż Ś Ż Ó ż ż ż Ą Ś Ż Ó Ś ż Ó ć ź ż ż Ą Ą Ó ż ż Ó Ś Ż Ó ż ż ż Ż Ź ź Ć Ó ż Ż ć Ż ż Ś ć Ś Ś Ż Ą Ż Ż Ó Ż Ż Ś Ż Ż Ź Ż Ż Ż Ę Ś Ż Ż Ś Ó Ż Ż ż Ą Ż Ą Ż Ś Ś ć Ź ć ć Ó ć Ś Ą Ó Ó ć Ż ż Ż Ó ż Ś Ś Ó Ś Ż Ż Ż Ż Ż

Bardziej szczegółowo

ż

ż ż ż ż ń Ł Ń Ś Ę ż Ą ż ż ż Ż ż Ę ń ż ż ż Ą Ą ż Ą ń ż ń ć ż ć ć Ę Ą ż Ń Ę Ę Ę ż ź ż ż ć ż ż ć ć Ę Ą ż Ę ż ć ż ć ż Ę Ą ż Ę Ę Ę ż Ę ż ż ż Ż ż ć ż ń ć ń ż ż ż Ą Ę Ą ń ń ń ń ń ż Ą ć ż Ź ż ć Ą Ż ż Ś Ą ż Ą Ą ż

Bardziej szczegółowo

Ż Ź Ż ż Ś Ś Ź Ż Ż Ż Ż Ż ć ć Ż

Ż Ź Ż ż Ś Ś Ź Ż Ż Ż Ż Ż ć ć Ż ż Ż Ź Ż ż Ś Ś Ź Ż Ż Ż Ż Ż ć ć Ż ć Ż Ę ż Ż Ź Ź ż Ż Ż ć Ż ż ć ż ć Ż Ż Ż ż Ż Ń ż Ż Ż ż ż ż ć ć Ż ć Ź ż ż Ź ż ć ż ć Ę ć ż Ł Ż ż ż ć ć Ż Ż ż Ż ż Ż ć Ż Ż ć Ż ż Ż Ż ć ć ć ć Ę ż ż ż Ę ź ż Ź Ź ż Ż Ń ć Ż Ź Ż Ż

Bardziej szczegółowo

Podstawy Programowania 2 Jednokierunkowa lista liniowa. Plan. Jednokierunkowa lista liniowa. Jednokierunkowa lista liniowa. Notatki. Notatki.

Podstawy Programowania 2 Jednokierunkowa lista liniowa. Plan. Jednokierunkowa lista liniowa. Jednokierunkowa lista liniowa. Notatki. Notatki. Podstawy Programowania 2 Jednokierunkowa lista liniowa Arkadiusz Chrobot Zakład Informatyki 26 marca 2019 1 / 57 Plan Jednokierunkowa lista liniowa Implementacja Typ bazowy i wskaźnik listy Tworzenie listy

Bardziej szczegółowo

Ł Ś Ł Ś ć ć ć ź Ę ć ć ź ć ć ć ć ć Ę ć ć

Ł Ś Ł Ś ć ć ć ź Ę ć ć ź ć ć ć ć ć Ę ć ć Ś Ź Ś Ś Ś Ę Ł Ś Ł Ś ć ć ć ź Ę ć ć ź ć ć ć ć ć Ę ć ć ć ź ć Ę ć ć ź Ę Ę ć Ę ć ć Ć ć ć ć ć Ę ć Ć ź ć ź Ą Ą ź Ę Ę ć ć ć ć ć Ę Ó Ż Ę Ę Ó Ś Ó ć ć Ż ć Ś Ś ć ć Ś Ś Ś Ś Ś ć Ś ć ź Ę Ę Ę ź Ą Ś ć Ą Ę Ś ź ć Ó ć Ę

Bardziej szczegółowo