Dynamiczne struktury danych: listy
|
|
- Ignacy Mazurkiewicz
- 8 lat temu
- Przeglądów:
Transkrypt
1 Dynamiczne struktury danych: listy Mirosław Mortka Zaczynając rogramować w dowolnym języku rogramowania jesteśmy zmuszeni do oanowania zasad osługiwania się odstawowymi tyami danych. Na rzykład w języku Pascal osługujemy się m.in. tyami: integer, real, string, array, record it. Zmienne zadeklarowane za ich omocą nazywamy zmiennymi statycznymi. Ich zastosowanie łączy się z uzyskaniem wielu zalet, choćby sójność danych czy szybki dostę do elementów. Posiadają jednak bardzo istną wadę, mocno ograniczającą możliwość ich zastosowania: musimy z góry określić wielkość i ilość elementów. Jednakże wiele zagadnień charakteryzuje się zmiennością struktur danych odczas rocesu obliczeniowego. W tym wyadku z omocą rzychodzą nam zmienne dynamiczne. Niewątliwą korzyścią wynikającą ze stosowania tych tyów jest możliwość określenia wielkości zajmowanej rzez nich amięci doiero w trakcie trwania rogramu. Taka deklaracja struktury danych owoduje jednak, iż komilator nie jest w stanie określić konkretnych adresów dla oszczególnych zmiennych ani rzydzielić na nie amięci. W konsekwencji zmuszeni jesteśmy do dynamicznego rzydzielania amięci, tzn. rzydzielania amięci zmiennym w momencie użycia ich rzez rogram (utworzenia nowej zmiennej w trakcie wykonania rogramu) zamiast rzydzielania im stałej ilości amięci odczas translacji rogramu. Komilator rzydziela wtedy stałą ilość amięci na adres zmiennej umieszczanej dynamicznie w amięci zamiast na samą zmienną. Zmienne, które zawierają adres i tym samym wskazują ołożenie innego obiektu lub zmiennej w amięci, nazywamy wskaźnikami. W języku Pascal zmienną wskaźnikową oznaczamy ^. Korzystając z dynamicznych struktur danych możemy oerować na listach, drzewach czy grafach. Listy jednokierunkowe Najrostszym sosobem ozwalającym gruować dowolną ilość danych (ograniczoną tylko rozmiarem dostęnej amięci) jest lista jednokierunkowa (atrz rys. 1). W tym rzyadku każdy element jest ojedynczym rekordem składającym się z co najmniej dwóch ól: ola wartości i wskaźnika do nastęnego elementu listy. Wartością wskaźnika umożliwiającą jednoznaczne zidentyfikowanie ostatniego elementu listy w języku Pascal jest secjalna wartość nil (NULL w C/C++). o Rys. 1. Przykład listy jednokierunkowej
2 W rzyadku list jednokierunkowych nie jest możliwy bezośredni dostę do dowolnego jej elementu. Ponieważ każdy element osiada jedynie wskaźnik do jego nastęnika, więc dotarcie do n-tego elementu listy wymaga wcześniej rzejścia rzez n-1 orzedników. Oto najrostsze oeracje, jakie możemy wykonać na liście jednokierunkowej: wstawienie elementu na zątek listy, wstawienie elementu na koniec listy, usunięcie ierwszego elementu listy, odczyt ierwszego elementu listy, dostę do dowolnego elementu listy. W zależności od wyboru odstawowych oeracji wykonywanych na liście możemy wyróżnić dwa odstawowe rodzaje struktur imlementowanych na odstawie list jednokierunkowych: stos: możliwe jest wstawianie, usuwanie i odczyt ierwszego elementu listy wierzchołka; tego tyu struktura nazywana jest LIFO 1 (rys. 2), kolejka (ojedyncza, jednokierunkowa): wstawianie elementu na koniec listy, odczyt i usuwanie elementu ierwszego struktura tyu FIFO 2 (rys. 3). wierzchołek wstawianie, usuwanie, odczyt dno stosu Rys. 2. Struktura stosu kon usuwanie, odczyt wstawianie Rys. 3. Struktura kolejki 1 ang. last in, first out 2 ang. first in, first out 2
3 Podstawowe oeracje dotyczące listy jednokierunkowej omówimy na odstawie zadania 1. Zadanie 1. Naisać rogram odwracający lik tekstowy lik.wej. Wynikiem wykonania rogramu ma być drugi lik tekstowy lik.wyj. Pierwszym wierszem liku wyjściowego ma być ostatni wiersz liku wejściowego, drugim rzedostatni itd. Założyć, że wiersze nie rzekraczają 255 znaków 3. Rozwiązanie Definiowanie listy w Pascalu Zdefiniujmy ty elementów listy wierszy liku. Każdy taki element zawiera ciąg znaków hodzący z kolejnej linii liku tekstowego oraz wskaźnik do elementu nastęnego. W języku Pascal definicja ta będzie miał nastęujący wygląd: tye PElem = ^TElem; (1) TElem = record (2) s: string; nast: ^TElem; (3) Zaczynamy od zdefiniowania tyu wskaźnikowego PElem do danych tyu TElem (1). Druga definicja (2) narzuca strukturę każdej zmiennej tyu TElem składającą się z dwóch ól: s zawierającego linię tekstu liku oraz nast zawierającego wskaźnik do nastęnego elementu. ^ to symbol wskaźnika. Deklarując zmienną tyu PElem, używamy zaisu ^ do wskazania rekordu tyu TElem. Wśród zmiennych globalnych musimy zadeklarować zmienną tyu PElem wskazującą na zątek listy wykorzystywanej w zadaniu. var : PElem; Uwaga: Składnia języka Pascal zabrania użycia nazwy, której znaczenie nie zostało wcześniej zdefiniowane. Definicja tyu wskaźnikowego wykorzystującą nazwę obiektu wskazywanego jest jedynym wyjątkiem od tej reguły. 3 K.Jakubczyk: Turbo Pascal i Borland C++. Przykłady., Helion, Gliwice2002, s
4 Dodawanie nowego elementu na zątek listy Wstawienie elementu na zątek listy wymaga wykonania dwóch oeracji rzyisania wartości zmiennym tyu wskaźnikowego: a) nadanie olu nast wskazywanemu rzez wskaźnik wartości adresu rzechowywanego rzez wskaźnik do zątku listy (rys. 4a); ^.nast:= ; b) uaktualnienie wartości zmiennej orzez rzyisanie jej wartości wskaźnika do elementu (element zostaje umieszczony na ierwszym miejscu listy rys. 4b). := ; a) b) Rys. 4. Dodanie elementu na zątek listy Wstawianie elementu na zątek listy możliwe jest wówczas, gdy element istnieje (został wcześniej utworzony). W rzeciwnym wyadku musimy utworzyć nowy element i uaktualnić jego ola (nadać im wartości zątkowe). Procedurą rzydzielającą amięć oraz generującą wskaźnik do nowego elementu jest olecenie new. new(); ^.s:= Początkowa wartość ; Procedura wczytującą kolejne linie tekstu i umieszczającą je na zątku listy będzie zatem miała nastęujący wygląd: 4
5 rocedure UtworzListe; var : PElem; {wskaźnik omocniczy} f: text; {zmienna rerezentującą lik tekstowy} s: string; {zmienna omocnicza do wczytywania linii tekstu z liku} Assign(f,'lik.wej'); {otworzenie liku} Reset(f); {do odczytu} :=nil; {zątkowo lista jest while not Eof(f) do ReadLn(f,s); usta} {doóki nie został osiągnięty koniec liku} {czytaj linię tekstu z liku} new(); {utwórz nowy element } ^.s:= s; ^.nast:= ; := ; Close(f); {rzyisz do ola s wskazywanego rzez łańcuch s} {wstaw element} {na zątek listy } {zamknij lik} Każda nowa wczytana linia tekstu zostaje wstawiona na zątek listy. W wyniku tej oeracji uzyskujemy strukturę listową zawierająca w ierwszym elemencie ostatnią linię tekstu znajdującego się w liku, w drugim rzedostatnią it. Wystarczy teraz wyisać kolejne elementy listy do liku lik.wyj, aby nasze zadanie zostało omyślnie zakończone. Przeglądanie listy Zmienna rzechowuje adres ierwszego elementu listy w amięci. Nie możemy modyfikować jej wartości, gdyż wiązałoby się to z utratą informacji na temat ołożenia ierwszego elementu, a co z tym się wiąże również ozostałej części listy. Wrowadźmy więc zmienną omocniczą tyu PElem (wskaźnik do TElem) i z jej omocą dokonajmy rzeglądu elementów listy. Przeglądanie listy będzie rzebiegać w nastęujących etaach: a) zmienna wskazuje na zątek listy (rys. 5a); := ; b) wyisz ole s zmiennej wskazywanej rzez ; WriteLn(^.s); 5
6 c) rzejdź do kolejnego elementu (rys 5b); := ^.nast; d) owtarzaj unkt b), doóki nie osiągniesz końca listy (sygnalizowane rzez wartość nil). a) b) Rys. 5. Przeglądanie listy jednokierunkowej Zatem cała rocedura wyisywania listy do liku będzie wyglądać nastęująco: rocedure WyiszListe; var : PElem; {wskaźnik omocniczy} f: text; {zmienna rerezentującą lik tekstowy} Assign(f,'lik.wej'); {otworzenie liku} Rewrite(f); {do zaisu} :=; {wskazanie rzez while <>nil do WriteLn(f,^.linia); :=^.nast; Close(f); na zątek listy } {doóki nie został osiągnięty koniec listy} {wyisz linię tekstu do liku} {rzejdź do nastęnego elementu} {zamknij lik} 6
7 Usuwanie listy Dodając nowe elementy do listy zmuszeni byliśmy do dynamicznego rzydzielania im amięci rzy każdorazowym utworzeniu nowego elementu za omocą oeratora new. Przed zakończeniem działania rogramu obowiązkiem rogramisty jest zwolnienie urzednio rzydzielonego obszaru amięci. Do tego celu użyjemy standardowej rocedury disose. Zauważmy, że nie wolno nam bezośrednio usunąć zątkowego elementu listy, wskazywanego rzez, gdyż w takim wyadku utracilibyśmy wskaźniki do ozostałej części listy. Wykorzystamy zmienną omocniczą tyu PElem, aby beziecznie usunąć element z listy. Cała oeracja będzie miała nastęujący rzebieg: a) zmienna wskazuje na zątek listy (rys. 6a); := ; b) wskazuje na element nastęny (rys 6b); := ^.nast; c) usuń beziecznie element (rys 6c); disose (); d) owtarzaj unkt a), doóki nie osiągniesz końca listy (sygnalizowane rzez wartość nil). a) b) c) Rys. 6. Usuwanie elementu z listy jednokierunkowej 7
8 Prześledźmy treść rocedury usuwającą wszystkie elementy listy z amięci: rocedure UsunListe; var : PElem; wskaźnik omocniczy} while <>Nil do :=; :=^.nast; {doóki nie został osiągnięty koniec listy} { wskazuje na zątek listy} {rzejdź do nastęnego elementu} disose(); {usun element } Treść rogramu Główna część rogramu ma za zadanie wyłącznie wywołanie każdej z zadeklarowanych rzez nas rocedur: UtworzListe; WyiszListe; UsunListe; ReadLn; end. Zauważmy, że zadeklarowanie ola tyu string jest osunięciem dalece nieekonomicznym, gdyż każda linia tekstu zawiera różną ilość tekstu, rzy tym niezwykle rzadko (o ile w ogóle) osiąga maksymalną długość. Można zatem rozważyć również dynamiczny rzydział amięci dla oszczególnych łańcuchów za omocą rocedur GetMem oraz FreeMem. Ta modyfikację ozostawiam czytelnikowi. 8
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ółowoWskaźniki i struktury. Programowanie C, LA Anna Gogolińska
Wskaźniki i struktury Programowanie C, LA Anna Gogolińska Wskaźniki i struktury Jednym z ól struktury może być wskaźnik na zmienną tyu tej struktury. Deklaracja jest z użyciem formy: ty *. Poza tym olem,
Bardziej szczegółowoZASADY 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ółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć
Bardziej szczegółowoRysunek 1 Przykładowy graf stanów procesu z dyskretnymi położeniami.
Procesy Markowa Proces stochastyczny { X } t t nazywamy rocesem markowowskim, jeśli dla każdego momentu t 0 rawdoodobieństwo dowolnego ołożenia systemu w rzyszłości (t>t 0 ) zależy tylko od jego ołożenia
Bardziej szczegółowoObszar Logistyka. Rejestracja faktury zakupowej Rejestracja faktury zakupowej z pozycjami towarowymi. Instrukcja użytkownika
Obszar Logistyka Rejestracja faktury zakuowej Rejestracja faktury zakuowej z ozycjami towarowymi Instrukcja użytkownika 1 Sis treści SPIS TREŚCI... 2 NAWIGACJA PO SYSTEMIE... 3 1. Podstawowa nawigacja
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoĆwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych
Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)
Bardziej szczegółowoDIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0
Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoJanusz Górczyński. Prognozowanie i symulacje w zadaniach
Wykłady ze statystyki i ekonometrii Janusz Górczyński Prognozowanie i symulacje w zadaniach Wyższa Szkoła Zarządzania i Marketingu Sochaczew 2009 Publikacja ta jest czwartą ozycją w serii wydawniczej Wykłady
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Bardziej szczegółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoWstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Pliki Piotr Chrząstowski-Wachtel Pamięci zewnętrzne Pamięć wewnętrzna (RAM) jest jednorodna. Dostęp do każdej komórki jest szybki i kosztuje tyle samo W przypadku pamięci zewnętrznych
Bardziej szczegółowoPodstawy programowania 2. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoWykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe
Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;
Bardziej szczegółowoAda-95. Dariusz Wawrzyniak
Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki
Bardziej szczegółowoWykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1
Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin
Bardziej szczegółowoKiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
Bardziej szczegółowoLista 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ółowoLaboratorium z przedmiotu Programowanie obiektowe - zestaw 04
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Bardziej szczegółowoTemat: 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ółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Bardziej szczegółowoStruktury danych: stos, kolejka, lista, drzewo
Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 5
Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również
Bardziej szczegółowoMateriał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach
Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach 27 kwietnia 2012 Wiedząc, że deklarowanie typu rekordowego w języku C/ C++ wygląda następująco: struct element
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoZmienne i struktury dynamiczne
Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowo1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Bardziej szczegółowoPODSTAWY INFORMATYKI wykład 4.
PODSTAWY INFORMATYKI wykład 4. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE,
Bardziej szczegółowoWykład 1: Wskaźniki i zmienne dynamiczne
Programowanie obiektowe Wykład 1: Wskaźniki i zmienne dynamiczne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Podstawy programowania w C++ Wskaźniki 2 dr Artur Bartoszewski - Programowanie
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 1 rekordy z wyróżnikami Agata Półrola Wydział Matematyki UŁ 2005/2006 Egzamin z I roku - problemy Problemy z wczytywaniem danych: skip_line Problemy z obliczeniami: zerowanie
Bardziej szczegółowoLista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
Bardziej szczegółowoPLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0
PLIKI TEKSTOWE plik_liczb : file of integer; plik_znakow : file of char; plik_linii : text; deklaracja zmiennej plikowej Przykład sekwencji bajtów: 54 55 52 42 4F 20 50 41 53 43 41 4C 20 37 2E 30 0D 0A
Bardziej szczegółowoWykład 9: Polimorfizm i klasy wirtualne
Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm
Bardziej szczegółowo( n) Łańcuchy Markowa X 0, X 1,...
Łańcuchy Markowa Łańcuchy Markowa to rocesy dyskretne w czasie i o dyskretnym zbiorze stanów, "bez amięci". Zwykle będziemy zakładać, że zbiór stanów to odzbiór zbioru liczb całkowitych Z lub zbioru {,,,...}
Bardziej szczegółowoINSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};
INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 6 typy dostępu c.d Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Przykład wykorzystania typów dostępu zob. pakiet rodzajowy listapak
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoINFORMATYKA. Podstawy programowania w języku C. (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra
INFORMATYKA Podstawy programowania w języku C (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra INFORMATYKA Temat: Struktury dynamiczne Wykład 7 Struktury dynamiczne lista jednokierunkowa,
Bardziej szczegółowoJęzyk programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
Bardziej szczegółowo< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >
Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających
Bardziej szczegółowoBeStCAD - Moduł INŻYNIER 1
BeStCAD - Moduł INŻYNIER 1 Ścianki szczelne Oblicza ścianki szczelne Ikona: Polecenie: SCISZ Menu: BstInżynier Ścianki szczelne Polecenie służy do obliczania ścianek szczelnych. Wyniki obliczeń mogą być
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoProgramowanie i struktury danych. Wykład 4 Dr Piotr Cybula
Programowanie i struktury danych Wykład 4 Dr Piotr ybula Typ wska ź nikowy int* pointer; //wskaźnik do zmiennych typu int pozwala na dostęp do dowolnego miejsca pamięci (zmienne
Bardziej szczegółowoWykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe
Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych
Bardziej szczegółowoStruktury danych (I): kolejka, stos itp.
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania
Bardziej szczegółowoWykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
Bardziej szczegółowoPascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego
Pascal 1. Pliki tekstowe Przykład 1.1. Zapis do pliku tekstowego {deklaracja zmiennej tekstowej 'plik'} plik: text; {skojarzenie zmiennej plikowej 'plik' z plikiem na dysku (podajemy lokalizacje)} {tworzenie
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoDrzewa poszukiwań binarnych
1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie
Bardziej szczegółowo6 6.1 Projektowanie profili
6 Niwelacja rofilów 6.1 Projektowanie rofili Niwelacja rofilów Niwelacja rofilów olega na określeniu wysokości ikiet niwelacją geometryczną, trygonometryczną lub tachimetryczną usytuowanych wzdłuŝ osi
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby
Bardziej szczegółowoWstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel
Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Bardziej szczegółowoAbstrakcyjne struktury danych - stos, lista, drzewo
Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą
Bardziej szczegółowoWYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
Rekurencja - zdolność podprogramu (procedury) do wywoływania samego (samej) siebie Wieże Hanoi dane wejściowe - trzy kołki i N krążków o różniących się średnicach wynik - sekwencja ruchów przenosząca krążki
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Bardziej szczegółowoPRZESTRZENNE BAZY DANYCH WYKŁAD 2
PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie
Bardziej szczegółowoSystemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017
Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoFunkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
Bardziej szczegółowoAnaliza nośności pionowej pojedynczego pala
Poradnik Inżyniera Nr 13 Aktualizacja: 09/2016 Analiza nośności ionowej ojedynczego ala Program: Plik owiązany: Pal Demo_manual_13.gi Celem niniejszego rzewodnika jest rzedstawienie wykorzystania rogramu
Bardziej szczegółowoDiagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com
Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,
Bardziej szczegółowoWykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Bardziej szczegółowoWstęp do programowania. Listy. Piotr Chrząstowski-Wachtel
Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli
Bardziej szczegółowoPodstawowe struktury danych
Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym
Bardziej szczegółowoWykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
Bardziej szczegółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
Bardziej szczegółowoPodstawy Informatyki. Wykład 6. Struktury danych
Podstawy Informatyki Wykład 6 Struktury danych Stałe i zmienne Podstawowymi obiektami występującymi w programie są stałe i zmienne. Ich znaczenie jest takie samo jak w matematyce. Stałe i zmienne muszą
Bardziej szczegółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Bardziej szczegółowoPodstawy Programowania 2
Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoWstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
Bardziej szczegółowoZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS
ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS Autorzy Wydanie Data : : : Zespół SABUR Sp. z o.o. 3.00 Sierpień 2013 2013 SABUR Sp. z o. o. Wszelkie prawa zastrzeżone Bez pisemnej zgody firmy SABUR Sp. z
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoALGORYTMY OPTYMALIZACJI wyklad 3.nb 1. Wykład 3. Sformułujemy teraz warunki konieczne dla istnienia rozwiązań zagadnienia optymalizacyjnego:
ALGORYTMY OPTYMALIZACJI wyklad 3.nb 1 Wykład 3 3. Otymalizacja z ograniczeniami Sformułujemy teraz warunki konieczne dla istnienia rozwiązań zagadnienia otymalizacyjnego: g i HxL 0, i = 1, 2,..., m (3.1)
Bardziej szczegółowoWykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Bardziej szczegółowo1 Wskaźniki i listy jednokierunkowe
1 Wskaźniki i listy jednokierunkowe 1.1 Model pamięci komputera Pamięć komputera możemy wyobrażać sobie tak, jak na rysunku: Zawartość:... 01001011 01101010 11100101 00111001 00100010 01110011... adresy:
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoPascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
Bardziej szczegółowoALGORYTM STRAŻAKA W WALCE Z ROZLEWAMI OLEJOWYMI
JOLANTA MAZUREK Akademia Morska w Gdyni Katedra Matematyki ALGORYTM STRAŻAKA W WALCE Z ROZLEWAMI OLEJOWYMI W artykule rzedstawiono model wykorzystujący narzędzia matematyczne do ustalenia reguł oraz rozwiązań,
Bardziej szczegółowoKonwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoPierwsze kroki z easy Soft CoDeSys. 2009 Eaton Corporation. All rights reserved.
Pierwsze kroki z easy Soft CoDeSys Tworzenie prostego programu Rozpoczęcie pracy 2 Tworzenie prostego programu Wybór aparatu 3 Tworzenie prostego programu Wybór języka programowania Do wyboru jest sześć
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowoLekcja 6: Pascal. Procedura i funkcja
Lekcja 6: Pascal. Procedura i funkcja S. Hoa Nguyen 1 Materiał Książka: Programowanie w języku Pascal. Rozdział 9. Podprogramy Podprogramy - motywacja Skrócenie zapisu (wielokrotne powtórzenia tej samej
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoProgramowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika
Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued
Bardziej szczegółowo138 Forum Bibl. Med. 2011 R. 4 nr 1 (7)
Dr Tomasz Milewicz, Barbara Latała, Iga Liińska, dr Tomasz Sacha, dr Ewa Stochmal, Dorota Pach, dr Danuta Galicka-Latała, rof. dr hab. Józef Krzysiek Kraków - CM UJ rola szkoleń w nabywaniu umiejętności
Bardziej szczegółowoLaboratorium Metod i Algorytmów Sterowania Cyfrowego
Laboratorium Metod i Algorytmów Sterowania Cyfrowego Ćwiczenie 3 Dobór nastaw cyfrowych regulatorów rzemysłowych PID I. Cel ćwiczenia 1. Poznanie zasad doboru nastaw cyfrowych regulatorów rzemysłowych..
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowo