1  unit marek_unit; {Jméno jednotky}
 2
 3  interface  {sekce interface - veřejná: je vidět z jiných jednotek.} 
 4              {Obsahuje hlavičky procedur a funkcí a může obsahovat i sekce const, type, var ..}  
 5  const                           
 6          jmeno='Marek';
7 8 type {Můžu zde definovat datové typy, a protože je to sekce veřejná} 9 Tosoba=record {můžu zde nadefinované datové typy použít i jinde.} 10 jmeno:string[10];
11 prijmeni:string[12];
12 end;
13 var {Můžu definovat 'Globální proměnné'. Snažím se ale používat raději 'Lokální proměnné' přímo v } 14 promena:integer; {těle funkcí a procedur.} 15 16 17 function MOCNINA(X:real; n:integer):real; {funkce vrátí mocninu čísla x na n-tou} 18 procedure MOCNINAjinak(X:real; n:integer; var vysledek:real);
19 {toto jsou jen hlavičky, které jsou "veřejné"} 20 21 implementation {sekce implementací - ta je soukromá. Pokud hlavičku funkce či procedury není neuvedena v 'interface', nelze je jinde použít} 22 {Sem píšeme 'těla' funkcí a procedur.} 23 const {Sekce const, type, var můžou být i zde ale co tu nadefinuji bude neveřejné} 24 type 25 var 26 27 28 function MOCNINA(X:real; n:integer):real;
29 var i:integer;
30 vysledek:real;
31 32 begin 33 if n=0 then MOCNINA:=1 34 else begin 35 vysledek:=X;
36 for i:=1 to n-1 do 37 vysledek:=vysledek*X;
38 MOCNINA:=vysledek;
39 end;
40 end;
41 42 43 procedure MOCNINAjinak(X:real; n:integer; var vysledek:real);
44 var i:integer; {Proměnná 'vysledek' je volána odkazem, proto se uvnitř funkce změní její hodnota.} 45 46 begin 47 if n=0 then vysledek:=1 48 else begin 49 vysledek:=X;
50 for i:=1 to n-1 do 51 vysledek:=vysledek*X;
52 end;
53 end;
54 55 56 57 end.
58
'Hlavní program'