POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

Podobné dokumenty
Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

Kapitola 3. DEFINICE POLE

Pokročilá práce s proměnnými

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

Objekty jako zapozdření dat. začneme vytvářet vlastní objekty a třídy

Nejzajímavější jsou události MouseDown a KeyDown.

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

Jazyk C# a platforma.net

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

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

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

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

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

Kapitola 3. Projděte si kapitolu 3 knihy Moderní programování učebnice pro středně pokročilé a snažte se všemu porozumět.

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

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

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Jazyk C# - přístup k datům

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

Jazyk C# a platforma.net

Metodický list k didaktickému materiálu

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

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

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď

Větvení programů příkaz IF

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

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

Jazyk C# - přístup k datům

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

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

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

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

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

Náhodná a pseudonáhodná čísla

Zápis programu v jazyce C#

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

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

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

Metodický list k didaktickému materiálu

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

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

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

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

Jazyk C# - přístup k datům

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

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

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

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

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

Úvod do programovacích jazyků (Java)

Kolekce, cyklus foreach

Komponenty v.net. Obsah přednášky

Podmíněné vykonávání

Aplikace pro vykreslování grafů elementárních funkcí

Výčtový typ strana 67

Takto chápanému druhu objektů se říká TŘÍDA.

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

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

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

Robotika Kybernetika, automatizace a měření FEKT VUT v Brně

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

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Středoškolská odborná činnost. Obor SOČ: 1. Matematika a statistika GRAFY FUNKCÍ

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

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

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Pokud neuvedeme override, vznikne v synu nová (nevirtuální) metoda (a pochopitelně se nezavolá, jak bychom

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

Jazyk C# (seminář 3)

Abstraktní datové typy: zásobník

Tematický celek 03 - Cvičné příklady

1. Téma 12 - Textové soubory a výjimky

Šablony, kontejnery a iterátory

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

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

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.

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

OOPR_05. Případové studie

URČITÝM ZPŮSOBEM PODOBNÉ

20. Projekt Domácí mediotéka

Jazyk C# (seminář 5)

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Typický prvek kolekce pro české řazení

Objektově orientované programování

Textové soubory. alg9 1

7. Datové typy v Javě

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Datové struktury. alg12 1

Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)

NPRG031 Programování II 1 / :47:55

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Programování v jazyce JavaScript

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

NMIN201 Objektově orientované programování 2016/17 1 / :03:29

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

5 Rekurze a zásobník. Rekurzivní volání metody

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Transkript:

POLE - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

Deklarace pole a přístup k položkám typ[] název = new typ[velikost]; např. string[] nájemníci = new string[13]; přístup pomocí indexů, počínaje nulou nájemníci[0] = Vomáčkovi ; nájemníci[12] = Zelenkovi ;

Průchod polem lze použít vlastnost Length pro zjištění velikosti string zpráva = ""; for (int číslobytu = 0; číslobytu < nájemníci.length; číslobytu++) zpráva += číslobytu.tostring() + ": " + nájemníci[číslobytu] + Environment.NewLine; MessageBox.Show(zpráva); pozn.: třídění pole Array.Sort(pole), Array.Reverse(Pole)

Př. evidence nájemníku malého domu

using System; using System.Windows.Forms; namespace Evidence_nájemníků public partial class oknoprogramu : Form string[] nájemníci = new string[13]; public oknoprogramu() InitializeComponent(); private void oknoprogramu_load(object sender, EventArgs e) nájemníci[ 0] = "Křepelkovi"; nájemníci[ 1] = "Pytlík F."; nájemníci[ 4] = "Bral"; nájemníci[ 5] = "Pytlík B."; nájemníci[ 8] = "Brandorádovi"; nájemníci[11] = "Aragornovi"; private void tlačítkonastěhovat_click(object sender, EventArgs e) int číslobytu = Convert.ToInt32(poleČísloNastěhovat.Text); nájemníci[číslobytu] = polerodina.text; private void tlačítkovystěhovat_click(object sender, EventArgs e) int číslobytu = Convert.ToInt32(poleČísloVystěhovat.Text); nájemníci[číslobytu] = null; private void tlačítkozobrazit_click(object sender, EventArgs e) int číslobytu = Convert.ToInt32(poleČísloZobrazit.Text); string zpráva = "V bytě " + číslobytu.tostring() + " bydlí: " + nájemníci[číslobytu]; MessageBox.Show(zpráva); private void tlačítkozobrazitvšechny_click(object sender, EventArgs e) string zpráva = ""; for (int číslobytu = 0; číslobytu < nájemníci.length; číslobytu++) zpráva += číslobytu.tostring() + ": " + nájemníci[číslobytu] + Environment.NewLine; MessageBox.Show(zpráva); Array.Sort(nájemníci);

