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

Podobné dokumenty
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

Metodický list k didaktickému materiálu

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

Metodický list k didaktickému materiálu

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

Metodický list k didaktickému materiálu

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

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

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

prostřednictvím ICT Téma didaktického materiálu RNDr. Václava Šrůtková

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

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

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

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Ovládací panely

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OVK-VZ-III/2-ZÁ-306

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 EU-OVK-VZ-III/2-ZÁ-219

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

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-301. Informace, jednotka

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-214. Internetový prohlížeč

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Soubory a složky

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-211. Prezentace úvod

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OVK-VZ-III/2-ZÁ-318

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-317

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-302

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-205

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-207

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-305. Základní jednotka

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-213. Počítačová síť

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-101

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-304

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-210

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-310

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-217. Komprimace dat

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

Větvení programů příkaz IF

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-303. Soubory a složky

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-208

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-316

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

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 Číslo didaktického materiálu EU-OVK-VZ-III/2-ZÁ-319. Počítačové sítě

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-203. Word Styly, písma

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

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

IRAE 07/08 Přednáška č. 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-315

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

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

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

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

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

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

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

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

KTE / ZPE Informační technologie

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-308

Jazyk C# a platforma.net

Generické programování

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

Transkript:

Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň žáků Časový rozsah Klíčová slova III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OPVK-VT-III/2-ŠR-316 DUM RNDr. Václava Šrůtková čeština Programování v C# v příkladech III Objekty IV vlastnosti Seminář z informatiky Žáci ve věku 17 18 let Mírně pokročilí 1 2 vyučovací hodiny Třídy, metody, proměnné, vlastnosti Anotace Studenti se seznamují s koncepcí vlastností v C# a programují třídy, kde vlastnosti využívají k zpracování tabulkových dat. Použité zdroje ELLER, Frank. C# - začínáme programovat: podrobný průvodce začínajícího uživatele. 1. vyd. Praha: Grada, 2002, 240 s. ISBN 80-247-0324-6. VYSTAVĚL, Radek. Moderní programování: sbírka úloh k učebnici pro středně pokročilé. 1. vyd. Ondřejov: moderníprogramování, 2008-2009, 2 sv. ISBN 978-80-903951-3-8. VYSTAVĚL, Radek. Moderní programování: učebnice pro pokročilé. Ondřejov: moderníprogramování, 2011, 149 s. ISBN 978-80-903951-7-6. VYSTAVĚL, Radek. Moderní programování: učebnice pro středně pokročilé. Ondřejov: moderníprogramování s.r.o, 2008. ISBN 978-80- 903951-2-1. Typy k metodickému postupu učitele, doporučené výukové metody, způsob hodnocení, typy k individualizované výuce apod. Text je možno využít ke společné práci, samostatné přípravě studentů, domácímu studiu apod. Při společné práci je vhodné nejprve obtížnější úlohy rozebrat, potom společně se studenty implementovat na počítači. (Rozbor nejlépe na tabuli, synchronní řešení s promítáním). V pracovním listu je zadání cvičení většinou se jedná o úlohy, které by měli studenti naprogramovat samostatně. Není nutné, aby všichni zpracovali všechno, vhodné je diferencovat podle jejich zájmu a schopností. Obtížnější úlohy jsou označeny hvězdičkou. Součástí materiálu je zdrojový kód těchto příkladů.

Návrh způsobu hodnocení: ohodnocení samostatné práce během hodiny např. podle volby a počtu úloh a elaborace řešení (efektivnost, komentáře ). Metodický list k didaktickému materiálu Prohlášení autora Tento materiál je originálním autorským dílem. K vytvoření tohoto didaktického materiálu nebyly použity žádné externí zdroje s výjimkou zdrojů citovaných v metodickém listu. Obrázky (schémata a snímky obrazovek) pocházejí od autora. 316. Objekty IV vlastnosti Připomeneme si práci s dalším oknem tentokrát budeme chtít mít data z druhého okna v dispozici v prvním okně. Prostřednictvím druhého okna (dialogového) budeme zadávat údaje o osobách jméno, body, je nebo není kuřák, při stisknutí tlačítko OK je zatím přepíšeme do prvního okna. Druhé okno (vlastně jeho třídu) vložíme do projektu přes Project/Add Windows Form, nazveme ho ZadejOsobu a vybavíme potřebnými ovládacími prvky textboxjmeno, textboxbody, checkboxkurak s adekvátními popisky a tlačítky buttonok a buttonstorno. Okno ZadejOsobu bychom mohli zobrazit: private void buttonzadej_click(object sender, EventArgs e) ZadejOsobu Zadej = new ZadejOsobu(); Zadej.ShowDialog(); Budeme ale potřebovat zavřít okno Zadejosobu tlačítky OK a Storno a také umět rozlišit, kterým tlačítkem bylo vlastně uzavřeno. C# k tomu má

