Vazby dynamických proměnných,databázové systémy Přednáška č. 10.

Slides:



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

Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programovací jazyk C++
Přednáška 11 Jiří Šebesta
Programování 2 Cvičení 5.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
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
Algoritmizace a programování
PB071 – Programování v jazyce C Jaro 2013
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Dynamická alokace, polymorfismus
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Příklady v jazyku C – část 6
Algoritmy vyhledávání a řazení
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Další abstraktní datové typy
JavaScript Podmínky, cykly a pole.
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í.
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Spojové struktury BI-PA1 Programování a algoritmizace 1, ZS
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.
Knihovna GLib ● Multiplatformní nástavba standardní C knihovny (běží na Windows, Linux, Mac,...) ● Naleznete zde nástroje pro komfortní práci s řetězci.
Realloc a qsort examples BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Univerzita třetího věku kurz Pokročilý Tabulkový procesor 3.
Ukazatele BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
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.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
PROGRAMOVÁNÍ: 1) 2D pole 2) Předávání polí jako parametr f-cí 2) Ukazatele na pole a f-ce Jaroslav Burdys.
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í OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Počítače a programování 2
Y36PJC Programování v jazyce C/C++
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Programovací jazyk C++
Statistika aut v domácnostech
Y36PJC Programování v jazyce C/C++
Programování v jazyce 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
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.
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
C# přehled vlastností.
Přednáška 9 Triggery.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Algoritmizace a datové struktury (14ASD)
Funkce s proměnným počtem parametrů
Algoritmizace a datové struktury (14ASD)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Vazby dynamických proměnných,databázové systémy Přednáška č. 10

Vazby dynamických proměnných (1) Fiat 2007 Renault 2005 Skoda 2001 BMW 2008 ukazatel  Přístup s polem ukazatelů:  Pole může být:  statické (nevýhoda pevné velikosti)  dynamické (nutno volat realloc, při vložení jinde než nakonec, nutno ukazatele v poli přeskládat) dynam. prom

Vazby dynamických proměnných (2)  Přístup s využitím lineárního seznamu:  statický ukazatel na začátek seznamu  přidány ukazatele do dynamické struktury  poslední prvek neukazuje nikam (NULL)  velikost seznamu omezena pouze velikostí paměti  snadné přidávání i vkládání do seznamu  nemožnost indexace ( pro získání prvku uprostřed seznamu, musíme projít celý seznam, i když známe jeho pořadové číslo (index) ) Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom

Vazby dynamických proměnných (3)  Přidání prvku na konec lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom

Vazby dynamických proměnných (3)  Přidání prvku na konec lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom Audi 2006 NULL dynam. prom

Vazby dynamických proměnných (3)  Přidání prvku na konec lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 ukazatel dynam. prom Audi 2006 NULL dynam. prom

Vazby dynamických proměnných (4)  Přidání prvku na konec lineárního seznamu:  abychom nemuseli procházet celý seznam, je dobré pro rychlé přidávání na konec evidovat krom ukazatele na začátek, také ukazatel na konec Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom ukazatel na konec

Vazby dynamických proměnných (5)  Vložení prvku do lineárního seznamu:  abychom při vkládání zachovali uspořádanost seznamu – v našem příkladu třeba dle roku výroby  vůz s rokem výroby 2006 musíme vložit mezi Renault a Fiat Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom

Vazby dynamických proměnných (6)  Vložení prvku do lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom

Vazby dynamických proměnných (6)  Vložení prvku do lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom Audi 2006 NULL dynam. prom

Vazby dynamických proměnných (6)  Vložení prvku do lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom Audi 2006 NULL dynam. prom

Vazby dynamických proměnných (6)  Vložení prvku do lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom Audi 2006 NULL dynam. prom

Vazby dynamických proměnných (6)  Vložení prvku do lineárního seznamu: Renault 2005 ukazatel dynam. prom Skoda 2001 ukazatel dynam. prom ukazatel na začátek Fiat 2007 ukazatel dynam. prom BMW 2008 NULL dynam. prom Audi 2006 ukazatel dynam. prom

Vazby dynamických proměnných (7)  struktura t_auto #include "stdafx.h" #include struct t_auto { char znacka[10]; int rok; t_auto * dalsi; }; struct t_auto * prvni = NULL; // globalni ukazatel na prvni auto

Vazby dynamických proměnných (8)  funkce show() void show() // tisk aut { struct t_auto * aktAuto = prvni; // ukazatel na aktualni auto while ( aktAuto ) // prochazeni seznamu { printf( "%d: %s\n", aktAuto->rok, aktAuto->znacka ); // tisk radku aktAuto = aktAuto->dalsi; // posun na dalsi auto }

 funkce add() void add( char * znacka, int rok ) // pridani auta { struct t_auto * noveAuto; // ukazatel pro nove vkladane auto // alokace dynamicke promenne noveAuto = ( struct t_auto * )malloc( sizeof( struct t_auto ) ); strcpy( noveAuto->znacka, znacka ); // naplneni struktury noveAuto->rok = rok; noveAuto->dalsi = NULL; if ( prvni == NULL ) // linearni seznam je prazdny { prvni = noveAuto; return; } else if ( noveAuto->rok rok ) // vlozime na zacatek { noveAuto->dalsi = prvni; prvni = noveAuto; return; } struct t_auto * aktAuto = prvni; // ukazatel na aktualni auto while ( aktAuto ) // prochazeni seznamu { if ( aktAuto->dalsi == NULL ) // jsme na poslednim aute { aktAuto->dalsi = noveAuto; // pridavame na konec return; } else if ( noveAuto->rok dalsi->rok ) { noveAuto->dalsi = aktAuto->dalsi; // vlozime za aktAuto aktAuto->dalsi = noveAuto; return; } aktAuto = aktAuto->dalsi; // posun na dalsi auto }

Vazby dynamických proměnných (9)  příklad práce se seznamem add( "Fiat", 2007 ); add( "Skoda", 2001 ); add( "Renault", 2005 ); add( "BMW", 2008 ); add( "Audi", 2006 ); show(); getchar();