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.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
ÚVOD DO C++ 3 TŘÍDY a objekty - POKRAČOVÁNÍ
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
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.
DATOVÝ TYP POLE.
25/08/20141 Typ struktura (1) Datový typ struktura ( struct ) je agrego- vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou.
Pole, ukazatele a odkazy
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Strukturované datové typy
Principy překladačů Mezikód Jakub Yaghob.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
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.
C# - struktury, výčtové typy, pole
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
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í.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
DEKLARACE PROMĚNNÝCH A KONSTANT
Matice.
KOMBINAČNÍ LOGICKÉ FUNKCE
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
JavaScript Podmínky, cykly a pole.
Cvičení.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
PictureBox u vkládání obrázků u vlastnost Picture pomocí příkazu LoadPicture u přiřazení obrázku mezi dvěma prvky PictureBox Auto.Picture = AutoCerv.Picture.
Proměnná typu "pole" Mezi proměnné typu "pole" patří všechny superglobální proměnné. Mezi proměnné typu "pole" patří všechny superglobální proměnné. To.
Příklady v jazyku C – část 3
Práce se šablonami v MS Word 2007
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
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.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
KIV/PPA1 cvičení 6 Cvičící: Pavel Bžoch. Osnova cvičení Datový typ pole –Jednorozměrná a vícerozměrná –Práce s vektory a maticemi.
PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES CYKLY V PHP.
Vektorové prostory.
Číselné posloupnosti.
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.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
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.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
České vysoké učení technické Fakulta elektrotechnická Datové typy, výrazy vstup, výstup Jazyk JAVA A0B36PRI - PROGRAMOVÁN Í v1.02.
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é.
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
PHP – CYKLY, POLE. CYKLY V PHP Cykly se používají, chceme-li opakovat určitou činnost, několikráte za sebou, opakovaně provádět stejnou proceduru. Postupně.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
ODČÍTÁNÍ DESETINNÝCH ČÍSEL  Při písemném odčítání desetinných čísel musí být desetinné čárky pod sebou!  Musíme odčítat jen stejné řády, tj. desetiny.
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é.
OPERAČNÍ SYSTÉMY Část 4 – správa souborů
Programovací jazyk C# 4. část - cykly.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
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é.
Definiční obor a obor hodnot
Vzorové řešení zápočtového testu
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Reálné typy (1) Zahrnují konečnou podmnožinu těch reálných čísel, která jsou zobrazitelná v paměti počítače (v jistém rozsahu a s jistou přesností) Hodnoty.
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
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 ukazatel (1) Proměnné typu ukazatel (pointer) uchovávají paměťovou adresu Hodnota ukazatele říká, kde (na jaké adrese) se v paměti nachází nějaký objekt.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Proměnné (1) Proměnná: Definice proměnných:
Transkript prezentace:

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 je homogenní datový typ Jedna proměnná v poli se nazývá prvek (po-ložka, složka) pole Každý prvek je explicitně označitelný a pří-mo přístupný 18/07/2018

Typ pole (2) Zpřístupnění jednoho prvku se provádí jmé-nem proměnné (typu pole) a indexem (inde-xy) určujícím konkrétní prvek v poli V jazyce C pole obsazuje spojitou oblast ope-rační paměti tak, že: první prvek je uložen na nejnižší přidělené adrese každý další prvek je uložen na adrese vyšší poslední prvek je uložen na nejvyšší adrese Pole mohou být: jednorozměrná vícerozměrná (dvourozměrné pole – matice) 18/07/2018

Jednorozměrné pole (1) Definice proměnné typu pole: datový_typ idPole[velikost]; datový_typ: specifikuje datový typ jednotlivých prvků pole idPole: identifikátor proměnné typu pole velikost: určuje počet prvků v poli jednotlivé prvky jsou zpřístupnitelné pomocí indexů v rozmezí 0 až velikost–1 poznámka: indexy prvků pole začínají vždy od nuly 18/07/2018

Jednorozměrné pole (2) Příklad: int hodnoty[10]; definuje proměnnou hodnoty (typu pole) obsahující 10 prvků typu int, které jsou zpřístupnitelné pomocí indexů v rozmezí 0 až 9 indexy prvků noty [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] hodnoty: 8 5 10 47 -1 32 -8 9 75 18/07/2018

Jednorozměrné pole (3) Zpřístupnění jednoho prvku v poli: idPole[výraz] idPole: identifikátor proměnné typu pole výraz: výraz, jehož vyhodnocením je dán index prvku v poli (tzv. indexový výraz) Příklad: hodnoty[5] zpřístupní prvek s indexem 5 (tj. 6. prvek) v poli hodnoty (prvek s hodnotou –1) 18/07/2018

Jednorozměrné pole (4) Hodnotu prvku v poli je možné použít stej-ným způsobem jako proměnnou nebo kons-tantu odpovídajícího datového typu Pozor: hodnoty indexů (indexových výrazů) určujících prvek pole by neměly nikdy nabýt hodnoty mi-mo definicí určené meze pokus o práci s hodnotami mimo meze pole (např. hodnoty[10]=100) není jazykem C kontrolován a vede obvykle k havárii programu 18/07/2018

Jednorozměrné pole (5) Definice proměnné typu pole může být spo-jena i s inicializací jednotlivých jeho prvků: datový_typ idPole[velikost]= {h0, h1, …, hvelikost–1}; h0, h1, …, hvelikost–1: hodnoty (popř. konstantní výrazy), které jsou typově kompatibilní s typem prvků pole (tj. s datovým typem datový_typ) tyto hodnoty (výsledky konstantních výrazů) se postupně (zleva doprava) přiřadí do jednotlivých prvků pole 18/07/2018

Jednorozměrné pole (6) Příklad: int drMoc[5]={0, 1, 4, 9, 16}; definuje proměnnou drMoc s následujícími iniciálními hodnotami: [0] [1] [2] [3] [4] drMoc: 1 4 9 16 Výčet hodnot v inicializaci prvků pole nemu-sí být úplný Zbývající prvky se nastaví na hodnotu 0 18/07/2018

Jednorozměrné pole (7) Příklad: int pole[5]={7, [3]=2}; definuje proměnnou pole s následujícími iniciálními hodnotami: [0] [1] [2] [3] [4] pole: 7 2 Je-li při definici pole uvedena i inicializace, pak může být vynechán výraz udávající jeho velikost 18/07/2018

Jednorozměrné pole (8) Počet prvků pole je dán počtem hodnot ve složených závorkách Příklad: int moc2[]={1, 2, 4, 8, 16, 32}; definuje proměnnou moc2 se šesti prvky a s následujícími iniciálními hodnotami: [0] [1] [2] [3] [4] [5] moc2: 1 2 4 8 16 32 18/07/2018

Jednorozměrné pole (9) Jazyk C neposkytuje operátor pro přiřazení pole jako celku Kopie pole se musí provádět samostatným ko-pírováním jednotlivých prvků (v rámci cyklu) nebo kopií bloku paměti Při načítání (zobrazování) prvků pole pomocí funkcí scanf (printf) je rovněž nutné po-stupovat po jednotlivých prvcích 18/07/2018

Ukazatele a pole (1) Mezi ukazateli a poli je v jazyce C velmi těsný vztah Operace, které lze provádět pomocí indexů polí, lze také provádět pomocí ukazatelů Verze s ukazateli bývá obecně rychlejší, ale může být hůře pochopitelná Nechť: int a[10], x; definuje pole a o 10 prvcích typu int a pro-měnnou x také typu int 18/07/2018

Ukazatele a pole (2) Zápis a[i] odkazuje na prvek s indexem i [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] a: Zápis a[i] odkazuje na prvek s indexem i Nechť je dán ukazatel ptrInt definovaný jako: int *ptrInt; Pak přiřazení ptrInt = &a[0] nastaví uka-zatel ptrInt tak, že bude ukazovat na prvek pole a s indexem 0 18/07/2018

Ukazatele a pole (3) Ukazatel ptrInt obsahuje adresu prvku a[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] a: ptrInt: Ukazatel ptrInt obsahuje adresu prvku a[0] Přiřazení: x = *ptrInt; zkopíruje obsah a[0] do proměnné x 18/07/2018

Ukazatele a pole (4) Ukazuje-li ukazatel ptrInt na konkrétní prvek pole, pak: ptrInt+i ukazuje na i-tý následující prvek ptrInt–i ukazuje na i-tý předcházející prvek Jestliže ukazuje ptrInt na prvek a[0], po-tom: *(ptrInt+1) odkazuje na obsah proměnné a[1] *(ptrInt+i) odkazuje na obsah proměnné a[i] 18/07/2018

Ukazatele a pole (5) [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] a: ptrInt: ptrInt+1: ptrInt+2: ptrInt+9: 18/07/2018

Ukazatele a pole (6) Uvedené odkazy jsou platné nezávisle na veli-kosti proměnných v poli a V aritmetice ukazatelů platí, že: ptrInt+1 ukazuje na následující objekt za objektem ptrInt ptrInt+i ukazuje na i-tý objekt za objektem ptrInt V jazyce C je jméno pole synonymem pro umístění jeho počátečního prvku 18/07/2018

Ukazatele a pole (7) Z toho vyplývá, že přiřazení: ptrInt = &a[0]; je ekvivalentní přiřazení ptrInt = a; Odkaz na prvek a[i] lze také zapsat jako *(a+i) Výraz a+i je adresou i-tého prvku za a a je totožný s výrazem &a[i] Jestliže ptrInt je ukazatel, pak je možné jej indexovat, tj. ptrInt[i] je ekvivalentní *(ptrInt+i) 18/07/2018

Ukazatele a pole (8) Pozor: ukazatel je proměnná, tj. výrazy: ptrInt = a ptrInt++ jsou správné jméno pole nepředstavuje proměnnou, tj. výrazy: a = ptrInt a++ jsou chybné 18/07/2018