Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.

Slides:



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

Pro začátek něco lehčího
(instance konkrétní třídy)
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Programování funkcí v Excelu (pole)
Programování 2 Cvičení 5.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Pole, ukazatele a odkazy
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Strukturované datové typy
Algoritmizace a programování Datové typy v Delphi - 05
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
C# pro začátečníky Mgr. Jaromír Osčádal
Druhé cvičení Vytváření identifikátorů Datové typy
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
J a v a Začínáme programovat Lucie Žoltá pole řetězec debugr.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
C# - struktury, výčtové typy, pole
Informatika I 3. přednáška
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í.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Objektové programování
Datové typy a práce s nimi
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í.
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í.
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í.
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í.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
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.
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.
Šesté cvičení Výjimky Balíky.
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.
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.
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ě.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Překladače 6. Sémantická analýza
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
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
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Překladače Syntaktická analýza
Programování v jazyce C++
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.
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.
MU002 – Informační technologie Základy algoritmizace 4/13
C# přehled vlastností.
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.
Transkript prezentace:

Počítače a programování 1 7.přednáška

Základy Pole ve třídách a metodách Pole Arrays

Úvod Java obsahuje dva neprimitivní datové typy: Pole Objekty Proměnné těchto typů jsou označovány jako referenční proměnné

Pojem referenční datový typ Referenční proměnné a jména polí jsou využívány podobně jako ukazatele v jiných programovacích jazycích Není však možno považovat hodnotu referenční proměnné za adresu do paměti (není možné provádět jakékoliv operace založené na přístupu do paměti pomocí známé adresy – ukazatele) Pole i objekty vznikají dynamicky pomocí speciálního příkazu a zanikají, pokud na ně neexistuje odkaz

Základní pojmy Pole: jeden název pro kolekci datových hodnot, všechny jsou stejného datového typu - pole je proměnná obsahující souvislou řadu objektů nebo prvků primitivních typů, které mají společný název a datový typ. Pole již existovala ve všech dřívějších programovacích jazycích.

Základní pojmy Pole v Javě: více než primitivní typ, ale méně než objekt Metody pole jsou vyvolávány pomocí indexového operátoru [ ] Většina programátorů je neuvažuje jako metody Pracují jako objekty, které užívají argumenty metod a vracejí návratový typ Nevyužívají dědičnosti Pole jsou přirozeným způsobem spojena s řídícími příkazy cyklu, speciálně for cyklu

Deklarace pole Syntax deklarace pole: Base_Type[] Array_Name = new Base_Type[Length]; Příklady: 80-prvkové pole s bázovým typem char : char[] symbol = new char[80]; 100-prvkové pole z bázovým typem double : double[] reading = new double[100]; 80-prvkové pole s bázovým typem Species : Species[] specimen = new Species[100];

Možnosti použití indexového operátoru [ ] (Brackets) spolu se jménem pole 1. Definice pole - vytvoření typového jména, např. int[] pressure; vytváří jméno s typem " int array“, je povolen i jiný zápis int pressure []; se stejným účinkem. Je nutno poznamenat, že typ int a int pole jsou různé Je to typ jména, nikoliv typ dat

Možnosti použití indexového operátoru [ ] (Brackets) spolu se jménem pole 2. Překladač jazyka Java nedovoluje stanovit, jak velké nové pole bude.Chceme-li získat paměť pro proměnnou typu pole, musíme sestavit inicializační výraz. Vytvoření nového pole pomocí klíčového slova new. pressure = new int[10];

Možnosti použití [ ] (Brackets) spolu se jménem pole 3. Pojmenování specifického prvku v poli - také nazývaného indexovaná proměnná, tj. pressure[3] = MyIn.readLineInt(); System.out.println(„Vstup" + pressure[3]);

Terminologie pole temperature[n + 2] temperature[n + 2] = 32; Jméno pole Index – také nazývaný subscript - musí být int, - nebo vyčíslitelný výraz int Indexovaná proměnná – také nazývaná prvek nebo subscripted variable Poznamenejme, že "element-prvek" může referovat indexovanou proměnnou nebo hodnotu indexované proměnné. Hodnota indexované proměnné

Délka pole Array Length Délka pole je zadána číselnou hodnotou uvedenou v hranatých závorkách při jeho vytvoření pomocí new Tím je určena velikost paměti, která bude alokována pro prvky pole (hodnoty prvků pole) Tím je také určen maximální počet prvků, které může pole nabývat Paměť je alokována, přestože hodnoty prvků pole v tomto okamžiku nemusí být známy

Délka pole Array Length Délku pole zadanou při jeho vytvoření můžeme zjistit pomocí členské proměnné se jménem length, tzn. následující příkazy zobrazí číslo 20 (velikost nebo délku pole entry typu Species ): Species[] entry = new Species[20]; System.out.println(entry.length); Stanovená délka je pevně dána v deklaraci, nelze ji změnit jiným způsobem než novou deklarací

Inicializace hodnot pole Prvky pole mohou být inicializovány v deklaračním příkazu zápisem seznamu jejich hodnot, který je uveden ve složených závorkách Prvky, které nejsou inicializovány, mají default hodnotu, tj. 0 v případě int pole, false pro pole typu boolean. Speciálním inicializačním typem inicializačního výrazu, který se musí objevit v místě definice proměnné, je soubor hodnot uzavřený do složených závorek – ekvivalent klíčového slova new int[]pressure={10,20,30,40,50,60,70,80,90,100};

Inicializace hodnot pole Délka pole je automaticky určena počtem prvků uvedených v explicitní inicializaci prvků provedené současně s deklarací Například: double[] reading = {5.1, 3.02, 9.65}; System.out.println(readings.length); - Zobrazí hodnotu 3, délku pole readings

Rozsah indexu Index pole začíná od nuly První prvek má index 0 Druhý prvek má index 1 atd. – n-tý prvek má index n-1 Poslední prvek pole má index length-1 Například: int[] scores = {97, 86, 92, 71};

Překročení mezí pole Použití indexu většího než length-1 vyvolá run time (běhovou), nikoliv syntaktickou chybu Je generována ArrayOutOfBoundsException výjimka Nelze ji jednoduše ošetřit Je nutno nalézt příčinu a odstranit ji, program znovu přeložit Ostatní programovací jazyky, tj. C and C++, tuto chybu nezachytí! Je to jedna z nejnebezpečnějších charakteristik těchto jazyků – dovolují překročit meze pole.

Inicializace pole v cyklu Zpracování pole je nejlépe provést v cyklu for cyklus je obecně užíván k inicializaci všech prvků pole Například: int i;//čítač cyklů/index pole int[] a = new int[10]; for(i = 0; i < a.length; i++) a[i] = 0; Čítač cyklu/ index pole probíhá od 0 do length - 1 Při průchodu polem v cyklu je použita jako horní mez konstanta a.length