Pokročilá práce s proměnnými

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

Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď

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

Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Nejzajímavější jsou události MouseDown a KeyDown.

Takto chápanému druhu objektů se říká TŘÍDA.

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

Podmíněné vykonávání

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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

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)

Jazyk C# a platforma.net

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

Jazyk C# a platforma.net

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

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.

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

UŽIVATELSKÉ ROZHRANÍ WINDOWS-FORM DESKTOPOVÉ APLIKACE - CVIČENÍ

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

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

KOPÍROVÁNÍ TEXTOVÉHO POLE

Programování v jazyku C# II. 4.kapitola

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

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

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

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

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

Aplikace pro vykreslování grafů elementárních funkcí

15. Projekt Kalkulačka

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

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

Středoškolská odborná činnost. Obor SOČ: 1. Matematika a statistika GRAFY FUNKCÍ

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

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

Komponenty v.net. Obsah přednášky

Jazyk C# (seminář 7)

Kapitola 3. Projděte si kapitolu 3 knihy Moderní programování učebnice pro středně pokročilé a snažte se všemu porozumět.

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

Obsah přednášky. GDI+ Tvorba vlastních komponent Vlastní kreslení 1/36

Metodický list k didaktickému materiálu

Projekt Obrázek strana 135

Větvení programů příkaz IF

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

VOZIDLA. Uživatelská příručka SeeMe - Ecofleet. Provozovatel GPS služeb: pobočka ZNOJMO pobočka JIHLAVA pobočka DOMAŽLICE pobočka PRAHA Identifikace

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

Zápis programu v jazyce C#

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

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

Náhodná a pseudonáhodná čísla

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

Tvorba posterů prakticky

Metodický list k didaktickému materiálu

Algoritmizace a programování

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

Regulární výrazy. Vzory

Ovládání mapového prohlížeče a aplikace. Šumperk : Mapa města

Metodický list k didaktickému materiálu

MALUJEME v MALOVÁNÍ. Základní nabídka. a) tažením úchytů umístěných v pravém dolním rohu a na spodním okraji obrázku

PROGRAMOVÁNÍ PRO MS WINDOWS 1

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

Přístroj podporuje 16 druhů formátů souborů, mezi které patří PDF, CHM, EPUB, TXT, HTM, HTML, RTF, PDB, DJVU, DJV, iw44, iw4, FB2, PRC, MOBI, a TCR.

Zásady kreslení Kreslení na obrazovku 139

Ovládání mapového prohlížeče a aplikace. Přehled honiteb České republiky

Jazyk C# (seminář 6)

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

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

Archiv elektronických dokumentů Zela

PREPROCESOR POKRAČOVÁNÍ

ÚLOHA 4-J-00 Projděte si kapitolu 4 knihy Moderní programování učebnice pro začátečníky a snažte se všemu porozumět.

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

Praktická cvičení v grafickém editoru GIMP. březen 2012

SignEditor 1 - návod k použití

Ovládání mapového prohlížeče a aplikace. Mohelnice: katastrální mapa

typová konverze typová inference

8 Třídy, objekty, metody, předávání argumentů metod

Hromadné vkládání multimédii k předmětu (přírůstku)

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

DesignCAD Express poznámky k vydání verze z 22/07/2015

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

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

1. Programovací jazyk C# a vývojové prostředí

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Klíčové pojmy: Události, handlery, třída Graphics, pera, stětce, kreslení vyplněných a nevyplněných objektů.

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

PŘETĚŽOVÁNÍ OPERÁTORŮ

Generické programování

Předdefinované dialogy

Transkript:

Pokročilá práce s proměnnými

Protokolování Př. program, který bude protokolovat věty zadané uživatelem. polevěta, poleprotokol, tlačítkoodešli poleprotokol: ReadOnly na True Multiline na True ScrollBars na Both WordWrap na False

