Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Podobné dokumenty
Prevody z pointfree tvaru na pointwise tvar

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Task, async, await METÓ DY VÝPOČTOVEJ INTELIGENCIE A C# FA K ULTA E L E K T ROTECHNIKY A INFORMATIKY S LOVENSKÁ T E CHNICKÁ U NIVERZITA

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

Funkcia - priradenie (predpis), ktoré každému prvku z množiny D priraďuje práve jeden prvok množiny H.

Objektovo orientované programovanie I ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 2

Metóda vetiev a hraníc (Branch and Bound Method)

Iracionálne rovnice = 14 = ±

8. Relácia usporiadania

Čo ak program potrebuje pamäť, ktorej veľkosť závisí od konkrétneho vstupu?

Ak stlačíme OK, prebehne výpočet a v bunke B1 je výsledok.

MANUÁL K TVORBE CVIČENÍ NA ÚLOHY S POROZUMENÍM

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Vytvorenie bootovacieho CD

Riešenie cvičení z 3. kapitoly

Modul PROLUC Podvojné účtovníctvo

Začínam so zadaním z NEPOUŽÍVAME ROZSAH POKIAĽ HO MUSÍME PRESKOČIŤ

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

KOMISNÝ PREDAJ. Obr. 1

Používateľská príručka k aplikácii na SOČ

TomTom Referenčná príručka

Import Excel Univerzál

Stiga Autoclip 200 Series

Ako započítať daňovú licenciu

Užívateľská príručka k funkcii Zastavenie a pretočenie obrazu

Pracovné prostredie MS EXCEL 2003.

Programovanie.NET, C++ - najbližšie termíny:

Total Commander. Základné nastavenia

Diplomový projekt. Detská univerzita Žilinská univerzita v Žiline Matilda Drozdová

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

Univerzálne dia kové ovládanie TV SAT DVD AUX

Kvadratické funkcie, rovnice, 1

Základy algoritmizácie a programovania

V nej je potrebné skontrolovať správnosť prenesených a prepočítaných zostatkov z roku 2008.

Imagine. Popis prostredia:

Databázové systémy. Dátové modelovanie - relačný model

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

Práca s elektronickou prihláškou SOČ

Ďalší spôsob, akým je možné vygenerovať maticu je použitie zabudovaných funkcií na generovanie elementárnych matíc.

Tlač do PDF a odosielanie dokladov cez . OBSAH

GIS aplikácie Príručka pre užívateľa

2. PRIDANIE ZÁVEREČNEJ PRÁCE DO EVIDENCIE ZÁVEREČNÝCH PRÁC (EZP) A OZNAČENIE PRÁCE AKO FINÁLNEJ.

Školská sieť EDU. Rozdelenie škôl. Obsah: Deleba škôl podľa času zaradenia do projektu: Delba škôl podľa rýchlosti pripojenia:

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

Produktovo-skupinová inzercia so spoločnosťou Google v spolupráci s ASData a BlueWinston.

Vyhľadávanie a práca so záznamami - CREPČ 2

7.1 Návrhové zobrazenie dotazu

Postup registrácie certifikátov do Windows

Lineárne nerovnice, lineárna optimalizácia

FREEIP. Aplikácia pre Android

Neplatené voľno / absencia zadanie v programe, oznamovacia povinnosť

ONLINE POBOČKA. pre zamestnávateľov MANUÁL

Finančný manažment, finančná matematika a účtovníctvo

Vytvorenie používateľov a nastavenie prístupov

Dell S2718H/S2718HX/S2718HN/ S2718NX Dell Display Manager Návod na obsluhu

DALI, pomoc a riešenia

Microsoft Outlook. Stručný prehľad základných funkcií. Ing.Anna Grejtáková, SPP DFBERG

Studentove t-testy. Metódy riešenia matematických úloh

Mgr. Stanislav Fila, psychológ CPPPaP Banská Bystrica Centrum pedagogicko-psychologického poradenstva a prevencie (bývalá KPPP) Banská Bystrica

REBRÍČKY. Predaj CD za mesiac 4U2Rock. Počet CD predaných za mesiac. K-Band D. A. R. Metalfolk. Mesiac

Prehľad nového TwinSpace

NEINTERAKTÍVNA KOMUNIKÁCIA

Automatický timer pre DX7 návod na inštaláciu a manuál

Spracovanie informácií

