Moduły

Moduły są podstawą programowania modularnego i służą przede wszystkim do grupowania 
procedur i funkcji w biblioteki, a także do dzielenia dużych programów na powiązane logicznie części.
Moduł nie stanowi samoistnego programu, a jego użycie w programie wymaga deklaracji. 
Po zadeklarowaniu modułu dostępna jest każda procedura i funkcja zdefiniowana w danym module,
 jak również zadeklarowane w nim stałe, typy i zmienne. Uruchomienie skompilowanego programu
zawierającego deklaracje modułu wymaga, aby moduł taki był również wcześniej skompilowany. Ogólna postać modułu: unit nazwa-modułu; część opisowa modułu część implementacyjna część inicjująca. Część opisowa modułu ma postać: interface deklaracje modułów; definicje literałów, typów i zmiennych; lista nagłówków, procedur i funkcji; Część implementacyjna: implementation definicje procedur i funkcji; deklaracje etykiet, literałów i zmiennych oraz definicje typów, funkcji i procedur wewnętrznych. Deklaracje parametrów formalnych w części opisowej i implemnetacyjnej muszą być ze sobą zgodne. Część inicjująca modułu to end z kropką.
unit graf;
interface
  uses graph;
  procedure kwadrat(xx,yy,aa,kk:integer);
  procedure kolo(xx,yy,rr,kk:integer);
  procedure piszxy(xx,yy,kk:integer;napis:string);
implementation
  procedure kwadrat(xx,yy,aa,kk:integer);
  begin
    setfillstyle(1,kk);
    bar(xx,yy,xx+aa,yy+aa);
  end;
  procedure kolo(xx,yy,rr,kk:integer);
  begin
    setcolor(kk);
    circle(xx,yy,rr)
  end;
   procedure piszxy(xx,yy,kk:integer;napis:string);
   begin
     setcolor(kk);
     outtextxy(xx,yy,napis);
   end;
end.


program grafika1;
uses crt,graph,graf;
var s,t:integer;
begin
  initgraph(s,t,'');
  kwadrat(100,100,200,red);
  kolo(200,200,100,green);
  kolo(200,200,142,yellow);
  piszxy(80,350,white,'Okregi:');
  piszxy(140,350,green,'wpisany w kwadrat');
  piszxy(140,370,yellow,'i opisany na kwadracie');
  readkey;
  closegraph;
end.