Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Podobné dokumenty
Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Nové prvky v C# 3.0. David Keprt

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

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

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

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

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

KTE / ZPE Informační technologie

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

Algoritmizace a programování

Typický prvek kolekce pro české řazení

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Jazyk C# (seminář 6)

Z. Kotala, P. Toman: Java ( Obsah )

Zápis programu v jazyce C#

Datové struktury. alg12 1

IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#

Java a XML. 10/26/09 1/7 Java a XML

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Jazyk C# a platforma.net

Projekty pro výuku programování v jazyce Java

Úvod do programování v jazyce Java

boolean hasnext() Object next() void remove() Kolekce

Jazyk C# (seminář 5)

Generické programování

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Reaktivní programování v.net

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.

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.

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

IRAE 07/08 Přednáška č. 7. Začátek (head)

PREPROCESOR POKRAČOVÁNÍ

RMI Remote Method Invocation

KIV/ZIS cvičení 5. Tomáš Potužák

Abstraktní datové typy: zásobník

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Návrh softwarových systém. Návrh softwarových systémů

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Kolekce, cyklus foreach

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

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

RDF API a SPARQL syntaxe, API, příklady. 4IZ440 Reprezentace a zpracování znalostí na WWW Josef Petrák me@jspetrak.name

Soubor jako posloupnost bytů

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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

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

6 LINQ Strana LINQ Václav Pachta

KTE / ZPE Informační technologie

LINQ. (Language integrated query) Prezentace na 3IT353. Zpracovali: Martin Latiak, Michal Pěnka, Petr Spurný

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

7. Datové typy v Javě

Textové soubory. alg9 1

Ukládání a vyhledávání XML dat

Architektury databázových

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

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

Iterator & for cyklus

Informační systémy ve zdravotnictví. 6. cvičení

JAVA. Další jazyky kompilovatelné do Java byte-code

Úvod Přetěžování Generika Kolekce Konec. Programování v C# Další jazykové konstrukce. Petr Vaněček 1 / 31

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Objektově orientované programování

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

Programování v C++ 1, 17. cvičení

Principy objektově orientovaného programování

Michal Krátký, Miroslav Beneš

Příkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo

Algoritmizace a programování

Programování v Javě I. Leden 2008

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Skriptovací jazyky. Obsah

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

C# konzole Podíl dvou čísel, podmínka IF

9. přednáška - třídy, objekty

Výjimky. Tomáš Pitner, upravil Marek Šabo

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

Java a Caché IV: Manipulace s objekty

Databáze SQL SELECT. David Hoksza

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Java - výjimky. private void vstup() throws IOException {... }

typová konverze typová inference

Distribuované systémy a výpočty

Programování v C++ 2, 4. cvičení

Programování v Javě I. Únor 2009

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

JUnit příklad na použití

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

PB161 Programování v jazyce C++ Přednáška 8

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

Transkript:

Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10

Reakce na úkoly (1/2) Vytváření nových popisků uzlu Použití using bez try try { using (var reader = new StreamReader(path)) {... catch (Exception e) { Spoléhání na pořadí prvků v XML Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 2 / 10

Reakce na úkoly (2/2) Použití z-indexu Canvas.SetZIndex(line, 3); Malování prvků umožněno jen v jednom směru Zbytečné operace v těle delegátů el.mousedown += delegate (object sender, MouseButtonEventArgs e) { TextBlock txtblck = new TextBlock(); int index = findpoint(); string s = ""; foreach (var item in loadedset.elements) { s = item.attributes.tostring(); if (item.id == index) { txtblck.text = s; canvas.children.add(txtblck); Canvas.SetLeft(txtBlck, e.getposition(this).x); Canvas.SetTop(txtBlck, e.getposition(this).y); txtbxon = true; break; ; Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 3 / 10

Lambda výrazy = anonymní funkce pro vytváření delegátů či výrazových stromů delegate int somedelegate(int blah); static void Main(string[] args) { somedelegate del = (i) => i + 5; Func <int, int> fce = ((int i) => i + 2); Console.WriteLine(fce.Invoke(5)); Mohou být předány jako parametr metody Mohou být vráceny metodou Při přiřazení však staticky typované Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 4 / 10

LINQ Zkratka pro Language INtegrated Query Jednotný přístup k datům Typová kontrola, našeptávače Přístup např. ke: Kolekcím (vše co splňuje IEnumerable) XML Databázovým objektům Webovým službám Rozšiřitelné Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 5 / 10

Syntaxe Textová ukecaná syntaxe: int[] numbers = { 1, 2, 3, 4, 5, 6, 7 ; IEnumerable<int> bignumbers = from num in numbers where num > 5 select num; Podobná přirozenému jazyku, může být matoucí Fluent API (preferovaná): int[] numbers = { 1, 2, 3, 4, 5, 6, 7 ; IEnumerable<int> bignumbers2 = numbers.where(p => p > 5); Přehlednější, programátorštější Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 6 / 10

Dotazovací operace (1/3) Restrikce int[] numbers = { 1, 2, 3, 4, 5, 6, 7 ; IEnumerable<int> bignumbers2 = numbers.where(p => p > 5); Selekce public class Person { public string Name { get; set; public string Surname { get; set; public int Age { get; set; public string Address { get; set; List<Person> persons = new List<Person>(); var names= persons.select(p => new { p.name, p.surname ); Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 7 / 10

Dotazovací operace (2/3) Řazení persons.orderby(p => p.age).thenby(p => p.name); persons.orderbydescending(p => p.surname).thenby(p => p.name); Omezení počtu persons.orderby(p => p.age).thenby(p => p.name).take(10); Přeskočení prvních n persons.orderby(p => p.age).thenby(p => p.name).skip(20).take(10); Poslední s vlastností persons.last(p => p.age == 30); persons.lastordefault(p=>p.name=="pepa"); Analogicky First, FirstOrDefault Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 8 / 10

Dotazovací operace (3/3) Unikátnost persons.distinct(); Obsahuje nějaký prvek s vlastností persons.any(p=>p.name="karel"); Počet prvků s vlastností persons.count(p => p.age == 30); persons.where(p=>p.age==30).count(); Množinové operace Průnik persons.intersect(anotherpersons); Sjednocení persons.union(anotherpersons); Rozdíl persons.except(anotherpersons); Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 9 / 10

Úkol Stáhnout soubor Database.cs z mých stránek a includovat do projektu Nejprve po staru abecedně vzestupně setřídit osoby dle příjmení (Mergesort s comparatorem na string) a vypsat 10 unikátních dvojic jmen a příjmení, které jsou 5. - 15. v pořadí Udělat totéž pomocí LINQ Pomocí LINQ vypsat první osobu, která je v 5. ročníku či výše Pomocí LINQ zjistit počet lidí s OborKomb rovnou MI Pomocí LINQ zjistit, zda existuje osoba se jménem Zdeněk Vše vypsat do konzole v pořadí úkolů Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 10 / 10