110 likes | 214 Views
Programování v Pascalu Přednáška 10. RNDr. Hana Havelková. Programová jednotka. Struktura Interface Implementace Inicializace Použití. Programová jednotka. funguje jako knihovna konstant typů proměnných funkcí procedur
E N D
Programování v Pascalu Přednáška 10 RNDr. Hana Havelková
Programová jednotka • Struktura • Interface • Implementace • Inicializace • Použití
Programová jednotka • funguje jako knihovna • konstant • typů • proměnných • funkcí • procedur • může být univerzálně použitelná nebo naopak zaměřená konkrétní problematiku • komplexní čísla • matice • zlomky • finanční matematika • grafika • …
Struktura jednotky unit identifikátor_jednotky; hlavička interface deklarace konstant; deklarace typů; interface deklarace proměnných; hlavičky procedur a funkcí implementation uses seznam knihovních modulů; definice funkcí a procedur z interface definice pomocných procedur a funkcí implementace end. inicializace
Interface rozhraní jednotky tato část obsahuje seznam všech prvků, které mají být přístupné, které jednotka dává veřejně k dispozici • deklarace konstant, typů, proměnných • hlavičky procedur a funkcí
Implementation implementace jednotky tato část obsahuje • deklarace konstant, typů a proměnných, které používá jednotka a nejsou veřejně přístupné • deklarace všech procedur a funkcí, jejichž hlavičky byly uvedeny v interface • deklarace další pomocných procedur a funkcí, které ovšem nejsou veřejně přístupné
Inicializace • může obsahovat blok příkazů, které se provedou při zavedení jednotky ještě před spuštěním programu, který jednotku používá • může být prázdná (v tom případě není uvedeno slovo begin)
Použití jednotky • zkontrolujeme, zda-li se překládá na disk – menu • COMPILE – DESTINATION – DISK • jednotku přeložíme do TPU – jméno jednotky musí být shodné se jménem souboru PAS i souboru TPU • zkontrolujeme, zda-li soubor TPU je ve složce jednotek nastavené v menu OPTION – DIRECTORIES – EXE & TPU directories • uvedeme správné jméno jednotky v klauzuli uses programu či jednotky, která ji chce použít
Jednotka Cas (1) unit Cas; interface const dny : array[0..6] ofstring = ('Nedele','Pondeli','Utery','Streda','Ctvrtek','Patek', 'Sobota'); procedure AktDatum; implementation uses Crt, DOS; procedure AktDatum; var hod, min, sek, mili : word; den, mes, rok, cden : word;
Jednotka Cas (2) begin GetTime(hod,min,sek,mili); GetDate(rok, mes, den, cden); TextColor(red); GotoXY(60,2); Write(dny[cden]); GotoXY(67,2); ClrEol; Write(hod,':',min,':',sek); GotoXY(60,3); ClrEol; WriteLn(den,'. ',mes,'. ',rok); TextColor(white); end; begin AktDatum; end.
Jednotka Zlomek - interface unit Zlomek; interface type TZlomek = record citatel : integer; jmenovatel : integer; end; procedure Kraceni(var z : TZlomek); procedure ZadejZlomek(var z : TZlomek); procedure Soucet(z1, z2 : TZlomek;var s : TZlomek); procedure Rozdil(z1, z2 : TZlomek;var r : TZlomek); procedure Soucin(z1, z2 : TZlomek;var s : TZlomek); procedure Podil(z1, z2 : TZlomek;var p : TZlomek);