elegantní prostředek vlastnost DialogResult formuláře. Pomocí editoru vlastností nastavíme oběma tlačítkům hodnoty vlastnosti DialogResult OK a Cancel. Pak můžeme rozlišovat: if (Zadej.ShowDialog() == DialogResult.OK) Jak se dostat k hodnotám druhého okna? Našeptávač je nenabízí, teoreticky bychom k nim mohli přistupovat, kdyby měli modifikátor public, (Můžete vyzkoušet např. u textboxujmeno vlastnost Modifiers v okně Properties potom už máte k dispozici Zadej.textBoxJmeno.Text) ale prakticky je to nevýhodné. Jakmile bychom totiž v okně Zadejosobu cokoliv změnili, museli bychom to přepracovat v celém programu. Proto také systém všude standardně používá modifikátory private Lepší je použít soukromé (private nebo neoznačené) proměnné a veřejné metody a přistupovat pak k proměnným pouze pomocí metod. public ZadejOsobu() InitializeComponent(); public string ZjistiJmeno() public int ZjistiBody() return textboxjmeno.text; return Convert.ToInt32(textBoxBody.Text); public bool ZjistiKuraka() return (checkboxkurak.checked); Ve výchozím okně potom: private void buttonzadej_click(object sender, EventArgs e) ZadejOsobu Zadej = new ZadejOsobu();

if (Zadej.ShowDialog() == DialogResult.OK) string vyst = Zadej.ZjistiJmeno() + " " + Zadej.ZjistiBody().ToString(); if (Zadej.ZjistiKuraka()) vyst += " Kuřák"; else vyst += " Nekuřák"; textboxosoby.text += vyst + Environment.NewLine(); else MessageBox.Show("Storno"); C# má ale ještě lepší možnost řešení veřejného rozhraní vlastnosti. Vlastnost se sice používá jako proměnná, ale v podstatě je dvojicí metod. Get metoda, která za slovem return vrací hodnotu vlastnosti Set provádí přiřazení hodnoty do vlastnosti, přiřazovaná hodnota je value. Chybí-li část, je vlastnost jen k zápisu, chybí-li, pouze ke čtení. Přesnou syntaxi si ukážeme na našem příkladu. ZadejOsobu public string Jmeno return textboxjmeno.text; textboxjmeno.text = value;

public int Body //jen ke čtení return Convert.ToInt32(textBoxBody.Text); public bool Kurak //jen ke čtení FormOsoby return (checkboxkurak.checked); ZadejOsobu Zadej = new ZadejOsobu(); Zadej.Jmeno = "Zadejte jméno osoby"; if (Zadej.ShowDialog() == DialogResult.OK) else string vyst = Zadej.Jmeno + " " + Zadej.Body.ToString(); if (Zadej.Kurak) vyst += " Kuřák"; vyst += " Nekuřák"; textboxosoby.text += vyst + Environment.NewLine; Nabízí se ještě připravit si třídu osoba a vybavit ji stejnými vlastnostmi a metodou převodu na řetězec.

class Osoba string jmeno; int body; bool kurak; public string Jmeno return jmeno; jmeno = value; public int Body return body; body = value; public bool Kurak

return kurak; kurak = value; public string OsobaRet() string vyst = jmeno + " " + body.tostring(); if (kurak) vyst += " Kuřák"; else vyst += " Nekuřák"; return vyst; V C# se používá konvence, kdy se soukromé proměnné a odpovídající veřejné vlastnosti jmenují stejně, ale proměnné začínají malým písmenem a vlastnosti velkým. FormOsoby Osoba o = new Osoba(); ZadejOsobu Zadej = new ZadejOsobu(); Zadej.Jmeno = "Zadejte jméno osoby"; if (Zadej.ShowDialog() == DialogResult.OK) o.jmeno = Zadej.Jmeno; o.body = Zadej.Body; o.kurak = Zadej.Kurak; string pom = o.osobaret();

MessageBox.Show(pom); Důležité Z hlediska modifikovatelnosti programu je vhodné proměnné deklarovat jako soukromé (private) a přistupovat k nim pomocí veřejných (public) metod nebo vlastností. Vlastnost se sice používá jako proměnná, ale v podstatě je dvojicí metod. Get metoda, která za slovem return vrací hodnotu vlastnosti Set provádí přiřazení hodnoty do vlastnosti, přiřazovaná hodnota je value. Chybí-li část, je vlastnost jen k zápisu, chybí-li, pouze ke čtení. Pracovní list Cvičení Připravte nový projekt s třídami čtverec a krychle. Obě budou mít proměnnou (strana, hrana) a odpovídající vlastnost, bezparametrický a parametrický konstruktor, metody pro výpočet obvodu a obsahu, případně objemu a povrchu a metodu Info, která převede veškeré údaje na řetězec. Otestujte třídy v programu podle vzoru: Řešení namespace Vlastnosti_Cviceni class Ctverec double a; //strana public double A //vlastnost strana return a; a = value;

public Ctverec() //bezparam. konstruktor public Ctverec(double a) //param. konstruktor this.a = a; public double Obsah() return a * a; public double Obvod() return a * 4; public string Info() return "Čtverec o straně " + a.tostring() + " Obsah: " + Obsah().ToString() + " Obvod: " + Obvod().ToString(); class Krychle double a; //hrana public double A //vlastnost hrana return a; a = value; public Krychle() //bezparam. konstruktor public Krychle(double a) //param. konstruktor

this.a = a; public double Povrch() return 6*a * a; public double Objem() return a * a * a; public string Info() return "Krychle o hraně " + a.tostring() + " Objem: " + Objem().ToString() + " Povrch: " + Povrch().ToString(); public partial class Form1 : Form public Form1() InitializeComponent(); private void buttonctverec_click(object sender, EventArgs e) Ctverec c=new Ctverec(Convert.ToDouble(textBoxA.Text)); textboxvystup.text += c.info() + Environment.NewLine; private void buttonkrych_click(object sender, EventArgs e) Krychle k = new Krychle(Convert.ToDouble(textBoxA.Text)); textboxvystup.text += k.info() + Environment.NewLine;