VY_32_INOVACE_EL_9_01 Digitální učební materiál Vývojové prostředí C++Builder - první program Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_01 Anotace: Postup vytvoření prvního jednoduchého programu v programovacím jazyce C++ ve vývojovém prostředí C++Builder a vytvoření funkční aplikace Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_01 Příprava: Vývojové prostředí C++Builder se skládá z několika základních částí: Menu - sada příkazů (všechny důležité příkazy naleznete také v paletě nástrojů) Paleta nástrojů - sada ikon nahrazující často používané příkazy Palety komponent - záložky obsahující velké množství různých komponent Object TreeView - přehled použitých komponent Object Inspector - přehled Properties (vlastností) a Events (událostí) komponent Form - základní komponenta pro vytvoření aplikace Textový editor - nástroj pro vytvoření zdrojového kódu Komponenty: Form - formulář, Label - nápis, Button - tlačítko Vlastnosti komponent: Caption - popisek, Visible - viditelnost Zadání: Vytvořte program Hra na schovávanou - nápis na formuláři se stisknutím jednoho tlačítka schová a stisknutím druhého tlačítka se zase objeví. Program převeďte na funkční aplikaci.
VY_32_INOVACE_EL_9_01 Řešení: Spusťte vývojové prostředí C++Builder, upravte velikost formuláře a umístěte na něj komponenty z palety Standard - 1 x Label, 2 x Button (viz. obr. 1). Zdrojový kód a projekt uložte do předem připravené složky - File/SaveAll. Pojmenujte všechny komponenty - Properties Name v Object Inspector (viz. obr. 2). Vygenerujte funkci k události vytvoření formuláře - Event OnCreate pro frmhra v Object Inspector a zapište do ní tento text: void fastcall TfrmHra::FormCreate(TObject *Sender) frmhra->caption = "Hra"; lblnapis->caption = "Ahoj"; btnschovej->caption = "Schovej"; btnukaz->caption = "Ukaž"; Program uložte a přeložte - File/SaveAll a Run/Run, tím jste vytvořili vzhled aplikace po jejím spuštění (viz. obr. 3). Vygenerujte funkce k událostem kliknutí na jednotlivá tlačítka - Events OnClick pro btnschovej a btnukaz v Object Inspector a zapište do nich tento text: void fastcall TfrmHra::btnSchovejClick(TObject *Sender) lblnapis->visible = false; void fastcall TfrmHra::btnUkazClick(TObject *Sender) lblnapis->visible = true; Program uložte a přeložte - tím jste vytvořili funkční aplikaci. Hotovou aplikaci vyzkoušejte. obr. 1 obr. 2 obr. 3
VY_32_INOVACE_EL_9_02 Digitální učební materiál Funkce - její vytvoření a předávání hodnot Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_02 Anotace: Postup vytvoření jednoduchého programu s použitím jednoduché vlastní funkce a vyzkoušení různých způsobů předávání hodnot mezi programem a funkcí Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_02 Příprava: Funkce je základním stavebním prvkem programu vytvořeného v některém programovacím jazyce ze skupiny ST (structured text). K předávání hodnot mezi programem a funkcí lze použít globální proměnné nebo parametry funkce (lépe). Každá funkce má hlavičku (viz. dále) a tělo, které obsahuje blok příkazů uzavřený do složených závorek. Hlavička funkce musí být uvedena také v hlavičkovém souboru (deklarace funkce) a skládá se z těchto částí: Jméno - pomocí jména se funkce volá z programu Jmenný prostor - slouží k rozlišení funkcí se shodným jménem Vstupní parametry - předávají hodnoty z programu do funkce, nemusí být žádné Výstupní parametr - předává hodnotu z funkce do programu, nemusí být žádný Komponenty: Form - formulář, Label - nápis, Button - tlačítko Vlastnosti komponent: Caption - popisek Zadání: Vytvořte program Sčítání - nápis na formuláři stisknutím tlačítka zobrazí součet dvou čísel (např. 12 + 6). Pro výpočet součtu vytvořte vlastní funkci: a) funkce bude bez parametrů b) funkce bude mít vstupní parametry c) funkce bude mít vstupní i výstupní parametry Program převeďte na funkční aplikaci. Řešení: Spusťte vývojové prostředí C++Builder, upravte velikost formuláře a umístěte na něj komponenty z palety Standard - 1 x Label, 1 x Button. Zdrojový kód a projekt uložte do předem připravené složky - File/SaveAll. Pojmenujte všechny komponenty - Properties Name v Object Inspector (viz. obr. 1). Vygenerujte funkci k události vytvoření formuláře - Event OnCreate pro frmfunkce v Object Inspector a zapište do ní tento text: void fastcall TfrmFunkce::FormCreate(TObject *Sender) this->caption = "Funkce"; lblsoucet->caption = "x"; btnsoucet->caption = "Součet";
VY_32_INOVACE_EL_9_02 Program uložte a přeložte - File/SaveAll a Run/Run, tím jste vytvořili vzhled aplikace po jejím spuštění (viz. obr. 2). Vygenerujte funkci k události kliknutí na tlačítko - Event OnClick pro btnsoucet v Object Inspector a do zdrojového kódu zapište tento text (pozor!!! - jsou uvedeny 3 varianty řešení podle 3 variant zadání): //varianta a: int a, b, x; void fastcall TfrmFunkce::btnSoucetClick(TObject *Sender) a = 12; b = 6; soucet(); lblsoucet->caption = IntToStr(x); void TfrmFunkce::soucet() x = a + b; //varianta b: int x; void fastcall TfrmFunkce::btnSoucetClick(TObject *Sender) soucet(12, 6); lblsoucet->caption = IntToStr(x); void TfrmFunkce::soucet(int aa, int bb) x = aa + bb; //varianta c: void fastcall TfrmFunkce::btnSoucetClick(TObject *Sender) lblsoucet->caption = IntToStr(soucet(12, 6)); int TfrmFunkce::soucet(int aa, int bb) int xx = aa + bb; return xx; //poslední funkci lze vytvořit i bez proměnné xx: //return aa + bb;
VY_32_INOVACE_EL_9_02 Program uložte a přeložte - tím jste vytvořili funkční aplikaci. Hotovou aplikaci vyzkoušejte. obr. 1 obr. 2
VY_32_INOVACE_EL_9_03 Digitální učební materiál Příkaz if-else - seznámení a použití Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_03 Anotace: Postup vytvoření jednoduchého programu obsahujícího příkaz if-else, seznámení s tímto příkazem a jeho použitím v programu Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_03 Příprava: Příkaz if-else (podmínka if) slouží k podmíněnému vykonávání určité části programu nebo k jeho rozdělení na dvě větve. Nejjednodušší variantou je tvar: if (podmínka) příkaz; Podmínkou je jakákoliv proměnná nebo výraz datového typu bool (hodnoty true nebo false). Příkaz se vykoná pouze v případě, že podmínka bude mít hodnotu true. Kompletní variantou je tvar: if (podmínka) blok_příkaz ů_1; else blok_příkaz ů_2; Blok_příkazů_1 se vykoná pouze v případě, že podmínka bude mít hodnotu true, blok_příkazů_2 se vykoná pouze v případě, že podmínka bude mít hodnotu false. Podmínky se dají skládat (pomocí logických operátorů) nebo vkládat (rozdělení programu na více větví). Komponenty: Form - formulář, Panel - panel, Button - tlačítko Vlastnosti komponent: Caption - popisek, Color - barva Zadání: Vytvořte program Změna barvy - barva panelu se každým stisknutím tlačítka bude měnit mezi červenou a zelenou. Program převeďte na funkční aplikaci. Řešení: Spusťte vývojové prostředí C++Builder, upravte velikost formuláře a umístěte na něj komponenty z palety Standard - 1 x Panel, 1 x Button. Zdrojový kód a projekt uložte do předem připravené složky - File/SaveAll. Pojmenujte všechny komponenty - Properties Name v Object Inspector (viz. obr. 1). Vygenerujte funkci k události vytvoření formuláře - Event OnCreate pro frmifelse v Object Inspector a zapište do ní tento text:
VY_32_INOVACE_EL_9_03 void fastcall TfrmIfelse::FormCreate(TObject *Sender) this->caption = "Příkaz if-else"; pnlpanel->caption = ""; pnlpanel->color = clred; btntlacitko->caption = "Přepni barvu"; Program uložte a přeložte - File/SaveAll a Run/Run, tím jste vytvořili vzhled aplikace po jejím spuštění (viz. obr. 2). Vygenerujte funkci k události kliknutí na tlačítko - Event OnClick pro btntlacitko v Object Inspector a zapište do ní tento text: void fastcall TfrmIfelse::btnTlacitkoClick(TObject *Sender) if (pnlpanel->color == clred) pnlpanel->color = clgreen; else pnlpanel->color = clred; Program uložte a přeložte - tím jste vytvořili funkční aplikaci. Hotovou aplikaci vyzkoušejte. obr. 1 obr. 2
VY_32_INOVACE_EL_9_04 Digitální učební materiál Příkaz switch - seznámení a použití Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_04 Anotace: Postup vytvoření jednoduchého programu obsahujícího příkaz switch, seznámení s tímto příkazem a jeho použitím v programu Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_04 Příprava: Příkaz switch (přepínač) slouží k rozdělení programu na více větví. Kompletní variantou je tvar: switch (hodnota) case hodnota_1 : příkaz_1; break; case hodnota_2 : příkaz_2; break; case hodnota_3 : příkaz_3; break; atd. default : příkaz_n; break; Hodnotou je jakákoliv proměnná nebo výraz datového typu int (celá čísla). Příkaz_1 se vykoná pouze v případě, že hodnota bude mít hodnotu hodnota_1, Příkaz_2 se vykoná pouze v případě, že hodnota bude mít hodnotu hodnota_2, Příkaz_3 se vykoná pouze v případě, že hodnota bude mít hodnotu hodnota_3, atd. Příkaz_n se vykoná pouze v případě, že hodnota nebude mít žádnou z uvedených hodnot (řádek default není povinný). Na místě jednotlivých příkazů jich může být i více (odděleny středníkem). Příkaz break slouží k tomu, aby program nepokračoval vykonáváním příkazů na dalších řádcích (není povinný, na řádku default by nemusel být vůbec). Komponenty: Form - formulář, Panel - panel, Edit - editační pole, Button - tlačítko Vlastnosti komponent: Caption - popisek, Color - barva, Text - obsah editačního pole Zadání: Vytvořte program Přepínač barev - barva panelu se každým stisknutím tlačítka bude měnit podle hodnoty zadané v editačním poli (0 - šedá, 1- bílá, 2 - žlutá, 3 - červená, 4 - zelená, 5 - modrá, ostatní hodnoty - černá). Vytvořte varianty: a) bez kontroly zadané hodnoty b) s kontrolou zadané hodnoty pomocí funkce TryStrToInt c) s kontrolou zadané hodnoty pomocí funkce StrToIntDef Program převeďte na funkční aplikaci.
VY_32_INOVACE_EL_9_04 Řešení: Spusťte vývojové prostředí C++Builder, upravte velikost formuláře a umístěte na něj komponenty z palety Standard - 1 x Panel, 1 x Edit, 1 x Button. Zdrojový kód a projekt uložte do předem připravené složky - File/SaveAll. Pojmenujte všechny komponenty - Properties Name v Object Inspector (viz. obr. 1). Vygenerujte funkci k události vytvoření formuláře - Event OnCreate pro frmswitch v Object Inspector a zapište do ní tento text: void fastcall TfrmSwitch::FormCreate(TObject *Sender) this->caption = "Příkaz switch"; pnlpanel->caption = ""; edtcislo->text = "0"; btntlacitko->caption = "Nastavení barvy"; Program uložte a přeložte - File/SaveAll a Run/Run, tím jste vytvořili vzhled aplikace po jejím spuštění (viz. obr. 2). Vygenerujte funkci k události kliknutí na tlačítko - Event OnClick pro btntlacitko v Object Inspector a zapište do ní tento text (pozor!!! - jsou uvedeny 3 varianty řešení podle 3 variant zadání): //varianta a: void fastcall TfrmSwitch::btnTlacitkoClick(TObject *Sender) int cislo = StrToInt(edtCislo->Text); switch (cislo) case 0 : pnlpanel->color = clbtnface; break; case 1 : pnlpanel->color = clwhite; break; case 2 : pnlpanel->color = clyellow; break; case 3 : pnlpanel->color = clred; break; case 4 : pnlpanel->color = clgreen; break; case 5 : pnlpanel->color = clblue; break; default : pnlpanel->color = clblack; break;
VY_32_INOVACE_EL_9_04 //varianta b: void fastcall TfrmSwitch::btnTlacitkoClick(TObject *Sender) int cislo; if (TryStrToInt(edtCislo->Text, cislo)) switch (cislo) case 0 : pnlpanel->color = clbtnface; break; case 1 : pnlpanel->color = clwhite; break; case 2 : pnlpanel->color = clyellow; break; case 3 : pnlpanel->color = clred; break; case 4 : pnlpanel->color = clgreen; break; case 5 : pnlpanel->color = clblue; break; default : pnlpanel->color = clblack; break; else ShowMessage("Nebylo zadáno číslo!!!"); //varianta c: void fastcall TfrmSwitch::btnTlacitkoClick(TObject *Sender) int cislo = StrToIntDef(edtCislo->Text, 0); switch (cislo) case 0 : pnlpanel->color = clbtnface; break; case 1 : pnlpanel->color = clwhite; break; case 2 : pnlpanel->color = clyellow; break; case 3 : pnlpanel->color = clred; break; case 4 : pnlpanel->color = clgreen; break; case 5 : pnlpanel->color = clblue; break; default : pnlpanel->color = clblack; break; Program uložte a přeložte - tím jste vytvořili funkční aplikaci. Hotovou aplikaci vyzkoušejte. obr. 1 obr. 2
VY_32_INOVACE_EL_9_05 Digitální učební materiál Příkazy cyklů - seznámení a použití Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_05 Anotace: Postup vytvoření jednoduchého programu obsahujícího některý z příkazů cyklů, seznámení s tímto příkazem a jeho použitím v programu Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_05 Příprava: Příkaz for (cyklus for) slouží k opakování části programu. Lze jej použít, pokud předem známe počet opakování. Kompletní variantou je tvar: for (výchozí_hodnota; podmínka; inkrementace) blok_příkaz ů; V hlavičce cyklu je nutné deklarovat iterační proměnnou (s každým průchodem cyklem mění svoji hodnotu) datového typu int (celá čísla). Výchozí hodnota iterační proměnné je určena hodnotou výchozí_hodnota. Podmínkou je jakákoliv proměnná nebo výraz datového typu bool (hodnoty true nebo false). Cyklus se opakuje, dokud podmínka bude mít hodnotu true. Inkrementace určuje způsob změny hodnoty iterační proměnné. Dalším typem cyklu je příkaz while. Lze jej použít, pokud předem neznáme počet opakování. Kompletní variantou je tvar: while (podmínka) blok_příkaz ů; Podmínkou je jakákoliv proměnná nebo výraz datového typu bool (hodnoty true nebo false). Cyklus se opakuje, dokud podmínka bude mít hodnotu true. Podmínka se kontroluje před vykonáním příkazů (nemusejí se vykonat ani jednou). Dalším typem cyklu je příkaz do-while. Lze jej použít, pokud předem neznáme počet opakování. Kompletní variantou je tvar: do blok_příkaz ů; while (podmínka); Podmínkou je jakákoliv proměnná nebo výraz datového typu bool (hodnoty true nebo false). Cyklus se opakuje, dokud podmínka bude mít hodnotu true. Podmínka se kontroluje až po vykonání příkazů (vždy se vykonají alespoň jednou). Komponenty: Form - formulář, Label - nápis, Button - tlačítko Vlastnosti komponent: Caption - popisek
VY_32_INOVACE_EL_9_05 Zadání: Vytvořte program Cyklus - nápis na formuláři stisknutím tlačítka zobrazí násobek dvou čísel (např. 30 * 2). Pro výpočet součinu použijte cyklus (30krát přičtěte číslo 2 k výchozí hodnotě 0). Vytvořte varianty: a) použijte cyklus for b) použijte cyklus while c) použijte cyklus do-while Program převeďte na funkční aplikaci. Řešení: Spusťte vývojové prostředí C++Builder, upravte velikost formuláře a umístěte na něj komponenty z palety Standard - 1 x Label, 1 x Button. Zdrojový kód a projekt uložte do předem připravené složky - File/SaveAll. Pojmenujte všechny komponenty - Properties Name v Object Inspector (viz. obr. 1). Vygenerujte funkci k události vytvoření formuláře - Event OnCreate pro frmcyklus v Object Inspector a zapište do ní tento text: void fastcall TfrmCyklus::FormCreate(TObject *Sender) this->caption = "Cyklus"; lblnapis->caption = "x"; btntlacitko->caption = "Počítej"; Program uložte a přeložte - File/SaveAll a Run/Run, tím jste vytvořili vzhled aplikace po jejím spuštění (viz. obr. 2). Vygenerujte funkci k události kliknutí na tlačítko - Event OnClick pro btntlacitko v Object Inspector a zapište do ní tento text (pozor!!! - jsou uvedeny 3 varianty řešení podle 3 variant zadání): //varianta a: void fastcall TfrmCyklus::btnTlacitkoClick(TObject *Sender) int a = 0; for (int i = 0; i < 30; i++) a += 2; lblnapis->caption = IntToStr(a);
VY_32_INOVACE_EL_9_05 //varianta b: void fastcall TfrmCyklus::btnTlacitkoClick(TObject *Sender) int a = 0, i = 0; while (i < 30) a += 2; i++; lblnapis->caption = IntToStr(a); //varianta c: void fastcall TfrmCyklus::btnTlacitkoClick(TObject *Sender) int a = 0, i = 0; do a += 2; i++; while (i < 30); lblnapis->caption = IntToStr(a); Program uložte a přeložte - tím jste vytvořili funkční aplikaci. Hotovou aplikaci vyzkoušejte. obr. 1 obr. 2
VY_32_INOVACE_EL_9_06 Digitální učební materiál Základní komponenty - cvičení 1 Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_06 Anotace: Postup vytvoření aplikace na procvičení práce s několika základními komponentami, jejich vlastnostmi, událostmi a metodami Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_06 Příprava: Komponenty jsou základními stavebními prvky každé aplikace. Z pohledu jazyka C++ jsou to objekty, které patří do určité třídy. Jako takové mají svoje vlastnosti, události a metody (dané právě třídou, do které patří). Toto cvičení slouží k procvičení práce s nimi - domácí úkol pro žáky. Komponenty: Form - formulář, Label - nápis, Button - tlačítko, Panel - panel Vlastnosti: Caption - popisek, Align - zarovnání, Color - barva, Left - vzdálenost zleva, Top - vzdálenost shora, BevelOuter - ohraničení, Font - vlastnosti písma, Size - velikost, Enabled - povolení, Visible - viditelnost Události: OnCreate - vytvoření komponenty, OnClick - kliknutí levým tlačítkem myši na komponentu, OnMouseMove - pohyb myší nad komponentou Zadání: Vytvořte aplikaci Domácí úkol č. 1 - nápis na formuláři nabízí dvě varianty odpovědi (tlačítka Ano/Ne). Tlačítko Ne nelze stisknou (stále uhýbá před myší). Stisknutím tlačítka Ano se objeví varovná zpráva a po jejím odkliknutí všechny komponenty zmizí. Nyní je možné při pohybu myší po formuláři zobrazit rámeček vybízející ke kliknutí. Po kliknutí se objeví další varovná zpráva.
VY_32_INOVACE_EL_9_06 Řešení: Spusťte vývojové prostředí, upravte velikost formuláře a umístěte na něj komponenty. Zdrojový kód a projekt uložte. Pojmenujte všechny komponenty. Vygenerujte funkci k události OnCreate pro frmukol a zapište do ní tento text: void fastcall TfrmUkol::FormCreate(TObject *Sender) this->caption = "Domácí úkol č. 1"; this->align = alclient; this->color = claqua; lblnapis->caption = "Slibuji, že se budu piln ě učit jazyk C++"; btnano->caption = "Ano"; btnne->caption = "Ne"; pnlpanel->caption = ""; pnlpanel->color = claqua; pnlpanel->left = 200; pnlpanel->top = 200; pnlpanel->bevelouter = bvnone; pnlpanel->font->size = 20; pnlpanel->font->color = clred; pnlpanel->enabled = false; Program uložte a přeložte. Vygenerujte funkce k událostem OnMouseMove pro btnne a OnClick pro btnano. Do zdrojového kódu zapište tento text: bool vpravo = false; void fastcall TfrmUkol::btnNeMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) if (vpravo) vpravo = false; btnne->left -= 100; else vpravo = true; btnne->left += 100; void fastcall TfrmUkol::btnAnoClick(TObject *Sender) ShowMessage("Vaše odpov ěď může být použita proti vám!!!"); lblnapis->visible = false; btnano->visible = false; btnne->visible = false; pnlpanel->enabled = true;
VY_32_INOVACE_EL_9_06 Program uložte a přeložte. Vygenerujte funkce k událostem OnMouseMove pro frmukol, OnMouseMove pro pnlpanel a OnClick pro pnlpanel. Do zdrojového kódu zapište tento text: void fastcall TfrmUkol::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) pnlpanel->caption = ""; pnlpanel->color = claqua; void fastcall TfrmUkol::pnlPanelMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) pnlpanel->caption = "Klikni si sem"; pnlpanel->color = clyellow; void fastcall TfrmUkol::pnlPanelClick(TObject *Sender) ShowMessage("Nešahej na m ě!!!"); pnlpanel->caption = ""; pnlpanel->color = claqua; Program uložte a přeložte. Pozn.: program lze vytvořit i bez použití proměnné vpravo - v podmínce if sledujte pozici tlačítka
VY_32_INOVACE_EL_9_07 Digitální učební materiál Základní komponenty - cvičení 2 Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_07 Anotace: Postup vytvoření aplikace na procvičení práce s několika základními komponentami, jejich vlastnostmi, událostmi a metodami Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_07 Příprava: Komponenty jsou základními stavebními prvky každé aplikace. Z pohledu jazyka C++ jsou to objekty, které patří do určité třídy. Jako takové mají svoje vlastnosti, události a metody (dané právě třídou, do které patří). Toto cvičení slouží k procvičení práce s nimi - domácí úkol pro žáky. Komponenty: Form - formulář, Label - nápis, Edit - editační pole Vlastnosti: Caption - popisek, BorderStyle - styl okraje, BorderIcons - ikony okraje, KeyPreview - přednastavení kláves, Position - pozice, Color - barva, Text - obsah editačního pole, SelStart - začátek označeného textu Události: OnCreate - vytvoření komponenty, OnKeyPress - stisknutí klávesy, OnEnter - vstup do editačního pole Metody: Clear() - vymazání, SetFocus() - nastavení zaměření Zadání: Vytvořte aplikaci Domácí úkol č. 2 - na formuláři jsou umístěna tři editační pole. Do prvního pole lze zapisovat z klávesnice jednotlivé znaky, druhé pole po zapsání znaku automaticky zobrazí jeho hodnotu (ASCII kód) a třetí pole zobrazí tuto hodnotu v hexadecimálním tvaru (v šestnáctkové soustavě). Při zadání písmen r, R, g, G, b a B se formulář obarví příslušnou barvou. Řešení: Spusťte vývojové prostředí, upravte velikost formuláře a umístěte na něj komponenty. Zdrojový kód a projekt uložte. Pojmenujte všechny komponenty. Vygenerujte funkci k události OnCreate pro frmukol a zapište do ní tento text:
VY_32_INOVACE_EL_9_07 void fastcall TfrmUkol::FormCreate(TObject *Sender) this->caption = "Domácí úkol č. 2"; this->borderstyle = bssingle; this->bordericons = this->bordericons >> biminimize >> bimaximize; this->keypreview = true; this->position = poscreencenter; this->color = (TColor) 0xE8E8E8; lblznak->caption = "Znak zadaný z klávesnice :"; lblkey->caption = "Key hodnota zadaného znaku :"; lbldodatek->caption = "(je to přímo ASCII kód znaku)"; lblhex->caption = "Key hodnota hexadecimáln ě :"; edtznak->text = ""; //edtznak->clear(); edtkey->text = ""; edthex->text = ""; Program uložte a přeložte. Vygenerujte funkce k událostem OnKeyPress pro frmukol, OnEnter pro edtkey a OnEnter pro edthex. Do zdrojového kódu zapište tento text: void fastcall TfrmUkol::FormKeyPress(TObject *Sender, char &Key) unsigned char znak = Key; edtznak->text = ""; edtkey->text = IntToStr(znak); edthex->text = IntToHex(znak,2); switch (znak) case 'r' : case 'R' : this->color = clred; break; case 'g' : case 'G' : this->color = clgreen; break; case 'b' : case 'B' : this->color = clblue; break; default : this->color = (TColor) 0xE8E8E8; break; void fastcall TfrmUkol::edtKeyEnter(TObject *Sender) edtznak->setfocus(); edtznak->selstart = 1; void fastcall TfrmUkol::edtHexEnter(TObject *Sender) edtznak->setfocus(); edtznak->selstart = 1; Program uložte a přeložte.
VY_32_INOVACE_EL_9_08 Digitální učební materiál Základní komponenty - cvičení 3 Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_08 Anotace: Postup vytvoření aplikace na procvičení práce s několika základními komponentami, jejich vlastnostmi, událostmi a metodami Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_08 Příprava: Komponenty jsou základními stavebními prvky každé aplikace. Z pohledu jazyka C++ jsou to objekty, které patří do určité třídy. Jako takové mají svoje vlastnosti, události a metody (dané právě třídou, do které patří). Toto cvičení slouží k procvičení práce s nimi - domácí úkol pro žáky. Komponenty: Form - formulář, Edit - editační pole, Button - tlačítko Vlastnosti: Caption - popisek, Constraints - omezení rozměrů, MinHeight - minimální výška, MinWidth - minimální šířka, Position - pozice, Text - obsah editačního pole Události: OnCreate - vytvoření komponenty, OnClick - kliknutí levým tlačítkem myši na komponentu, OnEnter - vstup do editačního pole, OnExit - vystoupení z editačního pole Metody: Clear() - vymazání Zadání: Vytvořte aplikaci Domácí úkol č. 3 - na formuláři je umístěno šest editačních polí. Při vstupu do každého pole se v něm zobrazí nějaké jméno a při vystoupení z pole opět zmizí. Stisknutím tlačítka lze zobrazit zprávu o tom, které pole bylo naposledy vybráno. Řešení: Spusťte vývojové prostředí, upravte velikost formuláře a umístěte na něj komponenty. Zdrojový kód a projekt uložte. Pojmenujte všechny komponenty. Vygenerujte funkci k události OnCreate pro frmukol a zapište do ní tento text:
VY_32_INOVACE_EL_9_08 void fastcall TfrmUkol::FormCreate(TObject *Sender) this->caption = "Domácí úkol č. 3"; this->constraints->minheight = 183; this->constraints->minwidth = 203; this->position = poscreencenter; edtpole1->clear(); edtpole2->clear(); edtpole3->clear(); edtpole4->clear(); edtpole5->clear(); edtpole6->clear(); btnzprava->caption = "Zpráva"; Program uložte a přeložte. Vygenerujte funkce k událostem OnClick pro btnzprava, OnEnter pro edtpole1 až edtpole6 a OnExit pro edtpole1 až edtpole6. Do zdrojového kódu zapište tento text: AnsiString jmeno = "xxx"; void fastcall TfrmUkol::btnZpravaClick(TObject *Sender) if (jmeno == "xxx") ShowMessage("Ješt ě nebylo vybráno žádné pole"); else ShowMessage("Naposledy bylo vybráno pole : " + jmeno); void fastcall TfrmUkol::edtPole1Enter(TObject *Sender) edtpole1->text = "Adam"; void fastcall TfrmUkol::edtPole1Exit(TObject *Sender) jmeno = edtpole1->text; edtpole1->clear(); void fastcall TfrmUkol::edtPole2Enter(TObject *Sender) edtpole2->text = "Božena"; void fastcall TfrmUkol::edtPole2Exit(TObject *Sender) jmeno = edtpole2->text; edtpole2->clear(); void fastcall TfrmUkol::edtPole3Enter(TObject *Sender) edtpole3->text = "Cyril";
VY_32_INOVACE_EL_9_08 void fastcall TfrmUkol::edtPole3Exit(TObject *Sender) jmeno = edtpole3->text; edtpole3->clear(); void fastcall TfrmUkol::edtPole4Enter(TObject *Sender) edtpole4->text = "David"; void fastcall TfrmUkol::edtPole4Exit(TObject *Sender) jmeno = edtpole4->text; edtpole4->clear(); void fastcall TfrmUkol::edtPole5Enter(TObject *Sender) edtpole5->text = "Emil"; void fastcall TfrmUkol::edtPole5Exit(TObject *Sender) jmeno = edtpole5->text; edtpole5->clear(); void fastcall TfrmUkol::edtPole6Enter(TObject *Sender) edtpole6->text = "František"; void fastcall TfrmUkol::edtPole6Exit(TObject *Sender) jmeno = edtpole6->text; edtpole6->clear(); Program uložte a přeložte.
VY_32_INOVACE_EL_9_09 Digitální učební materiál Druhy chyb - mechanizmus výjimek Šablona: III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT Sada: VY_32_INOVACE_EL_9 - Programování v jazyce C++ pro 3. ročník DUM: VY_32_INOVACE_EL_9_09 Anotace: Postup vytvoření aplikace na procvičení ošetření jedné run-timové chyby v programu pomocí několika základních metod Autor: Ing. Petr Neumann Škola: Střední průmyslová škola, Hronov, Hostovského 910 Obor: Počítačové řídicí systémy Předmět: Programování Ročník: 3. Použitá literatura: Václav Kadlec - Učíme se programovat v C++Builder a jazyce C++
VY_32_INOVACE_EL_9_09 Příprava: Chyby se v programech objevují zcela běžně. Překladač je schopen odhalit pouze chyby syntaktické = chyby syntaxe ( pravopisné a gramatické chyby). Existují ale také chyby sémantické = chyby sémantiky (běhové = run-timové), které nastanou až za běhu programu a překladač je tedy nemůže odhalit. Pokud může při běhu programu nastat chyba, je nutné tuto situaci ošetřit. Nejjednodušším způsobem ošetření chyby je použití podmínky if. Lepším způsobem je využití mechanizmu výjimek - princip spočívá v použití bloku try (zkusí se provést blok příkazů) a bloku catch (provede se, pokud v bloku try došlo k chybě = zachycení výjimky). Kompletní variantou je tvar: try blok_příkaz ů_1; catch (popis_chyby) blok_příkaz ů_2; Blok_příkazů_2 se vykoná pouze v případě, že v bloku_příkazů_1 došlo k chybě. Popis_chyby umožňuje zachycovat pouze určitou výjimku. Pokud se mají zachytit všechny výjimky, použijí se v závorce tři tečky ( ). Zadání: Vytvořte aplikaci Výjimky - na formuláři jsou umístěna tři editační pole, která realizují matematickou operaci dělení. První pole slouží k zadání dělence, druhé pole slouží k zadání dělitele a třetí pole zobrazí podíl. K výpočtu dojde stisknutím jednoho ze tří tlačítek. První tlačítko chybu neošetřuje vůbec, druhé tlačítko používá k ošetření chyby podmínku if a třetí tlačítko zachycuje výjimku. Typickou chybou je pokus o dělení nulou (EDivByZero).