Složené přiřazení řetězce potřebujeme vzít text z horního pole a přidat ho k textům, které již jsou ve spodním poli a horní pole poté vymazat private void tlačítkoodešli_click(object sender, EventArgs e) { poleprotokol.text += polevěta.text; polevěta.text = null; } výraz a += b; znamená přiřaď do a to, co tam bylo plus b alternativně lze zapsat i pomocí běžného přiřazení: a = a + b;

Řádkování pro odřádkování v řetězci se používá statická vlastnost Newline třídy Environment poleprotokol.text += polevěta.text + Environment.NewLine;

Složení přiřazení čísla operátor += lze kromě připojení jednoho řetězce ke druhému použít i na zvětšení jednoho čísla o druhé ke zmenšení o číslo se používá operátor = Př. číslo += 10; funguje jako číslo = číslo + 10; číslo =20; funguje jako číslo = číslo 20;

Operátory ++ a -- Zvětšování a zmenšování o jedničku je v programování natolik časté, že na něj existují speciální operátory. ++ zvětší číslo o jedničku -- zmenší číslo o jedničku upravte předchozí program využitím ++ a --

Počítání Často se počítá, kolikrát se něco stalo, kolik je něčeho apod. Př. program, který spočítá, kolikrát někdo stisknul tlačítko

Potřebujeme nějakou proměnnou, do které budeme ukládat počet stisků. Proměnná musí vydržet déle, např. po celou dobu běhu programu, takže takovou proměnnou není možné deklarovat např. v metodě Load okna programu nebo Click tlačítka, protože při ukončení metody by taková proměnná zanikla. A to ještě neumíme, takže

Okno programu jako třída Vývojové prostředí nám automaticky vytváří třídu oknoprogramu. Okno programu je samozřejmě objektem, ale ve skutečnosti to, čemu dáváme název oknoprogramu, je nepojmenovanou instancí třídy oknoprogramu. public partial class oknoprogramu : Form na začátku každého našeho programu definuje novou třídu oknoprogramu odvozenou od třídy Form třída Form obsahuje všechno, co okno potřebuje

Ve vývojovém prostředí to funguje tak, že okno programu se odvozuje od třídy Form. Má tedy všechny složky jako ona plus něco navíc, třeba obslužné metody různých událostí v našem případě obsluhy stisků tlačítek. Ve třídě lze i deklarovat proměnné, v tom případě tyto proměnné existují v celé třídě a říká se jim členské proměnné. Proměnné, které jsme dosud používali, a které existovaly jenom uvnitř metod se nazývaly tzv. lokální proměnné.

using System; using System.Drawing; using System.Windows.Forms; namespace Počítání_stisků { public partial class oknoprogramu : Form { int početstisků = 0; public oknoprogramu() { InitializeComponent(); } private void tlačítkostisknimě_click(object sender, EventArgs e) { početstisků++; } private void tlačítkozobrazpočet_click(object sender, EventArgs e) { string zpráva = "Počet stisků: " + Convert.ToString(početStisků); MessageBox.Show(zpráva); } } } private void tlačítkovynulujpočitadlo_click(object sender, EventArgs e) { početstisků = 0; MessageBox.Show("Počitadlo vynulováno!"); }

Vyrobte program, který spojí tři textová pole do jednoho, kde bude kompletní adresa. Vyrobte program, který bude průběžně přičítat zadaná čísla.

Př. pohybující se panáček tlačítko posune o 5 px daným směrem S obrázky se pracuje jako s objekty třídy Image. Ze souboru lze obrázek načíst statickou metodou Image.FromFile. Metoda má jeden parametr jméno souboru. Umí PNG, JPEG, BMP, ICO, GIF, TIFF, WMF a EMF. Obrázek se vykresluje do kreslicí plochy voláním metody DrawImage. Jedna z variant vypadá DrawImage(obrázek, x, y); Aby obrázek neproblikával, nastavte vlastnost DoubleBuffer u okna programu na True.

