Náplň cvičení
Dne 29.11.2006 bude půlsemestrální test
v rámci přednášky
Cvičení vedou: Ing. Richter, richter@feec.vutbr.cz , tel . 541141194
Ing. Petyovský, petyovsk@feec.vutbr.cz , tel . 541141194, ICQ 216 55 22 66
Týden |
Náplň cvičení |
projekt |
---|---|---|
1
|
Seznámení s předmětem, laboratoří, bezpečnost práce Postup sestavení programu v prostředí MS Visual C (preprocesor, kompilátor, linker, zdrojové a hlavičkové soubory, spustitelné a knihovní soubory (statické a dynamické)). Úvod do programování v prostředí MS Visual C – příklad: jednoduchá konzolová aplikace (cykly, tisky) , přehled vlastností prostředí, trasování, sledování hodnot proměnných. Hra s tématem jazyka C - http://www.c-jump.com |
|
2
|
Opakování programování v C – tabulka (cykly, formátovaný tisk). „Osahání“ si programovacího prostředí MS Visual C, přehled vlastností prostředí, trasování, sledování hodnot proměnných. Makra – bez a s parametry (podmíněný překlad, konstanty, makra s parametry (funkce a makro vracející hodnotu – realizace „max“, popis rozdílů) |
|
3
|
Opakování programování v C – vypuštění komentářů (práce se soubory,switch – konečný stavový automat, realizace s pomocí funkcí, modulů zdrojových a hlavičkových souborů) Procvičte si bitové operace na příkladech (práce s bity, velikost celočíselného typu, sizeof) Opakování C - dotazy |
Zadání témat projektů pro volbu. (projekt se tvoří průběžně, body průběžně na cvičeních. Do IS se hodnotí jako celek po odevdání poslední části.) |
4
|
Opakování programování v C – práce s ukazateli (předávání parametrů do funkcí a změna hodnoty proměnné uvnitř funkce) Opakování programování v C – 2D pole (ukazatele, práce s dynamickou pamětí, alokace, odalokace) Opakování C – dotazy. Literatura pro inspiraci (pdf 220kB). |
Volba témata projektu a spolupracovníků (po 3 lidech) |
5
|
Ukázky tříd – motivace, třída jako „knihovna“ a ne „program“ Třída – základní popis třídy – metody a data - příklad Komplex , String (rozdělte příklad komplex do jednotlivých modulů (projekt.cpp, komplex.cpp, komplex2214.h) a zkuste přeložit. Trasujte a zkuste předvídat co se děje. Dokončení předchozích úloh (makra, komentáře, ukazatele). Otázky C. Prostudujte knihovny limits.h a float.h – zjistěte jejich funkci. Předělejte 2D pole z minulého cvičení do struktur (pole, rozměrx, rozměry) |
Formulace vlastností zvolené třídy projektu (vlastnosti třídy – konstruktory, destruktory, friend funkce, V/V, operátory …) Formulář pro zadání. Ve formuláři budou nahrazeny červené texty na základě vašeho projektu. |
6
|
Procvičení struktur a ukazatelů na přikladu jednosměrně vázaného seznamu Procvičte si možnost využití stejného názvu pro více funkcí - přetěžování funkcí .
|
Odevzdání zadání projektu (doplňte slovní text do formuláře k příslušným metodám a dodejte hlavičku projektu (název, jména, datumy ….). Ke každému typu metod ze zadání by měla být vytvořena alespoň jedna metoda na jednoho z autorů. V dalším průběhu prací může být zadání modifikováno. Rozdíly oproti zadání zhodnoťte v závěrečné dokumentaci. Na cvičení můžete ještě provést konzultaci ale ke konci odevzdáte (na e-mail cvičícího). Subjekt „zadání BPPC“. Odevzdávaný „zip“ soubor pojmenujte kodem cvičení, jménem autora a názvem tj. „po13_novak_zlomky“. Odevzdává jen jeden z autorů. Po odevzdání kontrolujte svůj mail, zda neodepíši že přišlo bez přílohy (například kontrola virů …) - posílejte pouze soubory typu „h“, „c“ a „cpp“. (hodnocení úplnosti zadání - 2 body) |
7
|
Procvičte si možnost nadefinovat implicitní parametry, které se budou automaticky doplňovat při volání funkcí bez parametrů. Procvičte si použití nového způsobu práce s prvky v paměti (obdobně jako přes ukazatel) reference.
Zvolte vhodnou datovou reprezentaci pro třídu Komplex, String a Vaši třídu (Při tvorbě metod postupujte tak, že nejprve napíšete prototyp (hlavičku) s prázdným tělem. Následně rozhodněte, zda se bude jednat o inline metodu či ne. V případě, že ne, přesuňte tělo do zdrojového souboru. Nakonec vytovřte kód metod). Napište konstruktory – implicitní, konverzní, kopykonstruktor - například aby šel následující kód (za T dosaďte Komplex, String, a váš název třídy) T a; T b = 4; T c = b; T e = “34“; T f( 4, 5); Napište destruktor - pomocí trasování zjistěte zda a kdy je volán. |
Potvrzení převzetí zadání projektů (v rámci cvičení jsou publikovány části kódu, které (po dosazení jména Vaší třídy) by měly fungovat i ve Vaší třídě) |
8
|
Metody pro nastavení a čtení dat – napište metody pro zadání a vyčítání hodnot dat. Pro předávání parametrů do metod používejte konstantní parametry v místech parametrů, které se v metodách (funkcích) nemění. Nastavte přístupová práva private pro data a public pro metody – odlaďte vzniké chyby. Vytvořte hlavičkový soubor pro třídu Komplex, string, a vaši třídu (postupujte například tak, že si napíšete program, který chcete realizovat, a který využívá metody z vašeho zadání. Potom se snažte vytvořit hlavičkový soubor tak aby program šel přeložit. Těla metod mějte prázdná, realizujte pouze návratové hodnoty.) Zajistěte, aby fungoval následující kód: T a; a.SetP1(1); a.SetP2(2); a.Set(1,2); int i = a.GetP1(),j=a.GetP2(); i = a.Metoda1(); a naopak nefungoval přístup k datům (následující nesmí fungovat (data a proměnná jsou proměnné dané třídy jejímž je a objektem)) a.data = 4; i = a.promenna; |
konzultace hlavičkových souborů |
9
|
Pomocí statických dat zjišťujte počet vzniklých objektů a počet aktuálních objektů. Tisk aktuálního stavu realizujte pomocí statické metody. Tyto prvky budou součástí projektu. Napište členské a nečlenské funkce pro práci s daty
Zajistěte aby fungoval následující kód: TiskniPrvky(); T a, b,c; TiskniPrvky(); a.Pracuj(); a.Pracuj(1,2); Alokace paměti – dynamická alokace objektů, operátor new (+pozn. Objekty obsahující ukazatel) Konzultace projektu |
Odevzdání hlavičkového souboru (kvalita řešení, úplnost podle zadání, ošetření proti vícenásobnému načtení, 3body) Na cvičení můžete ještě provést konzultaci ale ke konci (dne) cvičení odevzdáte - na e-mail cvičícího. Subjekt „hlavička BPPC“, přidejte den a hodinu cvičení. Odevzdávaný soubor pojmenujte jménem autora a názvem tj. „novak_zlomky“. Odevzdává jen jeden z autorů. V dalším může být znění hlavičky modifikováno. Rozdíly zhodnoťte v závěrečné dokumentaci. Po odevzdání kontrolujte svůj mail, zda neodepíši že přišlo bez přílohy (například kontrola virů …). |
10
|
Dotazy k půlsemestrální práci Doplňte funkci pro dekódování morseovy abecedy (zkuste přepsat z C struktury na C++ třídu) Napište operátory pro vaši třídu (operátor =, unární, binární operátory, operátory pro srovnání == > < >= Napište operátor jako friend funkci Jak přetypovat provést přetypování standardních typů na prvek třídy a naopak.
T a,b,c;
a = a; a = b + c; if (a != b) c = 4 + b; a = -b - +a; b = ~a; b = 5; int bb = b; float f = a != b; |
Konzultace zdrojové části projektu (ukázka činnosti projektu (zdroje main) by měla být napsána tak, aby se načetly data ze souboru z disku, s načtenými daty se postupně provedly všechny operace, a výsledek uložit do druhého souboru. K tomu příslušný komentář. Názvy souborů jako parametr při spouštění programu.) Zhodnocení hlavičkových souborů |
11
|
Prostory jmen (napište streamy s stream.h, a potom změňte na stream, a také stdio.h na cstdio) Vstup a výstup – streamy – přepište programy na tisk tabulek (cvičení č.2) za pomoci možností jazyka C++ (streamy). Zkuste provést výstup na standardní výstup (cout) a do souboru. T a,b; cin >> a; cout << a; ifstream is(„nacti.dat“,ios::in); is >> a; b = Inv(a);// a zůstává, b je inverze (alternativně absolutní hodnota) b = a.Inv(); // a se změní, v b je totéž co v a |
Konzultace zdrojové části projektu |
12
|
Dědění, virtuální metody – jednoduchý příklad dědění, virtuální metody a abstraktní datový typ – grafické objekty
(Výjimky, šablony (matice), Runtime identifikace – komentář) Rozbor půlsemestrální zkoušky (zadání zkoušky, odevzdání projektů, příště obhajoby) |
Odevzdání zdrojového souboru – projekt. Odevzdává se: hlavičkový soubor třídy, zdrojový soubor třídy, cpp soubor s ukázkou použití třídy, soubor vzorového zadání dat. Tyto soubory musí být přeložitelné (bez chyb a warningů) v prostředí MS Visual C (projekt prázdná konzola s maximální vahou warningů a chyb). ( kvalita zdrojových textů, demonstrační program prezentující práci se třídou s komentáři – 4 body, kvalita projektu, splnění zadání, obtížnost - 2 body) poznámka k dokumentaci: 1) Jmeno,
skupina, nazev |
13
|
Obhajoby projektů – připravte si obhajobu projektu cca na 5-8 minut. Uveďte název projektu, popište a zhodnoťte datovou reprezentaci a možné alternativy. Popište interface vaší třídy. Přípravy se nakopírují na disk Q, bude k dispozici dataprojektor. Odpovězte na dotazy ostatních. |
Obhajoba projektu. Odevzdání dokumentace. (obhajoba - 3 body – úvod, datová reprezentace včetně variant, přehled metod, zajímavý kód, ukázka volání, možnosti zlepšení) dokumentace – zadání, hlavička (1b), filozofie návrhu, volba dat, (1b) privátní a veřejné funkce, konstruktory, UML diagram (1b), popis funkcí rozhraní (2b), … závěr (1b) - 6 bodů) |
Poslední úpravy 2006-10-02