Pole jako kontejner na výstupní data spousta metod nevrací jenom jednu hodnotu, jak to známe doposud, někdy vrací proměnné množství hodnot stejného typu př. GetLogicalDrives třídy Envirmonment (vyrobte i verzi pro opačné pořadí disků) private void tlačítkozjisti_click(object sender, EventArgs e) string[] jednotky = Environment.GetLogicalDrives(); string zpráva = ""; for (int i = 0; i < jednotky.length; i++) zpráva += jednotky[i] + Environment.NewLine; polevýsledek.text = zpráva;

Pole jako kontejner vstupních dat používá se, pokud nějaká metoda vyžaduje větší množství vstupních dat př. DrawCurve ke kreslení křivek // Body pro levou část srdíčka Point L1 = new Point(100, 170); Point L2 = new Point( 50, 95); Point L3 = new Point( 65, 65); Point L4 = new Point( 85, 65); Point L5 = new Point(100, 80); // Body pro pravou část srdíčka Point P1 = L1; Point P2 = new Point(150, 95); Point P3 = new Point(135, 65); Point P4 = new Point(115, 65); Point P5 = L5; // Sestavení polí bodů pro obě křivky Point[] polelbodů = new Point[] L1, L2, L3, L4, L5 ; Point[] polepbodů = new Point[] P1, P2, P3, P4, P5 ; // A konečně vykreslení obou křivek Pen peroprokřivku = new Pen(Color.Red, 3); kp.drawcurve(peroprokřivku, polelbodů); kp.drawcurve(peroprokřivku, polepbodů);

Př. kontrola házecí kostky // Počitadla [0] až [6] ([0] se nepoužije) // Po vytvoření budou automaticky vynulována int[] kolikrát = new int[7]; // Opakovaně házej kostkou a počítej, kolikrát co padlo int počethodů = 600; for (int číslohodu = 1; číslohodu <= počethodů; číslohodu++) int hozenéčíslo = náhoda.next(1, 6+1); kolikrát[hozenéčíslo]++; // Zobrazení výsledků string zpráva = null; for (int číslo = 1; číslo <= 6; číslo++) zpráva += číslo.tostring() + ": " + kolikrát[číslo].tostring().padleft(3) + "x" + Environment.NewLine; polevýsledky.text = zpráva;

Řetězec jako pole znaků na řetězce lze koukat jako na pole znaků lze procházet jednotlivé znaky pomocí indexů př. program pro spočítání výskytů malého a (vyrobte i verzi pro počítání A, a, Á, á) string věta = polevěta.text; int početznaků = věta.length; // Projdi všechny znaky řetězce a spočítej áčka int početáček = 0; for (int čísloznaku = 0; čísloznaku < početznaků; čísloznaku++) if (věta[čísloznaku] == 'a') početáček++; // Zobraz výsledek MessageBox.Show("Ve větě je " + početáček.tostring() + " malých áček");

př. datum slovy př. starý známý příklad s panáčkem upravte pro pohyb kurzorovými šipkami malá nápověda private void oknoprogramu_keydown(object sender, KeyEventArgs e) switch (e.keycode) case Keys.Left: xpanáčka -= krok; break;

StringBuilder eliminuje časovou neefektivitu v případech, kdy se s jedním řetězcem pracuje často a neustále se mění např. sestavování zprávy v programu pro evidenci nájemníků existuje třída StringBuilder, která toto řeší potřeba přidat jmenný prostor System.Text

nejzajímavější metody Append, AppendLine přidá text, resp. řádek ToString převede na string přístup pomocí indexů, navíc lze i znaky měnit private void tlačítkozobrazitvšechny_click(object sender, EventArgs e) StringBuilder zpráva = new StringBuilder(); for (int číslobytu = 0; číslobytu < nájemníci.length; číslobytu++) zpráva.appendline(číslobytu.tostring() + ": " + nájemníci[číslobytu]); MessageBox.Show(zpráva.ToString());