Dátové typy, Stream, StringBuilder,...

Slides:



Advertisements
Podobné prezentace
YOUR LOGO Dátové typy, Stream, StringBuilder,....
Advertisements

Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Spolupráce mezi výkresy bloky (s atributy) Design center externí reference.
Maticové počítače. Při operacích s maticí se větší počet prvků matice zpracovává současně a to při stejné operaci. Proto se pro tyto operace hodí nejlépe.
Programování v jazyce C++ Dědičnost a polymorfismus.
IP adresace (IPv4) Velikost a určení IP adresy I. Epocha (dělení na třídy) II. Epocha (zavedení masky) Speciální adresy Příklady a řešení IP adres Souhrn.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Snímek 1 PowerPoint2OP381 Manažerská informatika 1 2OP381 Manažerská informatika 1 Microsoft PowerPoint 2016 – 2. část.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
PJV15 1 Vnořené ( nested ) a vnitřní ( inner ) členy Třídy či interfejsy mohou být členy tříd či interfejsů. Je-li X obalem Y a Y obalem Z, pak Z získá.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Projekt: Škola pro život Registrační číslo: CZ.1.07/1.4.00/ Číslo DUM: VY_32_INOVACE_02-informatika 8. třída_021 Základní škola: Základní škola.
Pravopisná cvičení 1 Autor: Mgr. Ivana Tesařová
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Slovní úlohy o společné práci
STATISTIKA Starší bratr snědl svůj oběd i oběd mladšího bratra. Oba snědli v průměru jeden oběd.
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
1. Tlačítko START 2. Podrobnější hledání 3. Zařízení a tiskárny 4
Výukový materiál zpracován v rámci projektu
ORGANIZACE DAT V POČÍTAČI
Přetěžování Datové typy.
Kurz algoritmizace a programování v jazyce C
Uživatelem definované datové typy
Programování v jazyce C++
Struktury.
Rysy MS Windows Možnost multitaskingu a multithreadingu
Digitální učební materiál zpracovaný v rámci projektu
ADT zásobník - příklad Prakticky aplikovatelný příklad využití ADT zásobník je vyhodnocování aritmetických výrazů v Postfixové notaci: Pro zápis aritmetických.
Databáze MS ACCESS 2010.
Algoritmizace a programování
Datové typy v jazyce C Datové typy void skalární aritmetické
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Lexikální atomy jazyka C
C# Vícevláknové aplikace
Rozpisy témat a odevzdávárny
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Technické prostředky v požární ochraně
Slovní úlohy o společné práci stejný čas
Stavební fakulta ČVUT, B407
Informatika pro ekonomy přednáška 8
Informatická školení F1 Office Pro Plus
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
MU002 Informatika II Základy algoritmizace 2/13
MU002 Informatika II Základy algoritmizace 1/13
Dotazovací jazyk SQL I.
Materiál byl vytvořen v rámci projektu
Remote login.
Slovní úlohy o společné práci
Název školy: Autor: Název: Číslo projektu: Název projektu:
A5M33IZS – Informační a znalostní systémy
Přednášky z Distribuovaných systémů
C# přehled vlastností.
MS Access Tabulka letní semestr 2013.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr
Datové typy v jazyce C Datové typy void skalární aritmetické
Průvodní list Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT   Vzdělávací materiál: Prezentace – zápis pro žáky Určen pro: 2. ročník oboru.
Databázové systémy a SQL
Informatika pro ekonomy přednáška 8
Informační systém základních registrů
Algoritmizace a datové struktury (14ASD)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Algoritmizace a datové struktury (14ASD)
Hromadné dokumenty opakující se pro kolekci osob
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Slovní úlohy o společné práci − 3
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Dátové typy, Stream, StringBuilder,...

Dátové typy Hodnotové a referenčné

Typy Keyword .NET Framework Type Description Variable Declaration Example bool System.Boolean Boolean type; a bool value is either true or false. true or false bool val1 = true; bool val2 = false; byte System.Byte 8-bit unsigned integral type 0 to 255 byte val1 = 12; char System.Char 16-bit unicode character 0 to 65535 char c = ‘a’; char c = 255; decimal System.Decimal 128-bit fixed-point decimal type with 28 significant digits -7.9e28 to 7.9e28 decimal val = 1.23M; double System.Double 64-bit double-precision floating point type -1.79e308 to 1.79e308 double val1 = 1.23; double val2 = 4.56D; float System.Single 32-bit single-precision floating point type -3.40e38 to 3.40e38 float val = 1.23F ;

