C# - struktury, výčtové typy, pole

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Programování funkcí v Excelu (pole)
Programovací jazyk C++
Programování funkcí v Excelu
Programování 2 Cvičení 5.
DATOVÝ TYP POLE.
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
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Strukturované datové typy
Algoritmy I Cvičení č. 5.
4IT1014IT101 Pátá přednáška Datové struktury - pokračování Statické prvky třídy.
Algoritmy I Cvičení č. 4.
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
C# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - znakové typy a řetězce
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í.
C# - číselné datové typy
C# - Exceptions (výjimky)
C# - pointery Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Objektové programování
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - OOP (object oriented programming)
DEKLARACE PROMĚNNÝCH A KONSTANT
C# - Grafika Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
6. cvičení Polymorfismus
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
C# - I/O, streamy, práce se soubory
C# - Testování a ladění aplikací Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
VISUAL BASIC PRALG.
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í.
ADO.NET – Transakce Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B7 Autor Ing. Jiří Kalousek Období vytvoření listopad.
C# - Generic Collections Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
ADO.NET – Objekt DataSet (offline scenář) Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
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.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
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.
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
ADO.NET – object Connection Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
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.
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.
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.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
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é.
Y36PJC Programování v jazyce C/C++
Vzorové řešení zápočtového testu
Typový příklad 3 – zadání 1
Programování v jazyce C++
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
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.
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.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

C# - struktury, výčtové typy, pole Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Použití struktur Patří mezi hodnotové typy Jednoduché reprezentace objektů Rychlá alokace v paměti Není nutná správa spjatá s referenčními typy Pro vytvoření použití klíčového slova „struct“