Doslovný řetězec Pokud soubor (např. obrázek, zvuk), který chcete v programu otevřít, neleží přímo ve složce, kde je exe soubor s programem, je potřeba uvést celou cestu. Pokud byste ale použili zpětná lomítka, C# by je pochopil jako řídící znáky (my známe už \n) a nikoliv jako lomítka. Na to se použije tzv. doslovný řetězec, který je uvozen znakem @. new SoundPlayer( hlášení.wav ); new SoundPlayer(@ C:\Users\Vais\Desktop\ahoj.wav );

Vestavěná data Občas se hodí, když jsou pomocná data programu zabudována přímo v exe souboru a nikoliv v samostatných souborech. Upravíme předchozí příklad, aby byl obrázek zakompilován do exe souboru programu.

Projekt > Vlastnosti > Zdroje > Přidat zdroj > Přidat existující soubor Objekt lze pravým tlačítkem přejmenovat. V programu se potom na objekt odkazuje jako na Properties.Resources.Panáček.

Vyrobte program, který nakreslí kolečko v barvě naposled stisknutého tlačítka. Po spuštění programu nebude kolo nejdřív vůbec vidět Color.Transparent.

Ze třídy Environment lze zjistit spustu zajímavých věcí o počítači, kde program běží. Statická metoda GetFolderPath umožňuje zjistit cestu ke speciálním složkám jako Dokumenty, Plocha, Po spuštění aj. GetEnvironmentVariable umožňuje zobrazit hodnotu libovolné proměnné prostředí zkuste např. Path udávající prohledávané cesty při spuštění programů. Statická vlastnost UserName udává uživatelské jméno aktuálně pracujícího uživatele.

Otevřete si program pro kompletaci adresy ze tří polí a zkuste alternativně místo += použít metodu AppendText textového pole.

Upravte program s pohybujícím se panáčkem tak, aby po startu programu byl vždy přesně ve středu panelu. V případě, že se na disku soubor s panáčkem nenachází, program nesmí zhavarovat, ale měl by vypsat hlášku, že soubor s obrázkem nebyl nalezen. Upravte program tak, aby místo textů obsahoval obrázky šipek. Tip: Pracujte s BackgroudImage a BackgroudImageLayout. Přidejte do programu ješte políčko na možnost volby kroku pohybu, tj. o kolik pixelů se bude panáček posouvat.

Přehrávání melodie Instance třídy SoundPlayer umějí nabídnout víc než jenom metodu Play pro přehrátí wavu. Zkuste si za domácí úkol na programu např. metody PlayLooping, Stop, PlaySync (nepřehrává na pozadí, ale čeká, až hudba dohraje) Tip: using System.Media;

Př. upravte program, který maluje barevné prstence tak, aby maloval barevné kruhy. Háček je v tom, že zatímco pero se vytváří konstruktorem Pen, pro štětce však žádný konstruktor Brush neexistuje. Třída Brush zastupuje všemožné štětce a pro konkrétní druhy existují odvozené třídy SolidBrush, HatchBrush, TextureBrush, LinearGradientBrush a PathGradientBrush. Pro náš příklad použijte SolidBrush.

Př. vyzkoušejte si štětce, které šrafují. Konstruktor HatchBrush může přebírat tři parametry styl šrafování daný hodnotou výčtu HatchStyle, barva popředí a barva pozadí. Třída HatchBrush i výčet HatchStyle patří do jmenného prostoru System.Drawing.Drawing2D

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace šrafování { public partial class oknoprogramu : Form { public oknoprogramu() { InitializeComponent(); } } } private void oknoprogramu_paint(object sender, PaintEventArgs e) { Graphics kp = e.graphics; HatchBrush štětec = new HatchBrush(HatchStyle.Cross, Color.Red, Color.Blue); kp.fillellipse(štětec, 50, 50, 100, 100); HatchBrush štětec2 = new HatchBrush(HatchStyle.DashedUpwardDiagonal, Color.DarkMagenta, Color.Gold); kp.fillellipse(štětec2, 100, 100, 100, 100); }