Digitální učební materiál



Podobné dokumenty
Digitální učební materiál

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

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

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

Tematický celek 03 - Cvičné příklady

Zápis programu v jazyce C#

Algoritmizace a programování

Delphi popis prostředí

První kapitola úvod do problematiky

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

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

Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií

6 Příkazy řízení toku

Programovací jazyk Pascal

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

FORMÁTOVÁNÍ 2. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows

Cvičení 7: Delphi objekty CheckedBox, Radio- Button, EditBox

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. III/2 - Inovace a zkvalitnění výuky prostřednictvím ICT

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Programovací jazyk C++ Hodina 1

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

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

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

Školní kolo soutěže Baltík 2009, kategorie C

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

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

15. Projekt Kalkulačka

Projekt Využití ICT ve výuce na gymnáziích, registrační číslo projektu CZ.1.07/1.1.07/ MS Excel

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Inovace bakalářského studijního oboru Aplikovaná chemie

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

10 Algoritmizace Příklad 2 Word 2007/ VBA

Úvod do programování. Lekce 1

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.

Jazyk C# a platforma.net

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Dělení a vlastnosti komponent

Sada 1 - Základy programování

Uživatelská příručka Autor: Martin Fiala

Operační systémy. Cvičení 3: Programování v C pod Unixem

Řídicí struktury. alg3 1

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

- jak udělat konstantu long int: L long velka = 78L;

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

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

Algoritmizace a programování

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Software602 Form Designer

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

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

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

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

CZ.1.07/1.5.00/

Prezentace a vysvětlení programového prostředí NXC

Delphi nastavení formulářů

Sada 1 - Základy programování

5 Přehled operátorů, příkazy, přetypování

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Vstupní požadavky, doporučení a metodické pokyny

Úvod do programovacích jazyků (Java)

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

Sada 1 - Základy programování

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Cvičné příklady Hodina 2

JavaScript 101. "Trocha života do statických stránek"

Sada 1 - PHP. 03. Proměnné, konstanty

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

6. Příkazy a řídící struktury v Javě

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Manuál k tvorbě absolventské práce

Reliance 3 design OBSAH

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Algoritmizace a programování

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Algoritmizace a programování

PSK3-9. Základy skriptování. Hlavička

PHP tutoriál (základy PHP snadno a rychle)

SEZNAM ANOTACÍ. III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Označení sady DUM VY_32_INOVACE_IT2 Tematická oblast MS Excel 2007

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Programy na PODMÍNĚNÝ příkaz IF a CASE

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

Základy programování (IZP)

zobrazuje názvy polí, vložené hodnoty jednotlivých záznamů, lze v něm zadávat data (přidávat záznamy) v návrhovém zobrazení:

3 KTE / ZPE Informační technologie

Algoritmizace a programování

Programování v jazyce JavaScript

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

Opakování programování

Transkript:

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).