Jednoduchá struktura vytvoření public struct Point {  public int x,y; // konstruktor struktury Point   public Point(int _x, int _y)  {   //klíčové slovo this,   //představuje aktuální instanci objektu Point   this.x = _x;   this.y = _y;  } }

Funkce konstruktorů Odlišná od funkce konstruktorů u objektů Zavoláním konstruktoru bez parametrů pomocí klíčového slova „new“ znamená vytvoření instance struktury s vynulovanými datovými členy. Pokud konstruktor nepoužijeme je nutné datové členy struktury před použitím inicializovat na konkrétní hodnoty Při použití konstruktoru je nutné inicializovat všechny datové členy struktury, tak aby bylo po zavolání konstruktoru možné strukturu používat. V opačném případě nebude možné strukturu použít Použití struktury bez konstruktoru a pomocí defaultního konstruktoru ukazuje následující příklad:

Point p1; //zavolani konstruktoru neni nutne, //ale datove cleny musí pred pouzitim byt inicializovany p1.x = 4; p1.y = 5; //souradnice x je 4 Console.WriteLine(p1.x); //volani implicitniho konstruktoru //zapricini vytvoreni nove instance //s vynulovanymi datovymi cleny p1 = new Point(); //souradnice x je nyni 0 Console.WriteLine(p1.x);

Výčtové typy Použití při potřebě sady konstant, jejichž hodnot může nabývat námi definovaná proměnná Např.: měsíce v roce, dny v týdnu, …. Klíčové slovo „enum“ Př.: public enum MesiceVRoce {  Leden,  Unor,  ……..,  ……..,  Prosinec } Použití : MesiceVRoce myMesic= MesiceVRoce.Leden;

Číselné reprezentace výčtových typů Každý výčtový typ je postaven na konkrétním číselném typu (defaultně int32) První hodnota je defaultně nastavena na 0, a ostatní vždy na hodnotu o 1 vyšší Při použití našeho příkladu je možná konstrukce: int intMesic = (int)MesiceVRoce.Leden; //vystup bude 0 Console.WriteLine(intMesic); Počáteční hodnoty je možné volit – přiřazením příslušné hodnoty každému z členů: public enum MesiceVRoce {  Leden = 1,  Unor = 3, ………..,  Prosinec   = 133 } Explicitně je možné zvolit i jiný bázový typ než int32, např. byte Public enum MesiceVRoce : byte

Pole Je určitý počet proměnných, které jsou indexovány Pomocí indexů je možné se mezi jednotlivými proměnnými pohybovat C# - indexuje prvky polí od 0 Prvky pole musí být stejného datového typu V případě, že prvky pole jsou proměnné hodnotového typu, obsahuje pole přímo jejich hodnoty, v případě referenčních typů obsahuje reference na jednotlivé objekty (např. string) Samotné pole je objekt referenčního typu, který je potomkem třídy System.Array

Vytvoření pole Deklarace: Datový typ[] identifikátor; Př.: int[] myIntegerArray; Pole je pouze deklarováno a není inicializováno, pole námi vytvořené je referenčního typu s hodnotou NULL Inicializace: Pro možnost použití nadeklarovaného pole je nutné použít operátor new() Př.: myIntegerArray = new int[velikost pole]; Deklarace a inicializace: Je možné provést zároveň Př.: int[] myIntegerArray = new int[4];

myIntegerArray[0] = 10; myIntegerArray[1] = 20; myIntegerArray [2] = 30; myIntegerArray [3] = 40; Index 0 10 Index 1 20 Index 2 30 Index 3 40

Inicializace polí – další možnosti Inicializace zároveň s nastavením hodnot prvků pole Není nutné uvádět rozsah pole Př.: string myStrArrMonths = new string[] {„Leden",„Únor",…,„Prosinec"}; Lze takto zapsat i bez new string[] Prvky takto inicializovaného pole lze libovolně v průběhu programu měnit

Délka pole Pomocí vlastnosti Length (pouze pro čtení) Praktické využití v cyklech při průchodu pole: public static void VypisObsahPole() { int[] myIntArray = {10,20,30,40}; for (int i = 0; i < myIntArray.Length; i++) Console.WriteLine((i+1) + ". prvek pole - " + myIntArray[i]); }

Vícerozměrná pole Pole mohou nabývat více než jeden rozměr – matice, 3D prostor, …. Příklad pole se čtyřmi řádky a třemi sloupci: int[,] intTwoDimensionalArray = new int[4,3]; K prvku, který se nachází na prvním řádku a druhém sloupci přistoupíme tímto způsobem: int prvek = intTwoDimensionalArray[0,1]; Analogicky je možné vytvořit troj a vícerozměrná pole nebo dokonce pole polí tzn. pole jehož prvky jsou opět pole

Úkoly (Struktury a výčtové typy) Navrhněte strukturu osoba se čtyřmi proměnnými (jméno - string, příjmení - string, věk - integer, pozice - string), vytvořte konstruktor pro tuto strukturu. Defaultní hodnoty vypište na konzoli a poté vytvořte novou strukturu se stejným názvem s defaultním konstruktorem a vypište členy struktury, nakonec je naplňte hodnotami z konzole a znovu vypište. Změňte příklad jedna tak aby pozice byla výčtovým typem a mohla nabývat pouze hodnot (dítě, student, pracující, důchodce)

Úkoly (pole) Vytvořte jednorozměrné pole, obsahující uživatelem zadaných 10 celých čísel. Vypočítejte aritmetický průměr z těchto čísel a vypište všechna čísla dělitelná 3mi. Pomocí dvourozměrného pole s 3x3 prvky vypočtěte determinant matice reprezentované tímto polem. Užijte jako pomoc Sarrusovo pravidlo. Princip Sarrusova pravidla :

Další operace s poli, třída Systém.Array Pole jsou odvozeny od třídy Systém.Array, mohou tedy využít metody, které tato třída nabízí Zjištění rozměrů pole myArray.Rank Převrácení prvků pole Array.Reverse(myArray) Zjištění dolních a horních indexů polí: myArray.GetLowerBound(č. rozměru, který chceme zjistit) myArray.GetUpperBound(č. rozměru, který chceme zjistit) Mělká kopie pole – klíčové slovo Clone Vyhledání prvku pole – BinarySearch Použití: //prvni parametr je pole ve kterem se ma hledat   //a druhy hledany objekt //pokud objekt není nalezen fce vrátí 0   int Index = Array.BinarySearch(pole,objektProNalezeni);

Seriály o programování v jazyce C# : www.živě.cz www.java2s.com Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… www.wikipedia.com Seriály o programování v jazyce C# : www.živě.cz www.java2s.com www.functionx.com www.csharp-station.com www.msdn.com www.bytes.com www.c-sharpcorner.com