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é.

Slides:



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

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Programování funkcí v Excelu (pole)
Programovací jazyk C++
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Programování 2 Cvičení 5.
JUI - 3. přednáška Zpracování seznamů, predikátové a vyhodnocovací funkce RNDr. Jiří Dvořák, CSc.
Vytváření, použití dávkových souborů
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.
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmizace a programování Podprogramy v Delphi - 10
JUI - 1. přednáška Funkcionální programování Úvod do jazyka Lisp RNDr. Jiří Dvořák, CSc.
Programování v C++ Cvičení.
Principy překladačů Mezikód Jakub Yaghob.
Programování PA - 2.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
MATLAB® ( Funkce v Matlabu ).
Procedury a funkce Základní charakteristika a použití v programu.
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í.
Jednoduché datové typy
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Sémantická analýza Jakub Yaghob
Datové typy a práce s nimi
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
JavaScript Podmínky, cykly a pole.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
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.
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í.
2 CYKLUS S PEVNÝM POČTEM OPAKOVÁNÍ Podle řídící proměnné proveď n-krát příkaz P1.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
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.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Pole Arrays.
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.
Turingův stroj.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
C – procedury Mgr. Lenka Švancarová.
Funkce, intuitivní chápání složitosti
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
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í KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Překladače 6. Sémantická analýza
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é.
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é.
Programovací jazyk C++
Vzorové řešení zápočtového testu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
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.
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)
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.
Podprogramy.
MU002 – Informační technologie Základy algoritmizace 5/13
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
Transkript prezentace:

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é – matice (tabulka) Dvourozměrné pole je realizováno jako jedno-rozměrné pole, jehož prvky jsou opět jedno-rozměrná pole Definice dvourozměrného pole: datový_typ idPole[vel1][vel2]; 14/04/2017

Vícerozměrná pole (2) datový_typ: idPole: vel1: vel2: specifikuje datový typ jednotlivých prvků pole idPole: identifikátor proměnné typu dvourozměrné pole vel1: určuje počet řádků dvourozměrného pole (matice) jednotlivé řádky jsou zpřístupnitlné pomocí indexů v rozmezí 0 až vel1–1 vel2: určuje počet sloupců dvourozměrného pole (matice) prvky v jednotlivých řádcích jsou zpřístupnitelné pomocí indexů v rozmezí 0 až vel2–1 14/04/2017

Vícerozměrná pole (3) Příklad: double a[4][5]; definuje dvourozměrné pole (matici) a se 4 řád-ky a 5 sloupci, jehož prvky jsou typu double 14/04/2017

Vícerozměrná pole (4) Zpřístupnění jednoho prvku ve dvourozměr-ném poli: idPole[výraz1][výraz2] idPole: identifikátor proměnné typu pole výraz1: výraz, jehož vyhodnocením je dán index řádku, na němž se nachází zpřístupňovaný prvek výraz2: výraz, jehož vyhodnocením je dán index sloupce, v němž se nachází zpřístupňovaný prvek 14/04/2017

Vícerozměrná pole (5) Příklad: a[2][3] zpřístupní prvek, který se nachází na řádku s indexem 2 a ve sloupci s indexem 3 Poznámka: dvourozměrné (vícerozměrné) pole se do operač-ní paměti ukládá po řádcích (poslední index se mění nejrychleji) Definice dvourozměrného pole může být spo-jena i s inicializací jeho prvků 14/04/2017

Vícerozměrná pole (6) Příklad: int matice[3][4]= { {10, 12, 1, 0}, {-5, 8, 20, 1}, {-6, -8, 15, 9} }; Definuje dvourozměrné pole matice, které má: 3 řádky (indexované v rozmezí 0 až 2) 4 sloupce (indexované v rozmezí 0 až 3) 14/04/2017

Vícerozměrná pole (7) [0] [1] [2] [3] index sloupce [0] 10 12 1 matice: [1] -5 8 20 1 [2] -6 -8 15 9 index řádku Zápis matice[1][2] zpřístupní prvek s hodnotou 20 14/04/2017

Vícerozměrná pole (8) Pro přístup k prvkům dvourozměrného (více-rozměrného) pole je možné použít i ukazatelů Nechť je dána definice: int a[2][3]; pak zápis a[1][2] je ekvivalentní zápisu *(*(a+1)+2) Výraz *(*(a+1)+2) se vyhodnocuje v ná-sledujících krocích: a označení pole a se převede na ukazatel na první tří-prvkové pole (první řádek, tj. řádek s indexem 0) 14/04/2017

Vícerozměrná pole (9) a+1 *(a+1) *(a+1)+2 *(*(a+1)+2) označuje ukazatel na druhé tříprvkové pole (druhý řádek, tj. řádek s indexem 1) *(a+1) označení druhého tříprvkového pole, které se převede na ukazatel na první prvek (s indexem 0) tohoto pole *(a+1)+2 označuje ukazatel na třetí prvek (prvek s indexem 2) ve druhém tříprvkovém poli *(*(a+1)+2) označuje třetí prvek ve druhém tříprvkovém poli, tj. prvek a[1][2] 14/04/2017

Vícerozměrná pole (10) Poznámka: definice polí, která mají více než dva rozměry se provádí přidáním dalších rozměrů uvedených v hranatých závorkách např. třírozměrné pole lze definovat jako: int pole[5][6][4]; pro zpřístupnění jednoho prvku (hodnoty typu int) v poli pole je zapotřebí uvést tři indexy např.: pole[2][5][1] 14/04/2017

