Projekt Obrázek strana 135
|
|
- Marian Ševčík
- před 9 lety
- Počet zobrazení:
Transkript
1 Projekt Obrázek strana Projekt Obrázek Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na Po otevření v BlueJ vytvoříme instanci třídy Obrazek a zavoláme metodu kresli(). Výsledkem je obrázek domečku: Obrázek 14.1 Obrázek domečku z projektu Obrázek Naším úkolem je: přidat do obrázku sluníčko, doplnit obsah metody, po jejímž zavolání projede na obrázku před domečkem auto, doplnit metodu pro východ slunce a metodu pro západ slunce. Tento projekt má následující cíle: ukázat doplnění datového atributu (slunce) a příslušného kódu do projektu, na třídě Auto ukázat, že pro vytvoření instance (objektu) může být více konstruktorů, na doplnění auta do obrázku ukázat rozdíl mezi lokální proměnnou a datovým atributem, ukázat, jak doplnit obsah předpřipravené metody (prujezdauta()), ukázat, jak doplnit celé metody (vychodslunce() a zapadslunce()), ukázat volání jiné metody stejné instance (volání setcernobily() v metodě zapadslunce()) Struktura tříd Projekt Obrázek se skládá ze šesti tříd: Platno tato třída představuje prostor (plátno), na kterém se vykreslují jednotlivé tvary, Kruh, Ctverec, Trojuhelnik toto jsou jednotlivé tvary, které se kreslí na plátno, lze s nimi po plátně pohybovat, měnit jejich velikost a barvu, Auto obdoba předchozích tříd na plátně se vykreslí auto, Obrazek představuje obrázek domečku vykreslí dva čtverce (zeď a okno) a jeden trojúhelník na plátně.
2 Projekt Obrázek strana 136 Následuje diagram tříd (obrázek z BlueJ): Obrázek 14.2 Diagram tříd projektu Obrázek, převzato z BlueJ Popis metod jednotlivých tříd Nejprve popíšeme metody tříd Auto, Ctverec, Kruh a Trojuhelnik. Třídu Platno podrobně popisovat nebudeme, třída zajišťuje plochu o velikosti 300x300 bodů pro vykreslování jednotlivých instancí tříd Auto, Ctverec, Kruh, Trojuhelnik a Obrazek. Jedna instance této třídy je společ ná pro všechny vykreslované tvary. třída konstruktor popis konstruktoru Ctverec Ctverec() vytvoří červený čtverec o straně 30 bodů na souřadnicích 60,50 a vykreslí ho na plátno Kr uh Kruh() vytvoří modrý kruh o průměru 30 bodů na souřadnicích 20,60 a vykreslí ho na plátno Trojuhelnik Trojuhelnik() vytvoří zelený trojúhelník o šířce 40 a výšce 30 bodů na souřadnicích 50,15 a vykreslí ho na plátno Auto Auto() vytvoří modré auto na souřadnicích 60,40 a vykreslí ho na plátno Auto(int xpozice,int ypozice ) Tabulka 14.1 Přehled konstruktorů tříd projektu vytvoří modré auto na zadaných souřadnicích
3 Projekt Obrázek strana 137 metoda posunvpravo() posunvlevo() popis metody posune daný tvar o 20 bodů vpravo posune daný tvar o 20 bodů vlevo p osunnahoru() posune daný tvar o 20 bodů nahoru posundolu() posunhorizontalne(int vzdalenost) posune daný tvar o 20 bodů dolu posune daný tvar o zadaný počet bodů (+ vpravo, vlevo) posunvertikalne(int vzdalenost) posune vertikálně daný tvar o zadaný počet bodů (+ dolů, nahoru) pomaluposunhorizontalne(int pomalé posunutí tvaru o zadaný počet bodů horizontálně vzdalenost) pomaluposunvertikalne(int pomalé posunutí tvaru o zadaný počet bodů vertikálně vzdalenost) zmenvelikost(int novavelikost) změní velikost daného tvaru, tato metoda neexistuje u třídy Auto (plátno umí nakreslit jen jednu velikost auta) zmenbarvu(string novabarva) změní barvu zadaného tvaru Tabulka Přehled metod tříd Kruh, Ctverec, Trojuhelnik a Auto Vysvětlíme si následující část kódu s instancí třídy Ctverec: Ctverec zed; zed = new Ctverec(); zed.posunvertikalne(80); zed.zmenvelikost(100); Na prvním řádku je deklarace proměnné zed typu Ctverec, na druhém řádku se vytvoří instance t řídy Ctverec (zavolá se konstruktor) a odkaz se uloží do proměnné zed čtverec se nakreslí na plátno. Na třetím řádku se instanci čtverce pošle zpráva, aby se posunula vertikálně o 80 bodů doprava u instance, na kterou odkazuje proměnná zed se zavolá metoda posunvertikalne(80). Na čtvrtém řádku se zvětší velikost strany čtverce na velikost 100 bodů Kód třídy Obrazek 1 /** 2 * Tato tř ída reprezentuje jednoduchý obrázek. 3 * Obráze k se nakreslí po zavolání metody kresli. 4 * Obrázek může být změněn - můžete ho upravit na černobílý 5 * a zpět na barevný. 6 * Tato třida je napsána jako jeden z prvních příkladů 7 * pro výuku Javy v BlueJ. 8 * 9 Michael Kolling 10 Luboš Pavlíček (15 July 2000) cz (30 July 2004) 13 */
4 Projekt Obrázek strana public class Obrazek { 15 private Ctverec zed; 16 private Ctverec okno; 17 private Trojuhelnik strecha; /** 20 * Konstruktor pro vytvoření instance třídy Obrazek 21 */ 22 public Obrazek() { 23 // zde není žádný obsah 24 // datové atributy mají automaticky počáteční hodnotu null 25 // a vlastní kreslení obrázku 26 //(a tim i inicializace datových atributů) 27 //je v metodě kresli() 28 } 29 /** 30 * Nakreslí obrázek. 31 */ 32 public void kresli() { 33 zed = new Ctverec(); 34 zed.posunvertikalne(80); 35 zed.zmenvelikost(100); okno = new Ctverec(); 38 okno.zmenbarvu("cerna"); 39 okno.posunhorizontalne(20); 40 okno.posunvertikalne(100); strecha = new Trojuhelnik(); 43 strecha.zmenvelikost(50, 140); 44 strecha.posunhorizontalne(60); 45 strecha.posunvertikalne(70); 46 } /** 49 * změní obrázek na černobílý 50 */ 51 public void setcernobily() { 52 if (zed!= null) { // pouze pokud je již nakreslen 53 zed.zmenbarvu("cerna"); 54 okno.zmenbarvu("bila"); 55 strecha.zmenbarvu("cerna"); 56 } 57 } /** 60 * změní obrázek zpět na barevný 61 */ 62 public void setbarevny() { 63 if (zed!= null) { // pouze pokud je již nakreslen domeček 64 zed.zmenbarvu("cervena"); 65 okno.zmenbarvu("cerna"); 66 strecha.zmenbarvu("zelena"); 67 } 68 } 69
5 Projekt Obrázek strana /** 71 * při zavolání této metody by mělo před domečkem projet auto 72 */ 73 public void prujezdauta() { 74 if (zed!= null) { // pouze pokud je již nakreslen domeček 75 // ZDE DOPLNIT PŘÍSLUSNÝ KÓD 76 } 77 } 78 } Třída Obrazek má tři datové atributy (viz řádky 15 až 17 kódu): zed a okno typu Ctverec, atribut strecha typu Trojuhelnik. Tyto datové atributy vyjadřují základní prvky, ze kterých je sestaven obrázek. Na rozdíl od tříd Ctverec, Kruh a Trojuhelnik se instance třídy Obrazek nezobrazí na plátně po zavolání konstruktoru, ale až po zavolání metody kresli(). Konstruktor třídy Obrazek je proto prázdný. Metoda kresli() vytvoří instance jednotlivých částí obrázku, nastaví jejich umístění, velikost a barvu pomocí příslušných metod. Metody pro změnu na černobílý (metoda setcernobily() na řádcích 51 až 57) a barevný (metoda setbarevny() na řádcích 62 až 67) překreslují již vytvořený obrázek. Podmínka na začátku každé z těchto metod zjišťuje, zda je již nakreslena zeď (tj. zda byla vytvořena instance v metodě kresli() a uložena do proměnné zed). Pokud zavoláte metodu setbarevny() nebo metodu setcernobily() před zavoláním metody kresli(), nic se nestane Postup řešení Dokreslení obrázku (přidání slunce) Naším prvním úkolem je přidat do obrázku slunce, které bude v této fázi řešení na obrázku neustále na jednom místě. Při změně na černobílý obrázek nebude slunce zobrazeno (je noc) barva slunce se změní na bílou. Slunce bude reprezentováno datovým atributem typu Kruh. Ve třídě Obrazek v části deklarace datových atributů (řádky 15 až 17 kódu) přibude následující řádek: private Kruh slunce; Metoda kresli() se doplní o vytvoření instance třídy Kruh a změnu barvy, velikosti a umístění této instance. Kód by mohl vypadat takto: slunce = new Kruh(); slunce.zmenbarvu("zluta"); slunce.posunhorizontalne(180); slunce.posunvertikalne(-50); slunce.zmenvelikost(60); Po přeložení, vytvoření instance třídy Obrazek a spuštění metody kresli() se zobrazí následující obrázek:
6 Projekt Obrázek strana 140 Obrázek 14.3 Vzhled obrá zku po přidání slunce Po úspěšném přeložení třídy Obrazek si všimněte, že se změnil diagram tříd zobrazený v BlueJ automaticky přibyla vazba užití od třídy Obrazek ke třídě Kruh, neboť ve třídě Obrazek se nyní používá třída Kruh. Ještě je potřeba upravit metody setcernobily() a setbarevny(). Do metody s etcernobily() přidáme řádek se změnou barvy slunce na bílou (nebude na bílém pozadí vidět) a v metodě setbarevny() řádek se změnou barvy slunce na žlutou Průjezd auta Pro ře šení druhého úkolu byla již ve zdrojovém kódu třídy Obrazek předpřipravena metoda prujezdau ta(), při jejím zavolání by před domečkem mělo projet auto. Je potřeba se rozhodnout, zda vytvořená instance třídy Auto bude datovým atributem či lokální prom ěnnou. Auto bude na obrázku pouze tehdy, když bude spuštěna tato metoda; nebude potřeba v žádné jiné metodě, při novém zavolání metody může vzniknout a projet nové auto. Z toho vyplývá, že instance třídy Auto může být lokální proměnná metody. V metodě prujezdauta() vytvoříme instance třídy Auto a zavoláme metodu pro jeho pomalý posun. Kód metody prujezdauta() vidíte v následujícím výpisu: 1 public void prujezdauta() { 2 if (zed!= null) { // pouze pokud je již nakreslen domeček 3 Auto ford = new Auto(0,240); 4 ford.pomaluposunhorizontalne(300); 5 } 6 } Animace auta je velmi nedokonalá při průjezdu auto bliká, při nesprávném umístění bude auto umazávat domeček atd. V rámci tohoto jednoduchého příkladu však tyto problémy nebudeme řešit, jejich odstranění by vyžadovalo použití vícevrstvého plátna. Po úspěšném přeložení třídy Obrazek se do diagramu tříd zobrazeného v BlueJ promítne další změna, přibude vazba užití od třídy Obrazek ke třídě Auto Východ a západ slunce Pro práci se sluncem si lze vytvořit dvě představy: každé ráno vznikne nové slunce, při západu slunce zaniká (pohled země-placka ) v této variantě v metodě vychodslunce() vzniká instance třídy Kruh, která představuje slunce,
7 Projekt Obrázek strana 141 v metodě zapadslunce() tato instance zaniká. Instance kruhu se vytváří také na začátku (v metodě kresli()), neboť se začíná dnem a ne nocí, slunce obíhá kolem dokola, večer zapadne, ráno vyjde (pohled geocentrický 34 ) v této variantě vzniká pouze jedna instance, při západu slunce se příslušný kruh přesune mimo viditelnou část plátna, při východu se přesune na viditelnou část plátna. Řešení metod ve variantě země-placka by mohlo vypadat následovně: 1 /** 2 * Při zavolání metody vyjde slunce, pokud již není na obloze. 3 */ 4 public void vychodslunce() { 5 if (slunce == null) {//zapadlé slunce se pozná dle hodnoty null 6 slunce = new Kruh(); 7 slunce.zmenbarvu("zluta"); 8 slunce.posunhorizontalne(-60); 9 slunce.posunvertikalne(-10); 10 slunce.zmenvelikost(60); 11 slunce.pomaluposunhorizontalne(60); 12 setbarevny(); // slunce je již na obrázku, nastává den 13 slunce.pomaluposunhorizontalne(180); 14 } 15 } /** 18 * Při zavolání metody zapadne slunce, pokud je na obloze. 19 */ 20 public void zapadslunce () { 21 if (slunce!= null) { // slunce již musí existovat 22 slunce.pomaluposunhorizontalne(90); 23 setcernobily(); 24 slunce.pomaluposunhorizontalne(30); 25 slunce=null; // zde se zruší odkaz na instanci slunce 26 } 27 } V metodě vychodslunce() nejprve zjistíme, jestli je slunce na obrázku nebo ne (řádek 5 výpisu). Poku d na obrázku žádné slunce není (proměnná slunce odkazuje na hodnotu null), vytvoříme instanci třídy Kruh, nastavíme barvu, posuneme kruh na kraj plátna a změníme jeho velikost (řádky 6 až 10 výpisu). Poté spustíme animaci východu slunce pomocí metody p omaluposunhorizontalne(). Slunce popojde kousek po obrázku a nastane den pro obarvení obrázku zavoláme metodu setbarevny(). Na řádku 13 slunce pokračuje ve svém pohybu po obloze. Metoda pro západ slunce je velmi podobná. Pokud je slunce na obrázku (proměnná slunce odkazuje na instanci, tj. nemá hodnotu null), začne se pohybovat, obrázek se změní s barevného na černobílý a slunce zapadne úplně. Poté je instance zrušena, protože odkaz na ni je nastaven na hodnotu null. 34 Pohled heliocentrický je pro naši úlohu obtížně použitelný, neboť obrázek je kreslen z perspektivy uživatele na zemi.
8 Projekt Obrázek strana 142 Povšimněte si, že pokud spouštíme jinou metodu z téže třídy, uvádíme pouze název metody a případné parametry. Metoda bude spuštěna na té instanci, která spouští metodu obsahující toto volání (instance pošle zprávu sama sobě). Na řádku 12 výpisu se obrázek změní z černobílého na barevný provedou se na tomto místě všechny příkazy obsažené v metodě setbarevny(). Volání metody stejné instance by správně mělo obsahovat odkaz na sebe sama pomocí slova this: this.setbarevny(); Java programátorovi usnadňuje práci tím, že nevyžaduje zápis pomocí this překladač toto přiřazení do výsledného kódu doplní sám. V geocentrické variantě je potřeba pomocí dalšího datového atributu sledovat, zda je den či noc použijeme datový atribut jeden typu boolean, který bude mít hodnotu true, pokud je den a false, pokud je noc. Instance třídy Kruh představující slunce vzniká pouze jednou, a to v metodě kresli(). V noci (na konci metody zapadslunce()) se slunce přesune kolem zeměkoule na svoji výchozí pozici na východě. Deklarace a inicializace by mohla vypadat následovně: private boolean jeden; // datový atribut... public void kresli() {... jeden = true; // nastavení počáteční hodnoty // v metodě kresli... } Vlastní kód metod zapadslunce() a vychodslunce() bude vypadat následovně: 1 public void zapadslunce () { 2 if (jeden) { // je den 3 slunce.pomaluposunhorizontalne(80); 4 setcernobily(); 5 slunce.pomaluposunhorizontalne(20); 6 slunce.posunhorizontalne(-360); // posunu do výchozí pozice 7 jeden = false; // poznačím si, že je noc 8 } 9 } 10 public void vychodslunce() { 11 if (! jeden) { // je noc 12 slunce.pomaluposunhorizontalne(20); 13 setbarevny(); // slunce je již na obrázku, nastává den 14 slunce.pomaluposunhorizontalne(240); 15 jeden = true; // poznačím si, že je den 16 } 17 } Domácí úkoly 1. Přidejte do projektu metody pro příjezd a odjezd auta. 2. Nakreslete si vlastní obrázek, např. sněhuláka či stromek.
Obrázek. Základní popis, zadání úkolu. Struktura tříd,
Obrázek Základní popis, zadání úkolu Pracujeme na projektu Domecek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy Obrazek a zavoláme metodu kresli(). Výsledkem
15. Projekt Kalkulačka
Projekt Kalkulačka strana 143 15. Projekt Kalkulačka 15.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy
20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
17. Projekt Trojúhelníky
Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským
C++ přetěžování funkcí a operátorů. Jan Hnilica Počítačové modelování 19
C++ přetěžování funkcí a operátorů 1 Přetěžování funkcí jazyk C++ umožňuje napsat více funkcí se stejným názvem, těmto funkcím říkáme přetížené přetížené funkce se musí odlišovat typem nebo počtem parametrů,
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
19. Projekt Adventura
Projekt Adventura strana 189 19. Projekt Adventura 19.1. Základní popis, zadání úkolu Pracujeme na projektu Adventura, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy Hra.
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
Projekt Škola strana 179
Projekt Škola strana 179 18. Projekt Škola 18.1. Základní popis, zadání úkolu Pracujeme na projektu Škola, který je ke stažení na java.vse.cz. Je to pouze fragment aplikace cílem je ukázat, jak v instancích
Programování v jazyku LOGO - úvod
Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných
Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo
Úterý 20. března Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
DUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
Principy objektově orientovaného programování
Principy objektově orientovaného programování Třídy a objekty doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz C E T
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.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Objektově orientované programování v jazyce Python
Objektově orientované programování v jazyce Python Co to je objektově orientované programování Python není přímo objektově orientovaný jazyk, ale podporuje nejdůležitější části objektově orientovaného
Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení
Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),
11. Dědičnost. Dědičnost strana 103
Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Z. Kotala, P. Toman: Java ( Obsah )
Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například
Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová
Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor
7. Datové typy v Javě
7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů
Objektově orientované programování v jazyce Python
Objektově orientované programování v jazyce Python Základní pojmy objektově orientovaného programování Objekt vychází z reálného světa. Má dva charakteristické rysy. Všechny objekty mají stav Všechny objekty
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Programátorská dokumentace
Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci
Java - Kresba. 2/28/11 1/8 Java - kresba
Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,
Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.
1. Zapouzdření Cíl látky Tento blok nejdříve přiblíží zásadu zapouzdření a odpoutání kódu a po té na relacích, jako jsou asociace, agregace a kompozice, vysvětlí jak lze objektový zdrojový kód zapouzdřovat
Mezinárodní kolo soutěže Baltík 2010, kategorie C a D
Pokyny: 1. Pracovat můžete v ikonkových režimech nebo v režimech C#, ani jedna z variant nebude při hodnocení zvýhodněna. 2. Řešení úloh ukládejte do složky, která se nachází na pracovní ploše počítače.
Comenius Logo. Princip programování. Prostředí Comenius Logo
Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost a schopnost
KAPITOLA 3 - ZPRACOVÁNÍ TEXTU
KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Informační
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
Generické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď
Animace a pohyb Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď namespace Autíčko public partial class oknoprogramu : Form int x = 10, y = 10; public oknoprogramu() InitializeComponent();
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Závěrečná práce. AutoCAD Inventor 2010. (Zadání D1)
Závěrečná práce AutoCAD Inventor 2010 (Zadání D1) Pavel Čurda 4.B 4.5. 2010 Úvod Tato práce obsahuje sestavu modelu, prezentaci a samotný výkres Pákového převodu na přiloženém CD. Pákový převod byl namalován
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Dědičnost tříd Dědičnost umožňuje vytvářet nové třídy z tříd existujících tak, že odvozené třídy (tzv. potomci) dědí vlastnosti
IRAE 07/08 Přednáška č. 1
Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní
02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox
02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů
ALGORITMIZACE PRAKTICKÉ
LOGO IMAGINE Obsah 1. Příkazy 1.1. Základní příkazy 1.2. Vestavěné příkazy Imagine 1.2.1.Příkaz mnohoúhelník 1.2.2.Náhodná procházka 2. Matematické operace 3. Funkce 4. Predikáty 5. Konstruktory 6. Selectory
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
Programování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
Kombinované úlohy - cvičení
DUM Vyšší odborná škola, Obchodní akademie a Střední odborná škola EKONOM, o. p. s. Algoritmy DUM III/2-T1-1-16 PRG-01A-var1 Téma: Kombinované úlohy cvičení Střední škola Rok: 2012 2013 Varianta: A Zpracoval:
Programování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
Teoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady
Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -
Programování II. Návrh programu I 2018/19
Programování II Návrh programu I 2018/19 Osnova přednášky Co víme? Objektový návrh programu. Příklad. Co víme? Třída Třída je popisem objektů se společnými vlastnostmi. class private:
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
24. listopadu 2013, Brno Připravil: David Procházka
24. listopadu 2013, Brno Připravil: David Procházka Dědičnost Základy objektového návrhu Časná a pozdní vazba Strana 2 / 22 Obsah přednášky 1 Časná a pozdní vazba 2 Rozhraní pro dědičnost 3 Konstruktory
1. Projekt Kalkulačka
1. Projekt Kalkulačka 1.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy Kalkulacka a zavoláme metodu show().
Kreslící program. V této lekci se naučíš vytvořit si vlastní kreslící program! Následujte postupně tyto INSTRUKCE
Scratch 1 Kreslící program Všechny Kódovací kluby - Code Clubs musí být registrovány. Tím, že zaregistrujete váš klub, můžeme měřit náš dosah, a můžeme tak pokračovat s poskytováním zdrojů pro výuku programování
MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MRBT Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci Autoři: Jaromír Picka ID:115255 Jaroslav Večeřa ID:115306
Svolávací systém Uživatelský manuál
Uživatelský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 14. srpna 2013 Číslo
Název: VY_32_INOVACE_PG4113 Relativní pozicovaní a jeho využití
Název: VY_32_INOVACE_PG4113 Relativní pozicovaní a jeho využití Autor: Mgr. Tomáš Javorský Datum vytvoření: 05 / 2012 Ročník: 3 Vzdělávací oblast / téma: webdesign, počítačová grafika Anotace: Seznámení
PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7 Využití knihoven podprogramů, displej Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál vznikl
Tvorba fotogalerie v HTML str.1
Tvorba fotogalerie v HTML str.1 obr. A obr. B 1) Spustíme PsPad, vytvoříme nový dokument a otevře se nám okno nový soubor, kde si můžeme zvolit jaký chceme typ. My označíme HTML a potvrdíme. 2) Pro správné
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Tato aplikace je koncipována jako hra, může být použita k demonstraci důkazu. Může žáky učit, jak manipulovat s dynamickými objekty,
OOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
Nástroje v InDesignu. Panel nástrojů 1. část. Nástroje otevřeme Okna Nástroje
Nástroje v InDesignu Panel nástrojů 1. část Nástroje otevřeme Okna Nástroje Poklepem levé myši změníme panel nástrojů Nástroje v panelu nástrojů se používají k vybírání, úpravám a vytváření prvků stránek.
Př. další použití pointerů
Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
Nejzajímavější jsou události MouseDown a KeyDown.
Myš a klávesnice Nejzajímavější jsou události MouseDown a KeyDown. Z objektu e, který je parametrem obslužné metody MouseDown a KeyDown, lze zjistit, které tlačítko myši bylo stisknuto a pozice myši, a
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
Metodický list k didaktickému materiálu
Metodický list k didaktickému materiálu Čí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í
Nastavení a ovládání aplikace ifoxtrot
Nastavení a ovládání aplikace ifoxtrot A - obrazovka po spuštění a/nebo při neaktivním připojení Úvodní obrazovka s nakonfigurovaným a vybraným připojením s názvem Chata. Při prvním spuštění je v seznamu
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost
Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence
Tvorba aplikace pro porovnání map
Tvorba aplikace pro porovnání map V druhé lekci práce s ArcGIS Online si vytvoříme aplikaci skládající se ze dvou map, pomocí které budeme moci porovnat hodnoty fertility a HDP na hlavu jednotlivých států
3. Třídy. Základní pojmy objektového programování. Třídy
3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat
Macromedia Flash 8. Druhy animace: Snímek po snímku. F5 vložit snímek (insert frame) F6 vložit klíčový snímek (insert key frame)
Druhy animace: Snímek po snímku Macromedia Flash 8 F5 vložit snímek (insert frame) F6 vložit klíčový snímek (insert key frame) F7 vložit prázdný klíčový snímek (insert blank key frame) Enter spuštění animace
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);
TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;
Vývojové nástroje jazyka Java
Vývojové nástroje jazyka Java Tato kapitola informuje čtenáře, jaké nástroje je zapotřebí nainstalovat pro spouštění a vývoj programů v jazyce Java, hlavním cílem kapitoly je seznámit čtenáře s aplikacemi,
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
Regionální kolo soutěže Baltík 2008, kategorie A a B
Pokyny: 1. Kategorie A řeší pouze úlohy 1, 2, 3 a kategorie B pouze úlohy 2, 3, 4! 2. Řešení úloh ukládejte do sloţky, která se nachází na pracovní ploše počítače. Její název je stejný, jako je kód, který
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí