VÝUKOVÝ MATERIÁL Identifikační údaje školy 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 Číslo projektu CZ.1.07/1.5.00/34.1076 Název projektu Pro vzdělanější Šluknovsko Číslo a název šablony 32 Inovace a zkvalitnění výuky prostřednictvím ICT Autor 0207 Mgr. Bc. Jan Škoda Tematická oblast Programování Číslo a název materiálu VY_32_INOVACE_0207_0111 Moduly a knihovny Anotace Žák si upevní učivo o modulech a knihovnách Vytvořeno 15. 7. 2013 Určeno pro 3. ročník oboru Informační technologie Přílohy Bez příloh
Metodický list Učitel: Výklad s projekcí elektronického učebního materiálu. Ukázka obecného postupu činností. Monitorování činnosti žáků. Žák: Sleduje výkladovou projekci a demonstraci učitele.
Moduly a knihovny
Knihovny Soubor funkcí, procedur, objektů a zdrojů. Knihovny mohou být sdíleny více programy. Usnadňuje práci programátorovi. Umožňují použít již vytvořený kód v dalších programech.
Knihovny Poskytují své služby pomocí API API: Application Programming Interface označuje v informatice rozhraní pro programování aplikací. Jde o sbírku procedur, funkcí či tříd. Z hlediska práce s kódem knihovny v operační paměti je dělíme na sdílené a nesdílené. Knihovny se dělí se na statické a dynamické.
Statické knihovny Statická knihovna tvoří s přeloženým programem kompaktní celek. Jsou spojovány linkerem v době stavění programu. Je archivem jednoho nebo více objektových souborů. Statické knihovna je nezbytná pro chod daného programu. Typickou příponou souboru statické knihovny je.lib nebo.a.
Dynamické knihovny Do spustitelného souboru se ukládají pouze tabulky odkazů na symboly definované v dynamické knihovně. Pro chod programu je pak potřeba mít na počítači nainstalovánu i příslušnou dynamickou knihovnu. Dynamicky se dají linkovat i dynamické knihovny. Výsledkem je pak dynamická knihovna závislá na jiné dynamické knihovně. Při spouštění programu pak OS provádí dynamické linkování. Typickou příponou souboru obsahujících dynamickou knihovnu je.dll a.so.
Vkládání knihoven v různých jazycích C/C++ #include <knihovna.h/c> #include <ctdlib> C# using knihovna/class; using System.Windows.Forms; Java import Knihovna; Import java.awt.frame; Pascal uses knihovna; uses crt;
Historie knihoven V roce 1959 byly do jazyku COBOL zahrnuty primitivní funkce knihovního systému. Jean Sammet je ve zpětném pohledu popsal jako nedostatečná knihovní zařízení. Další přispění k moderní formě knihovny přispěl jazyk FORTRAN. S významným konceptem přišla též Simula 67 Simula první OOP s modernímy knihovnami.
Moduly Modulární programování je prostředek pro strukturování programů. Je založeno na myšlence rozděl a panuj. Program se rozdělí do částí (modulů), které řeší jednotlivé problémy. Modul vytváří kolem sebe určité hranice, přes které dochází k předávání programových entit.
Výhody Zvyšují přehlednost rozsáhlejších programů. Dobře navržené moduly zvyšují znovupoužitelnost kódu. Moduly lze samostatně ladit. Moduly usnadňují dělbu práce při týmové práci. Zvýšení rychlosti kompilace programu.
Moduly Nedává pravidla pro samotný hierarchický rozklad. Určuje jak má vypadat výsledek. Předpokládá, že výsledkem rozkladu je systém modulů, které jsou rozčleněny do podsystémů. Systém modulů: Podsystém 1 Podsystém 2 R P A D Q B C Zdroj: Autor
Moduly - pojmy Soudržnost Intensita vazeb mezi moduly v rámci jednoho podsystému. Na obrázku na předešlém snímku je to například vazby A-D nebo R-P. Spřaženost Intenzita vazeb mezi moduly různých podsystémů. Na obrázku na předešlém snímku je to například vazby P-A nebo Q-B.
Moduly Chceme-li používat modul, musíme do zdrojového kódu vložit jeho rozhraní. Modul je tvořen minimálně dvěma soubory. Prvním je hlavičkový soubor. Koncovka.h. Obsahuje deklarace všech veřejných datových typů, konstant, případně globálních proměnných. Druhým je zdrojový soubor. Koncovka.c Obsahuje deklarace všech skrytých datových typů a konstant, definice a inicializace veřejných globálních proměnných a konstantních proměnných a implementace všech, skrytých i veřejných funkcí modulu
Příklad modulů v C Soubor vypocty.h #ifndef _VYPOCTY_H #define _VYPOCTY_H int soucet(int a, int b); int rozdil(int a, int b); #endif. Soubor vypocty.c #include "vypocty.h" int soucet(int a, int b) { return a+b; } int rozdil(int a, int b) { return a-b; }
Zásady modulárního programování Málo používat globální proměnné. Podprogramům předávat všechny údaje pomocí parametrů. Moduly lze samostatně ladit. Moduly usnadňují dělbu práce při týmové práci. Dobře navržené moduly zvyšují znovupoužitelnost kódu.
Zdroje Historie - jazyky. Objektová analýza, návrh a programování [online]. 2013 [cit. 2013-07-15]. Dostupné z: http://objekty.vse.cz/programovani/historiejazyky#obr3. Knihovna (programování). In: Referáty-seminárky.cz [online]. 2008 [cit. 2013-07- 15]. Dostupné z: http://referaty-seminarky.cz/knihovna-programovani/. Knihovna (programování). In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2013 [cit. 2013-07-15]. Dostupné z: http://cs.wikipedia.org/wiki/knihovna_%28programov%c3%a1n%c3%ad%29. Modulární programování. Moje škola [online]. 2001-2006 [cit. 2013-07-15]. Dostupné z: http://www.mojeskola.cz/vyuka/php/kurzy/kurz_pascal30.php. MARTINEK, David. Moduly a knihovny. Jak na projekty v jazyce C [online]. 2009 [cit. 2013-07-15]. Dostupné z: http://www.mojeskola.cz/vyuka/php/kurzy/ kurz_pascal30.php. Moduly. KLIMÁNEK, Petr. Krokodyylovy stránky [online]. 2010 [cit. 2013-07-15]. Dostupné z: http://www.krokodyyl.wz.cz/programovani/moduly.php.