Funkce – podprogramy (1) Podprogram je posloupnost příkazů opatřená jménem, které je možné později používat ja-ko reprezentanta celé posloupnosti Jako podprogram je vhodné označit algorit-micky ucelenou programovou jednotku řešící vhodně vyčleněný problém Jazyk C umožňuje zápis podprogramů pomo-cí funkcí Funkce představuje vhodný způsob zapou-zdření nějakého výpočtu 14/04/2017

Funkce – podprogramy (2) Opakování – funkce je tvořena: hlavičkou, která specifikuje: viditelnost funkce vně souboru, ve kterém je defino-vána návratový typ – typ hodnoty, kterou funkce vrací jméno funkce seznam (typ a počet) formálních parametrů, pomocí nichž funkce může komunikovat se svým okolím tělem funkce, které obsahuje: lokální deklarace a definice posloupnost příkazů, která bude po vyvolání funkce provedena 14/04/2017

Funkce – podprogramy (3) Definice funkce: návratový_typ jmFunkce(seznam formálních parametrů) { /* Tělo funkce jmFunkce */ /* Lokální deklarace a definice */ /* Posloupnost příkazů */ } Poznámka: při definici funkce není za její hlavičkou uveden středník Hlavička funkce 14/04/2017

Funkce – podprogramy (4) návratový_typ: udává typ hodnoty, kterou funkce vrací vrácenou hodnotu je možné použít kdekoliv na pozici výrazu odpovídajícího typu vrácená hodnota může být také ignorována jestliže funkce nevrací žádnou hodnotu, pak by návratovým typem měl být typ void jmFunkce: identifikátor specifikující jednoznačné jméno funkce následně se používá pro její vyvolání 14/04/2017

Funkce – podprogramy (5) seznam formálních parametrů: slouží k předání vstupních hodnot funkci je-li prázdný, měl by být použitý typ void formální parametry: se zapisují včetně svého datového typu jsou od sebe odděleny symbolem čárka (,) příklad: int a, int b, double x identifikátory použité pro formální parametry funkce jsou lokální a z jiných funkcí nejsou viditelné (dostupné) 14/04/2017

Funkce – podprogramy (6) ostatní části programu mohou používat stejné identifikátory, aniž by docházelo ke konfliktům Jestliže má funkce vracet hodnotu, pak by v jejím těle měl být obsažen příkaz return následovaný výrazem, který je typově kom-patibilní s typem návratový_typ Příkaz return způsobí ukončení provádění funkce Vrácená hodnota je dána hodnotou výrazu, který je uvedený za příkazem return 14/04/2017

Funkce – podprogramy (7) Příklad: long int mocnina(int zaklad, unsigned int n) { long int m; for (m=1; n>0; n--) m*=zaklad; return m; } Funkce počítající hodnotu mocniny zakladn pro zaklad  Z a n  N 14/04/2017

Funkce – podprogramy (8) Volání (použití) funkce: způsobí předání řízení volané funkci, tj. začnou se postupně vykonávat její jednotlivé příkazy prováděno jménem funkce, za nímž v kulatých zá-vorkách následuje seznam skutečných parametrů (argumentů) reprezentovaných výrazy, tj. jmFunkce (seznam skutečných parametrů) v době volání funkce dochází k substituci skuteč-ných parametrů za parametry formální vzájemná korespondence skutečných a formálních parametrů je dána pořadím v těchto seznamech 14/04/2017

Funkce – podprogramy (9) odpovídající si parametry musí být typově kompa-tibilní provádění funkce je ukončeno: provedením příkazu return dosažením konce (provedením posledního příkazu) funkce po ukončení funkce je řízení předáno na příkaz, který se nachází bezprostředně za voláním funkce příklad: x = mocnina(2+3,4); vypočítá hodnotu 54 a výsledek vloží do proměn-né x 14/04/2017

Funkce – podprogramy (10) Poznámky: je-li seznam skutečných parametrů prázdný, pak je nutné v době volání funkce uvést prázdné kulaté závorky funkce může ve svém těle libovolně volat funkce jiné nebo i sama sebe – tzv. rekurze funkce není možné do sebe vnořovat V jazyku C jsou všechny skutečné parametry předávány (volány) hodnotou: při volání hodnotou substituce skutečného para-metru za formální probíhá takto: výraz (skutečný parametr) se vyhodnotí 14/04/2017

Funkce – podprogramy (11) formální parametr se stane lokální proměnnou, které je při volání funkce vyhrazeno paměťové místo, do něhož je zkopírována hodnota skutečného parametru po ukončení funkce se toto místo opět uvolní funkce může hodnotu této své lokální proměnné měnit, aniž by se tím měnila hodnota skutečného parametru Volající funkce může vytvořit podmínky pro změny své proměnné tím, že poskytne její adresu (ukazatel) – pomocí operátoru & 14/04/2017

Funkce – podprogramy (12) Volaná funkce musí definovat parametr jako ukazatel a prostřednictvím něj může nepřímo přistupovat k proměnné volající funkce Jestliže je jako skutečný (formální) parametr použito jméno pole, pak funkce obdrží adresu začátku pole  ke kopírování prvků pole nedojde Funkce tedy může přistupovat k libovolnému prvku pole a měnit jej 14/04/2017