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'