Keyword .NET Framework Type Description Variable Declaration Example int System.Int32 32-bit signed integral type -2,147,483,648 to 2,147,483,647 int val = 12; long System.Int64 64-bit signed integral type -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 long val1 = 12; long val2 = 34L; sbyte System.SByte 8-bit signed integral type -128 to 127 sbyte val = 12; short System.Int16 16-bit signed integral type -32,768 to 32767 short val = 12; string System.String Immutable string of 16-bit Unicode characters All valid string characters string val = "Hello world." uint System.UInt32 32-bit unsigned integral type 0 to 4,294,967,296 uint val1 = 12; uint val2 = 34U; ulong System.UInt64 64-bit unsigned integral type 0 to 18,446,744,073,709,551,615 ulong val1 = 12; ulong val4 = 78UL; ushort System.UInt16 16-bit unsigned integral type 0 to 65535 ushort val1 = 12;

Inicializácia System.Int32 x = 5; int x = 5; x = new int(); - default i int je 0 Odkazové typy defaultne ukazujú na null

Operácie Typ Operátor Funkcia Príklad Arithmetic + Add x = 1 + 2; - Subtract x = 1 - 2; * Multiply x = 1 * 2; / Divide x = 1 / 2; % Modulus x = 5 % 2; vráti Konkatenace reťazacov String concatenation string str = "Hello " + "World"; Increment/decrement ++ Increment int x = 5; int y = x++; // hodnota y je 5 // hodnota x je 6 -- Decrement int x = 5; int z = --x; // hodnota z je 4 // hodnota x je 4

Typ Operátor Funkcia Príklad Porovnanie, výsledok true/false == Rovný 1 == 1 would return true (1 is equal to 1) != Nerovný 1 != 1 would return false 1 != 2 would return true (1 is not equal to 2) < Menší 1 < 2 would return true (1 is less than to 2) > Väčší 2 > 1 would return true (2 is greater than to 1) <= Menší alebo rovný 1 <= 1 would return true (1 is equal to 1) >= Väčší alebo rovný 1 >= 1 would return true (1 is equal to 1) Logický && A || Alebo true false

Priradenie += Pripočítaj a priraď int x = 5; x += 100; // x 105; -= Odpočítaj a priraď int x = 5; x -= 100; // x 95; *= Vynásob a priraď int x = 5; x *= 100; // x 500; /= Vydeľ a priraď int x = 100; x /= 100; // x 20; %= Modulo a priraď int x = 5; x %= 100; // x 0;

Pretypovanie Implicitné Explicitná Ku konverzii dôjde ak by bola bezstratová Automatická konverzia Explicitná Je nutné zadať ak môže byť strata dát (typ) hodnota int x = (int)3.5f;

Implicitné pretypovanie

Strata dát

Pretypovanie referenčných typov Implicitné – Upcasting string str = "Hello World"; object obj = str; Explicitné – Downcasting castobject obj = "Hello World"; string str = (string)obj; object obj = "Hello World"; string str = (obj as string);

Pretypovanie hodnotového na referenčný Boxing Vytvorenie kópie hodnoty a jej umiestnenie na heap int x = 100; object obj = x;

Unboxing object obj = 100; int x = (int)obj;

Pole Pole je referenčný typ Všetky elementy musia byť rovnakého typu Pole začína od 0

Deklarácia a inicializácia Pole Deklarácia a inicializácia int[] array1; int[] array2 = new int[3]; int[] array3 = new int[3] { 0, 1, 2 }; int[] array4 = new int[] { 3, 4, 5 };

Jagged Array Jagged array – pole ukazateľov na polia int[][] array1 = new int[3][] {new int[3]{1,2,3}, new int[4]{4,5,6,7}, new int[5]{8,9,10,11,12}};

Podmienky IF Else Case return ((x == 0) ? "Hello" : "Goodbye")

Foreach int[] numbers = {1,4,9,16}; foreach( int i in numbers ) { Console.WriteLine(" {0}", i); }