RIEŠENIE NIEKTORÝCH ÚLOH LINEÁRNEJ ALGEBRY V PROSTREDÍ MS EXCEL. 1. Zadáme prvky matice A a B do buniek pracovného hárku zošita MS Excel

Pozičné číselné sústavy. Dejiny. Číselná sústava je spôsob, akým sú zapisované čísla pomocou znakov (nazývaných cifry).

je zmena operácie ktorou z nelineárneho systému môže spraviť lineárny. Týmto krokom sme získali signál ktorý môžeme spracovať pomocou LDKI sústavy.

Postup vkladania záverečnej práce do systému evidencie záverečných prác (EZP):

Predaj cez PC pokladňu

Referenčná ponuka na prístup ku káblovodom a infraštruktúre. Príloha 7 Poplatky a ceny

AIS2 Hodnotenie študentov po skúške POMÔCKA PRE VYUČUJÚCICH

Limita funkcie. Čo rozumieme pod blížiť sa? y x. 2 lim 3

Používateľská príručka pre autorov Prihlásenie

Dodanie tovaru a reťazové obchody Miesto dodania tovaru - 13/1

Príručka pre prostredie Digitálnej autoškoly pre inštruktorov časť elearning

Úvodná strana IS ZASIELKY Prvky úvodnej stránky:

Essox: Upgrade systému Microsoft Dynamics CRM

Strojový kód, assembler, emulátor počítača

Mgr. Stanislav Fila, psychológ CPPPaP Banská Bystrica Centrum pedagogicko-psychologického poradenstva a prevencie (bývalá KPPP) Banská Bystrica

Používateľská príručka pre autorov

RIZIKO V PODNIKU. Prípadová štúdia 2. Ing. Michal Tkáč, PhD.

Pravdepodobnosť. Rozdelenia pravdepodobnosti

Manuál pre používanie programu KonverziaXML_D134

Program "Inventúra program.xlsm"

Finančné riaditeľstvo Slovenskej republiky. Informácia k výpočtu preddavkov na daň z príjmov fyzických osôb

Náhrada i:key nová služba Internet banking TB aktívny bez limitu

Cez tlačidlo Vyhľadať zvolíte miesto v PC, kde sa HW kľúč nainštaluje. Štandardne je prednastavená inštalácia do priečinka, kde je nainštalovaný progr

Príručka so stručným návodom

Import cenových akcií FRESH

Manuál Klientska zóna

PPC brief. Zadanie pre tvorbu PPC reklamnej kampane

Ing. Motešický POLOVODIČE

Roverský projekt ako na to?

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ. Metodika verzií zdrojového kódu

Transkript:

Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Statické členy Statické členy nie sú takým pilierom OOP ako dedičnosť alebo polymorfizmus, ale sú užitočným prvkom K statickým členom a metódam môžete pristupovať aj keď nemáte vytvorenú žiadnu inštanciu, dokonca môžete vytvárať celé statické triedy

Namespace Triedy sú v drvivej väčšine organizované do menných priestorov (namespace)

Implementácia getterov a setterov =

Override a virtual Overridnuť môžeme v C# len metódu, ktorá je označená ako virtual V Jave sú všetky metódy automaticky virtuálne V ProgrammerCalculator by sme sa k pôvodnej metóde dostali pomocou kľúčového slova base napríklad base.add(num1, num2)

Abstraktné triedy Nemôžeme vytvoriť objekt abstraktnej triedy, musíme tak vytvoriť triedu, ktorá ju bude dediť Ide o niečo podobné ako interface (bude vysvetlené ďalej) Abstraktná trieda môže obsahovať tiež abstraktné metódy, ktoré treba implementovať v odvodených triedach, tieto metódy sú tak implicitne virtuálne

Interface Interface je vlastne abstraktná trieda, avšak nemá implementované žiadne metódy Implementáciu treba napísať do odvodenej triedy Trieda môže implementovať viacero interfacov (abstraktnú resp. hocijakú triedu len jednu) Zvyknú sa pomenúvať tak, že prvé písmeno je I

Partial class

Generics ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Aký problém vieme riešiť s generickými typmi? Predstavme si, že chceme implementovať zoznam čísel typu integer nižšie vidíme napríklad metódu Add Ak chceme implementovať podobný zoznam kníh, potrebujeme vytvoriť ďalšiu triedu => neefektívne

Neefektívne riešenie problému Ako možné riešenie problému sa ponúka nižšie uvedený variant Je však z hľadiska výkonu aplikácie veľmi neefektívny

