PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:

Slides:



Advertisements
Podobné prezentace
CIT Paměti Díl X.
Advertisements

Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
Programovací jazyk C++
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Programování 2 Cvičení 5.
10. Dynamické datové struktury
Fronta - a)Implementace s využitím statických struktur (pole) b)Implementace s využitím dynamických struktur (spojového seznamu) odebírá se ze začátku.
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmizace a programování Datové typy v Delphi - 05
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
ADT Strom.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
B-Strom.
Databáze Jiří Kalousek.
1 Termodynamika kovů. 2 Základní pojmy – složka, fáze, soustava Základní pojmy – složka, fáze, soustava Složka – chemické individuum Fáze – chemicky i.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Algoritmy a programovací techniky
Objektové programování
Jemný úvod do MATLABu © Leonard Walletzký, ESF MU, 2000.
Dynamická alokace, polymorfismus
Relační databáze.
Algoritmy vyhledávání a řazení
Vypracoval: Ondřej Dvorský Třída: VIII.A
Modelování a simulace MAS_02
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Další abstraktní datové typy
Abstraktní datové typy doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Datové typy a struktury
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
IB111 Programování a algoritmizace
Databázové modelování
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Návrh podle kontraktu - klasická metodika a moderní nástroje Tomáš Pitner Masarykova univerzita v Brně Fakulta informatiky
Real time jádro operačního systému Lukáš Hamáček.
Uživatelem definované typy Ing. Lumír Návrat  katedra informatiky, A 1018 
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Pokročilé architektury počítačů (PAP_06.ppt) Karel Vlček, katedra Informatiky, FEI VŠB Technická Univerzita Ostrava.
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
doc. RNDr. Zdeněk Botek, CSc.
České vysoké učení technické Fakulta elektrotechnická Datové typy, výrazy vstup, výstup Jazyk JAVA A0B36PRI - PROGRAMOVÁN Í v1.02.
Datové typy IB111: Datové typy. Data a algoritmizace jaká data potřebuji pro vyřešení problému? jak budu data reprezentovat? jaké operaci s nimi potřebuji.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
doc. RNDr. Zdeněk Botek, CSc.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Tento projekt je financován z Operačního programu Vzdělávání pro konkurenceschopnost prostřednictvím Evropského sociálního fondu a státního rozpočtu ČR.
Úvod do databází zkrácená verze.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Y36PJC Programování v jazyce C/C++
Vlastnosti souborů Jaroslava Černá.
Programovací jazyk C++
Y36PJC Programování v jazyce C/C++
Výukový materiál zpracován v rámci projektu
1. ročník oboru Mechanik opravář motorových vozidel
Abstraktní datové typy
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Programování 2. hodina RNDr. Jan Lánský, Ph.D.
Programování v jazyce C++
Abstraktní datové typy
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
Přednášky z distribuovaných systémů
ZAL – 7. cvičení 2016.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:

Datové struktury  Data používaná programy jsou v paměti uchovávána v tzv. datových strukturách.  Data lze reprezentovat různými datovými typy.  Pro efektivní práci s daty je nutné zvolit vhodnou datovou strukturu a odpovídající datový typ. Dělení datových struktur: Datové struktury děleny do dvou kategorií:  Základní datové struktury: Vyskytují se téměř ve všech programovacích jazycích. Za běhu programu nemění svůj rozsah.  Odvozené datové struktury: Nazývány jako abstraktní datové struktury. Často implementovány jako objekty. Za běhu programu mohou měnit svůj rozsah (tzv. dynamické datové struktury.)

Dělení do dvou skupin:  Základní datové struktury:  Proměnná (Variable).  Pole (Array).  Struktura (Structure).  Unie (Union)  Výčet (Enumeration)  Objekt (Object).  Odvozené datové struktury:  Seznam (List).  Strom (Tree).  Zásobník (Stack).  Fronta (Query).  Tabulka (Table).

Point *pP = (Point*) malloc(sizeof(Point)); (Java, C#, C++11)

(Prvky stejného datového typu => pole je HOMOGENNÍ datová struktura) V některých program. jazycích (Ruby) je MUTABILNÍ, u většiny má však naopak neměnný počet prvků, definovaný již při jeho deklaraci/definici.

- Atributy (tzv. členskými daty) (tzv. členskými funkcemi)

Jednosměrný s. Obousměrný s. Kruhový seznam

Fronta Kruhová fronta

Binární strom Ternární strom

 Neexistuje žádná „dokonalá“ datová struktura, která by byla ideální pro všechna použití. Různé datové struktury mají různé vlastnosti co se týká jejich očekávané časové a paměťové složitosti, náročnosti implementace v daném programovacím jazyce či konkrétním projektu a dalších vlastností. Pro konkrétní podmínky se tak často implementují specifické varianty.  Nejvíce náročné datové struktury jsou ty, které využívají rekurzivitu a vícerozměrná pole.

Abstraktní datový typ je implementačně nezávislá specifikace struktury dat s operacemi povolenými na této struktuře. Často struktury, jejichž rozsah (počet položek) se může během vykonávání programu měnit => ekvivalentní pojmy:  Abstraktní datové struktury  Dynamické datové struktury Používáme je tehdy, když nám základní typy přestávají stačit. Obvykle jsou implementovány v knihovnách nebo přímo v jazyce. Příklady implementace:  Balík tříd java.util  STL (Standard Template Library) - šablony v C++

Všechny ADT lze označit za kontejner Každý kontejner (v libovolném program.jazyce) by měl mít definovány tyto operace:  Vytvoření prázdného kontejneru (konstruktor, init)  Zjištění počtu uložených objektů (size)  Přístup k prvkům kontejneru (read, top, front,…)  Vložení objektu do kontejneru (insert,push)  Odstranění objektu z kontejneru (delete, pop, …)  Vymazání všech uložených objektů (clear)

 Dle počtu a vzájemného uspořádání složek  statické= nemění se  dynamické= mění se  Dle typu objektů uvnitř  homogenní= všechny stejného typu  nehomogenní (heterogenní) = různého typu  Zda existuje bezprostřední následník  lineární= existuje [např. pole, seznam,…]  nelineární= neexistuje [např. strom, tabulka,…]

I.

II.

III.

 P.Wróblewski, Algoritmy, Datové struktury a programovací techniky, Computer Press, Brno 2004  P.Töpfer, Algoritmy a programovací techniky, Prometheus, Havlíčkův Brod 1995  S.Kračmar, Programovací jazyk C, Vydavatelství ČVUT, Praha 2002  J.Keogh, Datové struktury bez předchozích znalostí, Computer Press, Brno 2006