POČÍTAČE A PROGRAMOVÁNÍ

Podobné dokumenty
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

POČÍTAČE A PROGRAMOVÁNÍ

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Sada 1 - Základy programování

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Pointery II. Jan Hnilica Počítačové modelování 17

Vícerozměrná pole. Úvod do programování 2 Tomáš Kühr

2 Strukturované datové typy Pole Záznam Množina... 4

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Sada 1 - Základy programování

2 Datové typy v jazyce C

Základy programování (IZP)

6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

NPRG030 Programování I, 2017/18 1 / :22:16

Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Pole a kolekce. v C#, Javě a C++

Sada 1 - Základy programování

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Šablony, kontejnery a iterátory

Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií Ústav automatizace a měřící techniky. Semestrální projekt

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Algoritmizace a programování

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Úvod do programování - Java. Cvičení č.4

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Programování. Programování s řetězci. Martin Urza

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Jazyk C# a platforma.net

Př. další použití pointerů

ALGORITMIZACE A PROGRAMOVÁNÍ

Zjednodušené základy jazyku C. Josef Podstata

Šablony, kontejnery a iterátory

Programovací jazyk Pascal

Dynamická vícerozměrná pole. Základy programování 2 Tomáš Kühr

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

dovolují dělení velkých úloh na menší = dekompozice

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

5 Vícerozměrná data - kontingenční tabulky, testy nezávislosti, regresní analýza

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Elementární datové typy

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Základy algoritmizace a programování

ADT/ADS = abstraktní datové typy / struktury

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

KTE / PPEL Počítačová podpora v elektrotechnice

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

NPRG030 Programování I, 2015/16 1 / :25:32

Práce s polem a pamětí

POČÍTAČE A PROGRAMOVÁNÍ

Základy programovacího jazyka Turbo Pascal

MAXScript výukový kurz

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

Programování II. Návrh programu I 2018/19

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programování

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

VY_32_INOVACE_08_2_04_PR

Microsoft Office. Excel vyhledávací funkce

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

X37SGS Signály a systémy

PODPORA ELEKTRONICKÝCH FOREM VÝUKY

11a Dynamické dvourozměrné pole (obdobně vícerozměrné)

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Programování III. Mgr. Monika Pinkasová. Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Sdílení dat mezi podprogramy

Algoritmizace a programování

7. Datové typy v Javě

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

8 Třídy, objekty, metody, předávání argumentů metod

5 Přehled operátorů, příkazy, přetypování

Aplikace matematiky. Josef Čermák Algoritmy. 27. PSQRT. Řešení soustavy rovnic se symetrickou pozitivně definitní

Úvod do programovacích jazyků (Java)

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

KTE / PPEL Počítačová podpora v elektrotechnice

Sada 1 - Základy programování

Jazyk PL/SQL Úvod, blok

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Pracovní text a úkoly ke cvičením MF002

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Algoritmizace prostorových úloh

Transkript:

POČÍTAČE A PROGRAMOVÁNÍ Vícerozměrná statická a dynamická pole, Pole polí Miroslav Vavroušek PPI 08 V1.1

Opakovaní z minulé přednášky Datová pole Jednorozměrná statická datová pole Dynamická datová pole String jako pole Datový typ u: Integer Datový typ buňky: Integer 1 8 2 11 500 82 Datový typ u: Integer Datový typ buňky: Real 1 0,58 2 14,91 500 18,01 Datový typ u: Char Datový typ buňky: String 'a' 'b' 'Ahoj' 'jak se' 'z' '!'

Datová pole Datová pole představují množiny prvků stejného datového typu. K jednotlivým prvkům pole přistupujeme pomocí indexu. Pole můžeme rozdělit na statická a dynamická Statická délka zvolená před kompilací programu Dynamická délku pole lze měnit za běhu programu Každé pole je nějakého konkrétního rozměru Jednorozměrná pole si můžeme představit, jako sloupec tabulky kde každá buňka je zvoleného datového typu Dvourozměrné pole lze reprezentovat jako tabulku a třírozměrné jako kvádr z krychliček jednotného typu.

Jednorozměrné statická a dynamická pole Statické pole Deklarace pole : array [1..10] of Integer; Dynamické pole Deklarace pole : array of Integer; Nastavení délky pole SetLength(, 8); Statické a dynamické pole Uložení hodnoty do pole [8]:= 16; Přístup k hodnotě v poli A:= [8]; //Do A uloží hodnotu z pole na indexu 8

String jako pole S datovým typem String lze pracovat jako s jednorozměrným polem znaků K jednotlivým znakům lze přistupovat pomocí indexu Znaky se ují o 1 Počet znaků lze zjistit pomocí Length(JmenoPromenne); : var S: String; C: Char; begin S:= 'Ahoj'; C:= S[2]; : //Uloží do C hodnotu 'h';

Obsah přednášky Vícerozměrná statická a dynamická pole Pole polí Datový typ u 1 a 2: Integer Datový typ buňky: Integer 2 1 1 2.. 200 1 8 5.. 29 2 11 14.. 41 : : 500 82 21.. 6 Datový typ u: Integer Datový typ buňky: Pole string 1 2 200 Datový typ u: Integer Datový typ buňky: String 1 'Ahoj' n 1 Datový typ u: Integer Datový typ buňky: String '!' 1 'Dalsi pole' n 2 Datový typ u: Integer Datový typ buňky: String 'Stringu!' 1 'Posledni' n 200 'v poli!'