Riešenie problému pomocou generického typu Namiesto konkrétneho typu premennej/objektu napíšeme zátvorky <> a do nich napríklad písmeno T ako template šablóna Teraz môžeme vytvoriť inštanciu zoznamu pre nami požadovaný typ premennej alebo objektu

Použitie generického typu v praxi V praxi budete skôr používať preddefinované generické zoznamy ako vytvárať nové Nájdete ich na stránke: https://msdn.microsoft.com/enus/library/system.collections.generic(v=vs.110).aspx

Delegáty, anonymné metódy, lambda výrazy ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Delegát Objekt, ktorý vie, ako zavolať metódu alebo skupinu metód Dá sa povedať, že ide o referenciu na funkciu Užitočný pre dizajn frameworkov a podobne

Pochopenie princípu delegátov Predstavme si, že máme metódu, v ktorej chceme urobiť nejakú nešpecifikovanú funkciu, ktorá nám niečo vráti, ale poznáme nejaký jej všeobecný princíp (predpis) Keby sme chceli delegáta pre matematické operácie, tak napíšeme: Je to predpis pre metódu, ktorá dostane 2 parametre typu int a vráti výsledok typu int Napíšeme si takúto metódu: Pokiaľ chceme zavolať túto metódu, tak jej musíme odovzdať metódu, ktorá spĺňa daný predpis, teda má 2 parametre int a vracia int: Následne použijeme volanie: A dostaneme výsledok 3

Pochopenie princípu delegátov Predstavme si zložitejšiu metódu: Ako parameter dostáva pole integerov a operáciu typu MathOperation Volanie metódy: Výsledok je 21 všetky čísla v poli sa sčítali, nakoľko sme využili metódu Plus Pozrite si video pre podrobnejšie vysvetlenie

Delegát + anonymná metóda Namiesto Plus môžeme zavolať anonymnú metódu, ktorá je odovzdaná do GetNumber a zodpovedá delegátu MathOperation a preto ju môžeme použiť:

Delegát + lambda výraz Je to podobný zápis ako na predošlom slajde Odovzdávame lambda výraz ako delegát

Delegáty Delegáty vieme definovať aj ako bežné premenné Podobne vieme namiesto lambda výrazu napísať do deklarácie del aj anonymnú metódu

Delegáty integrované v.net Ide väčšinou o generické delegáty Func<>

Lambda výrazy ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Lambda výraz Je to anonymná metóda bez modifikátora prístupu, bez mena, bez slova return

Lambda výrazy - vysvetlenie Predstavme si, že máme metódu, ktorá nám vráti druhú mocninu čísla Zápis pomocou lambda výrazu a delegátov:

Lambda výrazy iný príklad

Lambda praktické použitie - video

Udalosti / events ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Eventy Udalosti alebo eventy sú mechanizmom pre komunikáciu medzi objektmi Predstavme si, že máme funkciu na enkódovanie videa, ktorá nám má zaslať mailovú správu, keď enkódovanie skončí Takúto funkciu chceme doplniť o funkcionalitu zaslania aj SMS správy Riešenie nižšie je neefektívne, nakoľko pri každom novom type správy musíme pridať nový riadok kódu

Eventy Efektívnejšie je vyslať správu, ktorú prijmú objekty, ktoré si subscribli (majú nastavené) prijímanie takýchto správ

Eventy Vidíme, že objekty na odosielanie mailov a SMS správ obsahujú obslužnú metódu pre správy, ktoré vysiela video enkóder

Delegát v eventoch Delegát v tomto prípade funguje ako kontrakt medzi vysielateľom a prijímateľom (subscriberom) správy

Ako naprogramovať spomínanú aplikáciu s eventmi? Enkódovanie videa simulujeme nasledovným kódom: V hlavnej metóde vytvárame inštanciu videa a videoenkódera:

Ako naprogramovať spomínanú aplikáciu s eventmi? Vo videoenkóderi implementujeme event, pričom musíme dodržať 3 kroky: Definovať delegát Definovať event (udalosť) založenú na delegáte v predošlom bode Spustiť udalosť

Ako naprogramovať spomínanú aplikáciu s eventmi? Následne potrebujeme nejakých subscriberov, ktorí budú na udalosť reagovať

Eventy a delegáty v praxi - video

Použité zdroje http://wikipedia.org http://www.zajtra.sk/programovanie/165/objektovo-orientovaneprogramovanie-v-normalnej-ludskej-reci Syncfusion e-books Programming with Mosh http://youtube.com