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