Vícerozměrná statická a dynamická pole Využívají dvou a vice indexů y v hranatých závorkách jsou odděleny čárkami Mají dva a více rozměru pro každý rozměr daný index Dvourozměrné pole lze reprezentovat tabulkou První index je většinou řádek (Matematická konvence) Volba je na programátorovi Datový typ u 1 a 2: Integer Datový typ buňky: Integer 2 1 1 2.. 200 1 8 5.. 29 2 11 14.. 41 : : 500 82 21.. 6

Vícerozměrná statická pole Deklarace vícerozměrného statického pole Dvourozměrné pole JmenoPole: array [Dolni1..Horni1,Dolni2..Horni2] of DatovyTyp; : array [1..500,1..200] of Integer; Vícerozměrné pole deklarujeme analogicky Uložení hodnoty do pole JmenoPole[1,2]:= Hodnota; [500,2]:= 21; Pro vícerozměrné pole analogicky Přístup k hodnotě v poli JmenoPole[1,2]; A:= [2,1]; //Do A vloží 11 Pro vícerozměrné pole analogicky Datový typ u 1 a 2: Integer Datový typ buňky: Integer1 2 1 1 2.. 200 1 8 5.. 29 2 11 14.. 41 : : : : 500 82 21.. 6

Vícerozměrná dynamická pole Dvourozměrné dynamické pole Deklarace dvourozměrného dynamického pole JmenoPole: array of array of DatovyTyp; : array of array of Integer; Nastavení rozměrů dvourozměrného dynamického pole SetLength( JmenoPole, Rozmer1, Rozmer2); SetLength(, 10, 8); Uložení hodnoty do pole JmenoPole[1,2]:= Hodnota; [500,2]:= 21; Přístup k hodnotě v poli JmenoPole[1,2]; A:= [2,1]; //Do A uloží hodnotu z třetího řádku a druhého sloupce Pro vícerozměrné pole analogicky INDEXUJE SE OD 0!!!

Vícerozměrná dynamická pole Funkce pro zjištění hranic vicerozměrného pole Pro první rozměr stejně jako u jednorozměrných polí A:= Low(JmenoPole); //Do A uloží dolní index pole 1.rozměru B:= High(JmenoPole); //Do B uloží horní index pole 1.rozměru C:= Length(JmenoPole); //Do C uloží delku pole v 1.rozměru Pro další rozměry a indexy uvedu o jeden měně indexů než rozměr, který požaduji A:= Low(JmenoPole[0]); //Do A uloží dolní index pole 2.rozměru B:= High(JmenoPole[0,0]); //Do B uloží horní index pole 3.rozměru C:= Length(JmenoPole[0,0,0]); //Do C uloží délku pole v 4.rozměru Projití všech prvků dvourozměrného dynamického pole for I:=0 to Length() do //Projdi všechny prvky v 1. rozměru begin for J:=0 to Length([I]) do //Projdi všechny prvky v 2. rozměru begin // end; end;

Příklad na procvičení Vytvořte program, kterému uživatel zadá rozměr matice. Poté zadá jednotlivé prvky matice. Program vypíše matici a součet prvků na diagonále.?

Pole polí Lze vytvořit pole, jehož prvky jsou pole Statické i dynamické Jedno i více rozměrné Prvky mohou být pole Statické i dynamické Jedno i více rozměrné Jednorozměrné pole indexované číslem (Integer), prvky jsou pole textů (Stringu) indexované číslem Datový typ u: Integer Datový typ buňky: Pole string 1 2 200 Datový typ u: Integer Datový typ buňky: String 1 'Ahoj' n 1 Datový typ u: Integer Datový typ buňky: String '!' 1 'Dalsi pole' n 2 Datový typ u: Integer Datový typ buňky: String 'Stringu!' 1 'Posledni' n 200 'v poli!'

Deklarace Jednorozměrné statické pole, jednorozměrných statických polí JmenoPole: array [Dolni1..Horni1] of array [Dolni2..Horni2] of DatovyTyp; : array [1..500] of array [1..200] of Integer; Uložení hodnoty do pole JmenoPole[1][2]:= Hodnota; [500][2]:= 21; Přístup k hodnotě v poli JmenoPole[1][2]; A:= [2][3]; //Do A uloží z 2. prvku 3. hodnotu Pro vícerozměrné pole analogicky

Jednorozměrné dynamické pole jednorozměrných dynamických polí Deklarace JmenoPole: array of array of DatovyTyp; : array of array of Integer; Nastavení délek SetLength( JmenoPole, Rozmer); SetLength( JmenoPole[], Rozmer); //Nastavení delky prvku SetLength(, 10); SetLength( [2], 5); //Pole prvku 2 bude mít 5 prvků Uložení hodnoty do pole JmenoPole[1][2]:= Hodnota; [500][2]:= 21; Přístup k hodnotě v poli JmenoPole[1][2]; A:= [2][3]; //Do A uloží z 2. prvku 3. hodnotu Pro vícerozměrné pole analogicky

Jednorozměrné dynamické pole jednorozměrných statických polí Deklarace JmenoPole: array of array [Dolni..Horni] of DatovyTyp; : array of array [1..15] of Integer; Nastavení délky SetLength( JmenoPole, Rozmer); SetLength(, 10); Uložení hodnoty do pole JmenoPole[1][2]:= Hodnota; [8][2]:= 21; Přístup k hodnotě v poli JmenoPole[1][2]; A:= [2][3]; //Do A uloží z 2. prvku 3. hodnotu Pro vícerozměrné a další kombinace statických a dynamických polí analogicky