Řetězce jsou implementovány primitivním referenčním typem String tento typ je nezměnitelný jeho hodnoty jsou uloženy ve speciálních tabulkách (ne na haldě) jejich identita je dána obsahem jsou vždy inicializovány literálem, jejich konstruktor se nedá volat všechny operace se chovají tak, že vrátí nový řetězec místo, aby změnily stav stávajícího

Řetězce chovají se jako kolekce typu System.Char – implementují IEnumerable, mají indexer základní řetězcové operace – Concat, Substring, Replace, Insert, ToUpper, ... přetížené operátory - + (konkatenace), == (porovnání obsahů), != (různost obsahů), = (kopíruje obsah řetězce do jiného řetězce)

StringBuilder StringBuilder konstruktorem se vytvoří základní buffer o 16 bytech, který se prodlužuje a zkracuje podle potřeby StringBuilder sb1 = new StringBuilder();sb1 = "First string";StringBuilder sb2 = new StringBuilder("Second string");

String vs StringBuilder Optimum StringBuilder String Počet konkatenací

Operácie StringBuilder Method Description and Example Append StringBuilder sb2 = new StringBuilder("Second string"); sb2.Append(" Third string"); Insert StringBuilder sb2 = new StringBuilder("Second string"); sb2.Insert(0,"First string "); Remove StringBuilder sb2 = new StringBuilder("Second string"); sb2.Remove(12,6); Replace StringBuilder sb3 = new StringBuilder("I love cats"); sb3.Replace("cat","dog"); ToString StringBuilder sb1 = new StringBuilder("Click Me..."); button1.Text = sb1.ToString();

Výjimky Chybové stavy jsou řešeny většinou pomocí výjimek – při výjimce se přeruší vykonávání kódu, vytvoří se objekt obsahující informace a hledá se někdo, koho to zajímá (v krajním případě uživatel aplikace) speciální konstrukce v jazyce umožňují vyjádřit zájem na daném místě kódu převzít informaci o výjimce a nějak ji zpracovat

tato poskytuje základní vlastnosti a kořen hierarchie Třídy výjimek Informace o výjimce se předávají prostřednictví speciálních tříd, které dědí od třídy System.Exception tato poskytuje základní vlastnosti a kořen hierarchie vlasnosti – Message, Source, StackTrace, TargetSite, InnerException slovník Data – dodatečné informace jako dvojice klíč hodnota (může je přidávat i uživatel)

všechny vlastnosti jsou read-only System.Exception má čtyři konstruktory defaultní bez parametrů s jedním parametrem typu string s jedním parametrem typu string a jedním typu Exception protected konstruktor pro deserializaci všechny vlastnosti jsou read-only

Hierarchie výjimek

konstrukce try blok catch blok finally blok kód se vykonává Chytání výjimek konstrukce try blok catch blok finally blok kód se vykonává vykonává se try blok a pokud se dojde na jeho konec, předá se řízení do finally pokud dojde k výjimce přeskočí se na začátek příslušného catch bloku a pak se pokračuje jako v 1. vykoná se finally blok

Chytání výjimek je možné vynechat catch blok nebo finally blok, ale ne oba příkaz catch může být specifický – pak je tvaru catch (typ [identifikátor]) platí, že při vzniku výjimky se řízení předá do prvního specifického bloku catch, jehož typ je typem vytvořeného objektu výjimky. typ musí být odvozen od System.Exception

obvykle za sebe řadíme specifické catch bloky se vzrůstající obecností Chytání výjimek obvykle za sebe řadíme specifické catch bloky se vzrůstající obecností pokud není výjimka zachycena ve funkci, kde vznikla nebo je znovu vyhozena, je předána nadřízené funkci, to se děje tak dlouho dokud není zpracována v krajním případě je předána runtimu, který ji zpracuje tak, že ukončí běh programu a uživatele informuje o výjimce, která nebyla v programu zpracována.

