VÝUKOVÝ MATERIÁL Identifikační údaje školy
Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vytvořeno Určeno pro Přílohy
Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 CZ.1.07/1.5.00/34.1076 Pro vzdělanější Šluknovsko 32 – Inovace a zkvalitnění výuky prostřednictvím ICT 0207 Mgr. Bc. Jan Škoda Programování VY_32_INOVACE_0207_0219 Konvence programování Žák si upevní učivo o konvencích programování 22. 7. 2013 3. ročník oboru Informační technologie Bez příloh
Metodický list • Učitel: • • • •
Výklad s projekcí elektronického učebního materiálu. Demonstrace v reálném prostředí. Ukázka obecného postupu činností. Monitorování činnosti žáků.
• Žák: • Sleduje výkladovou projekci a demonstraci učitele. • Procvičuje na reálném prostředí softwaru.
c++ Konvence programování
Konvence 1 • Zdrojový kód bohatě komentovat. • Pomůže to nejen jiným programátorům, kteří budou případně Váš program "luštit", ale i vám samým, pokud se k němu budete nuceni za čas vrátit. • Můžete používat komentáře ve tvaru • /* komentář */ (vhodné pro víceřádkové komentáře), nebo • // komentář (vhodné pro krátké komentáře).
Konvence 2 • Není-li to absolutně nutné, nepoužívejte nenormalizované prvky jazyka, i když je vámi používaný překladač akceptuje. • Nevíte, kdy budete nuceni program přenést na jinou platformu nebo změníte používaný překladač. • Příkladem může být: • and vs & • or vs ||
Konvence 3 • Funkce main vrací vždy hodnotu typu int. • Občas (i v učebnicích) můžete spatřit deklaraci void main(), ale ta • neodpovídá ani klasickému Céčku Kernighana-Ritchieho, • ani žádné z norem jazyka C, ani normě jazyka C++
• Mnoho překladačů ji akceptuje bez varování.
Konvence 4 • Vzhledem k předchozímu bodu je třeba, aby funkce main rovněž určila hodnotu, která se má vrátit. • Je zvykem vracet nulu, pokud program při zpracování nezjistil chybu a malé kladné číslo, pokud na chybu narazil.
Konvence 5 • Návratová hodnota funkce main je sice formálně typu int, ale aby ji správně zpracoval shell operačního systému, je třeba omezit se na hodnoty od 0 do 255. • Zejména je nevhodné uvádět hodnoty záporné;
• Například: • -1 shell obvykle pochopí jako 255.
Konvence 6 • Program je vhodné členit na funkce provádějící dílčí části algoritmu. • V objektovém programování je toto nezbytné.
Konvence 7 • Pro volané funkce je vhodné na začátek programu uvést jejich prototypy. • U knihovních funkcí to zajistí odpovídající direktiva #include, pro vlastní funkce napište deklaraci prototypu sami. • Pokud zadání vyžaduje vytvoření samostatného hlavičkového souboru, soustřeďte v něm deklarace všech prototypů.
Konvence 8 • Standardní hlavičkové soubory jazyka C++ nemají podle normy příponu .h obvyklou v jazyce C, ale i u starších překladačů C++, ale jsou bez přípony. • Většina překladačů zná oba druhy hlavičkových souborů, ale ty se od sebe v detailech liší. • Staré standardní hlavičkové soubory s příponou nepoužívejte. • Naproti tomu našim vlastním hlavičkovým souborům je třeba příponu .h dát
Konvence 9 • Formální úprava zdrojového kódu může výrazně zlepšit jeho srozumitelnost a přispívá i k odhalení chyb. • Nešetřete proto mezerami pro odsazování podřízených syntaktických konstrukcí a jasně tak vyznačujte, kde končí která vnořená konstrukce. • Na druhé straně počtem mezer neplýtvejte, pro dostatečnou přehlednost stačí odsazovat každý stupeň o 2 mezery. • Doporučuje se, aby délka řádku nepřekročila 120 znaků.
Konvence 10 • I když jazyk C++ v sobě obsahuje i prostředky pro vstup a výstup známé z jazyka C, až na odůvodněné výjimky jich nepoužívejte a nahraďte je používáním operátorů << a >>, případně V/V funkcí jazyka C++. • Podobně nepoužívejte jiné prvky jazyka C tam, kde má C++ k dispozici vhodnější nástroje (např. funkcím a operátorům z hlavičkového souboru <string> dáváme přednost před prostředky ze <string.h> nebo
).
Konvence 11 • Každý program by měl před čtením ze standardního vstupu vypsat pokyny, jaká data očekává. • To platí i v případě, kdy program ohlásí, že data jsou chybná.
Konvence 12 • Srozumitelnosti přispívá vhodná volba názvů proměnných, funkcí, tříd, šablon a jiných entit. • Mnemotechnické názvy – např. celkovy_pocet nebo soucet() – jsou rozhodně vhodnější než názvy, které nic neříkají – jako a nebo B(). • Šetřit na délce názvů přinese víc problémů než úspor.
Konvence 13 • Proměnné je vhodné deklarovat lokálně uvnitř funkce. • Pouze ty, které se budou používat ve více funkcích a není účelné je předávat jako parametry, deklarovat jako globální.
Zdroje • BERAN, Martin. Učebnice Borland C: učebnice programování v Borland C 4. generace. Praha: BEN - technická literatura, 1995, 442 s. ISBN 80-238-0304-2. • HEROUT, Pavel. Učebnice jazyka C. 3. vyd. České Budějovice: Kopp, 1994, 269 s. ISBN 80-858-2821-9. • HEROUT, Pavel. Učebnice jazyka C: 2. díl. 1. vyd. České Budějovice: KOPP, 1995, 236 s. ISBN 80-858-2850-2. • Konvence pro programování v jazyku C/C++. KUČERA, Jan. Programování v jazyku C++ [online]. 2009 [cit. 2013-07-22]. Dostupné z: http://www.fi.muni.cz/usr/jkucera/pb161/konvence. htm. • SCHILDT, Herbert. Nauč se sám C. Překlad Jiří Grée, Adéla Gréeová. Praha: SoftPress, 2001, 623 s. ISBN 80-864-9713-5.