Programovací jazyk C++

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Počítače a programování 1 Přednáška 13 Jiří Šebesta.
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 –
Přednáška 11 Jiří Šebesta
Programování 2 Cvičení 5.
1 Vnitřní řazení s využitím dynamických struktur Tvorba spojového seznamu je vcelku triviální záležitostí: a)Vytvořím prázdný seznam příkazem LIST:=nil.
10. Dynamické datové struktury
Spojové struktury Spojová struktura ( linked structure ):
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.
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Algoritmizace a programování
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.
8. přednáška typedef - preprocesor Studijní materiály najdete na adrese:
Datové struktury. 2 Co je datová struktura v C datový typ složený z jiných datových typů nejjednodušší datová struktura je pole. všechny jeho prvky jsou.
Datové typy 6 A1PRG - Programování – Seminář
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Algoritmy a programovací techniky
Algoritmy vyhledávání a řazení
Současný svět Projekt č. CZ /3. 1
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Další abstraktní datové typy
Ukázka odstranění rekurze Přemysl Tišer
Počítače a programování 1
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Spojové struktury BI-PA1 Programování a algoritmizace 1, ZS
STROMY Datová struktura sestávající z uzlů
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
1 / 9X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Úpravy dat v tabulce WinBase Upravování a přidávání dat do tabulky.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
C – procedury Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Rekurze. volání podprogramu opětovně v jeho těle –v době, kdy předchozí volání ještě nebylo ukončeno Druhy rekurze přímá rekurze nepřímá rekurze.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
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.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Typ struktura (1) Datový typ struktura (struct) je agrego-vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou mít různé datové.
Y36PJC Programování v jazyce C/C++
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Rekurze.
Y36PJC Programování v jazyce C/C++
Vzorové řešení zápočtového testu
Struktury.
Programování 2. hodina RNDr. Jan Lánský, Ph.D.
Programování v jazyce C++
Abstraktní datové typy
Databázové systémy a SQL
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)
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Fronta (1) Dynamická datová struktura typu FIFO (First In First Out)
C# přehled vlastností.
Funkce s proměnným počtem parametrů
Transkript prezentace:

Programovací jazyk C++ Abstraktní datové typy Spojový seznam

Předávání struktur jako parametr funkcí typedef struct { float x; float y; } TBod; TBod b1; Tbod *b3; b3 = new TBod;

do procedur a funkcí předáváme buď celé struktury nevýhodné, uvědomme si, že se celá struktura kopíruje na zásobník definice funkce float vzdalenost(TBod b) { return sqrt(b.x*b.x+b.y*b.y); } volání vzdalenost(b1); vzdalenost(*b3);

nebo raději přes ukazatele na zásobník se kopíruje pouze adresa, úsporné definice funkce float vzdalenost(TBod *b) { return sqrt(b->x*b->x+b->y*b->y); } volání vzdalenost(&b1); vzdalenost(b3);

Spojový seznam abstraktní datový typ (data + operace) určen pro dynamický seznam (lexikon), kde není znám počet prvků seznamu a jejich počet se často mění (vkládání, mazání) konec zacatek 3 1 3

implementace v C: typedef struct TPolozka { int prvek; TPolozka *dalsi; } TPolozka; typedef struct { TPolozka *zacatek; TPolozka *konec; } TSeznam; pokud se při deklaraci struktury odkazujeme na ni, napíšeme jméno ještě před „{“

TSeznam sez1; void Init(TSeznam *seznam) { seznam -> zacatek = NULL; seznam -> konec = NULL; }

Vložení na konec seznamu dynamicky vytvořím novou položku (ukazatel na další položku nastavím na NULL) konec zacatek 3 5 1 3 nova

Vložení na konec seznamu ukazatel dalsi u posledního prvku seznamu nastavím na novou položku konec zacatek 3 1 3 5 nova

Vložení na konec seznamu posunu ukazatel na konec seznamu konec zacatek 3 1 3 5 nova Pozor, vkládám-li do prázdného seznamu

void Vloz_na_konec(TSeznam *seznam, int cislo) { TPolozka *nova; nova = new TPolozka; nova -> prvek = cislo; nova -> dalsi=NULL; if (seznam -> zacatek != NULL) seznam -> konec -> dalsi = nova; seznam -> konec = nova; } else { seznam -> konec = nova; seznam -> zacatek = nova; }

Vložení do seznamu za prvek dynamicky vytvořím novou položku prvek konec zacatek 3 1 3 5 nova

Vložení do seznamu za prvek prováži nový prvek se seznamem prvek konec zacatek 3 1 3 5 nova

Obousměrný spojový seznam položka obsahuje ukazatel na předchůdce i následníka zacatek konec 3 1 3

Úkol naimplementujte spojový seznam (jedno-směrně nebo obousměrně vázaný), do kterého se ukládají jména a telefonní čísla naimplementujte tyto procedury a funkce: inicializace prázdného seznamu test, zda je seznam prázdný vložení záznamu na konec seznamu vložení záznamu za prvek (parametrem je ukazatel na prvek, za který se vkládá, a nové jméno a telefonní číslo)

hledání záznamu (podle jména i telef hledání záznamu (podle jména i telef. čísla) - vrací ukazatel na záznam, pokud není v seznamu, vrací NULL zjištění ukazatele na první záznam zjištění ukazatele na následující záznam výmaz prvku (parametrem je ukazatel na existující prvek, který se má vymazat) zrušení celého seznamu napište jednoduchou konzolovou aplikaci pro otestování implementace seznamu; data zadávejte z klávesnice nemusíte využít všechny funkce