Vnořené bloky try je možné do sebe bloky try vnořovat : try { //A //B } catch { //C finally { //uklid } //D catch { // osetreni chyb } bod A – rizeni se preda bloku catch na konci bod B – provede se C, pak se provede finally pak se to preda do D; pokud se nezachyti, provede se finally a da se to do vnejsiho catch bloku bod C – provede se finally a pak se preda do vnejsiho catche, totez pokud je to v bloku finally

Výjimku je možné vygenerovat pomocí příkazu throw vyjimka Příkaz throw Výjimku je možné vygenerovat pomocí příkazu throw vyjimka vyjimka je jakýkoliv výraz, který je typu odvozeného od System.Exception typicky se použije výraz s operátorem new nebo reference na předpřipravený objekt výjimky throw new Exception(“Vyjimka“); bez parametru slouží k přeposlání výjimky dál (částečné zpracování) pokud vyhazujeme výjimku v catch bloku, použijeme vlastnost InnerException třídy System.Exception k uložení výjimky, kterou jsme zpracovávali GetBaseException, vyjimky pak tvori linked list

Bloky finally kód v nich se provede vždy, i když došlo v bloku try k výjimce používají se k úklidu (zavření souborů a podobně) a jiným nezbytným akcím místo dvojice try...finally, kde se v bloku try alokují zdroje a v bloku finally uvolňují lze použít konstrukci

Príklad komplexného ošetrenia Exception

Regulární výrazy jsou reprezentovány třídou System.Text.RegularExpressions.RegEx jsou to speciální řetězce, které slouží k vyhledávání a nahrazování podřetězců v jiných řetězcích jsou kompatibilní s PERL5 regulárními výrazy

Regulární výrazy základní typ je prostě podřetězec – “abab”, najde řetězec, obsahující právě tyto znaky v tomto pořadí lze vytvářet složitější typy vkládáním speciálních znaků například znaky pro polohu v řetězci ^, $ - začátek a konec řádku, \z – konec řetězce, \b – začátek slova, např “^abc$”

znaky pro speciální znaky – Regulární výrazy znaky pro speciální znaky – \t – tab, \n – newline, \u0020 – unicodový znak s číslem 32 např. “^ab\u0022\n” znaky pro opakování – píší se za znak a určují, že se musí(může) v příslušném řetězci opakovat a kolikrát – *(0 nebo více), +(1 nebo více), ?(0 nebo 1), {n}, {n,}, {n,m} (n, n nebo více, mezi n a m) normálně je hladové (hledá nejdelší podřetězec), přidáním dalšího otazníku se změní na líné (nejkratší)

Regulární výrazy znaky pro typy znaků – pokud je na příslušné pozici znak z příslušného seznamu nebo příslušného typu . – jakýkoliv jeden znak, x|y – znak x nebo y, [xyz] – kterýkoliv z x, y a z, [a-z] – rozsah typy - \d – číslice, \D nečíslice, \s – whitespace ap. http://www.exforsys.com/tutorials/csharp/regular-expressions-and-csharp-.net.html

Regex objIntPattern=new Regex("^-[0-9]+$|^[0-9]+$"); Matches/Match string t14 = " test 1 test 2.3 test 47 "; string p14 = @"(\d+\.?\d*|\.\d+)"; MatchCollection mc14 = Regex.Matches(t14, p14); Regular Expression Library: http://www.codeproject.com/KB/recipes/regexlibbuilder.aspx

System.Convert

Vstup a výstup – souborový systém BCL obsahuje množství tříd, které umožňují pracovat se souborovým systémem jsou ve jmenném prostoru System.IO základní třídy jsou FileSystemInfo, FileInfo, DirectoryInfo a DriveInfo. Reprezentují různé prvky systému souborů.

Práce se soubory a adresáři FileInfo a DirectoryInfo mají konstruktor, kterému se předá cesta k souboru nebo k adresáři mají instanční metody, které implementují operace na souborovém systému – kopírování, vytváření, přesouvání, otvírání a podobně existují třídy File a Directory, které poskytují stejnou funkcionalitu, ale jejich příslušné metody jsou statické a cesty k souborům se jim předávají jako parametry priklad

Třída Path pomocná třída pro práci s řetězci obsahujícími cesty k souborům metody jako ChangeExtension, GetExtension, GetPathRoot, HasExtension – pracují s řetězcem cesty metoda GetTempFileName – založí dočasný soubor a vrátí cestu k němu

třída, která umožňuje sledovat změny v daném adresáři FileSystemWatcher třída, která umožňuje sledovat změny v daném adresáři má konstruktor, kterému předáme cestu k adresáři má vlastnost Filter, která obsahuje masku, jaké soubory se mají sledovat vlastnost NotifyFilter určuje, které události se mají sledovat události Changed, Created, Deleted a Renamed typu FileSystemEventHandler