Hodnocení DU makra a formátované tabulky

Chyby na které si dávat pozor a doporučení:

Z důvodu procvičení je třeba dělat úkol v konzolové aplikaci (pokud přeci je použijete „Oknovou aplikaci“, potom každopádně funkce pište mimo třídy, do zvláštních zdrojových textů a z automaticky generované části volejte své funkce za přispění hlavičkových souborů)

Pro srovnání možností zkuste programovat v c a poté v C++.

Jelikož makra netvoří kód a jsou to pouze předpisy, které mají širší využití než v jednom souboru, mají být tyto uvedeny v h souboru. V hlavičkovém souboru by mělo být to co netvoří kód – pouze deklarace (definice jsou ve zdrojové části). Je-li v hlavičce kód, pak při vícenásobném načtení je kód obsažen vícekrát a linker zahlásí chybu.

Je konvence, že makra (text za #define) jsou značena z důvodu rozpoznání v ostatním textu velkými písmeny.

I když v některých případech není ozávorkování nutné, je lepší ho „pro jistotu“ (a pro vytvoření užitečného zvyku) raději vždy udělat – ozávorkovat jednotlivé proměnné i celek.

Ozávorkování proměnných makra se provádí v definici makra a ne při použití (pracné a může se zapomenout),

Ošetření hlavičkového souboru před vícenásobným načítáním se provádí pomocí sekvence

#ifndef JEDNOZNACNE_JMENO

#define JEDNOZNACNE_JMENO

definice hlaviček funkcí, maker, extern proměnných …

#endif



Definice proměnné pro podmíněný překlad , #define TEST "bla", nemusí mít druhou část -„bla“. Pro to aby proměnná byla přítomná stačí pouhé #define TEST.

Při formátovaném tisku nepoužívat tabulátor ale nastavit šířku pole pro výstup. Při použití tabulátoru dojde k odskoku až po tisku. Pokud tedy některý tisk překročí tabelační pozici, pak se sloupce „rozjedou“ oproti sobě.

U sinu je dobré zkusit amplitudu menší a větší než jedna (např. 100 a 1/100) – potom se při pokusu o zarovnání desetinné tečky musí uvažovat přítomnost znaménka, počet míst, desetinných míst ...

Nepoužívat globální proměnné – programátorsky nevhodné.

Komentáře by měly zahrnovat popis myšlenky (proč) a ne to co je zřejmé.

Funkce main má podle normy vracet typ int.

Názvy proměnných by neměly začínat podtržítkem.

Procujte samostatně – lépe si „zažijete“ programátorské náviky i vlastní jazyk.



Výsledky:

21585 - 90%

- neozávorkované makro

- soubory Cpp a cpp tisky



74602 - 80%

- není hlavička, include c

- nastavení šířky pole při tisku

- ozávorkovat makro



74705 - 100%

-



83654 - 95%

- ozávorkovat hlavičku

- cpp tisky



pytlikova - 100%

-



74614 - 80%

- ozávorkovat hlavičku

- neincludovat .c

- ozávorkovat makro

- pro podmíněný překlad stejné větve



74616 - 55%

- lépe pomocí for

- nejsou hlavičky

- ozávorkovat makro

- podmíněný překlad se používá jinak

- není tisk sinové tabulky



77705 - 100%

-



74557 - 70% su

- podmíněný překlad lze napsat jednodušeji

- není hlavička

- ozávorkovat makro

- při tisku určit šířku pole

- sin tisknout floatem



15217 - 40%

- vícenásobné načtení hlavičky

- ozávorkovat makro

- překlepy (znaky navíc)

- makra znovu v c

- nejsou tabulky



41753 - 95%

- vícenásobné načtení hlavičky



43268 - 100%

- hlavička proti vícenásobnému načtení

- cpp soubory



74544 - 90%

- není hlavička

- šířka tisku



74564 - 75%

- vícenásobné načtení hlavičky

- ozávorkvoat makro

- pro podmíněný překlad stejné větve

- neincludovat C



74569 - 85%

- v hlavičce nesmí být kód

- načítání int s parametrem %f



74591 - 100%



77661 - 95%

- ozávorkovat hlavičku



77673 - 100%





77696 - 85%

- podmíněný překlad stačí nadefinovat název

- max mělo být makro

- hlavičku ošetřit proti vícenásobnému načtení

- nepoužívat tabelátor ale šířku pole pro tisk



77697 - 100%



80488 - 85%

- není hlavička

- ne elif ale else



80563 - 80%

- není hlavička

- ne tabulátor



83600 - 80%

- podmíněný překlad kombinovaný s ošetřením vícenásobného

načtení,

- zdroje nepatří do hlavičkového souboru



95058 - 70%

- makro s parametry nemá parametry

- chybí násobilka