Pascal - Einheiten

Ein Pascal-Programm kann aus Modulen bestehen, die als Einheiten bezeichnet werden. Eine Einheit kann aus einigen Codeblöcken bestehen, die wiederum aus Variablen und Typdeklarationen, Anweisungen, Prozeduren usw. bestehen. In Pascal gibt es viele integrierte Einheiten, und Pascal ermöglicht es Programmierern, ihre eigenen Einheiten zu definieren und zu schreiben, die verwendet werden sollen später in verschiedenen Programmen.

Eingebaute Einheiten verwenden

Sowohl die integrierten als auch die benutzerdefinierten Einheiten werden durch die Verwendungsklausel in ein Programm aufgenommen. Wir haben die Varianteneinheit bereits im Tutorial Pascal - Varianten verwendet . In diesem Tutorial wird das Erstellen und Einfügen von benutzerdefinierten Einheiten erläutert. Lassen Sie uns jedoch zuerst sehen, wie eine eingebaute Einheit eingebaut wirdcrt in Ihrem Programm -

program myprog;
uses crt;

Das folgende Beispiel zeigt die Verwendung von crt Einheit -

Program Calculate_Area (input, output);
uses crt;
var 
   a, b, c, s, area: real;

begin
   textbackground(white); (* gives a white background *)
   clrscr; (*clears the screen *)
   
   textcolor(green); (* text color is green *)
   gotoxy(30, 4); (* takes the pointer to the 4th line and 30th column) 
   
   writeln('This program calculates area of a triangle:');
   writeln('Area = area = sqrt(s(s-a)(s-b)(s-c))');
   writeln('S stands for semi-perimeter');
   writeln('a, b, c are sides of the triangle');
   writeln('Press any key when you are ready');
   
   readkey;
   clrscr;
   gotoxy(20,3);
   
   write('Enter a: ');
   readln(a);
   gotoxy(20,5);
   
   write('Enter b:');
   readln(b);
   gotoxy(20, 7);
   
   write('Enter c: ');
   readln(c);

   s := (a + b + c)/2.0;
   area := sqrt(s * (s - a)*(s-b)*(s-c));
   gotoxy(20, 9);
   
   writeln('Area: ',area:10:3);
   readkey;
end.

Es ist dasselbe Programm, das wir gleich zu Beginn des Pascal-Tutorials verwendet haben. Kompilieren Sie es und führen Sie es aus, um die Auswirkungen der Änderung zu ermitteln.

Erstellen und Verwenden einer Pascal-Einheit

Um eine Einheit zu erstellen, müssen Sie die Module oder Unterprogramme schreiben, die Sie darin speichern möchten, und sie in einer Datei mit speichern .pasErweiterung. Die erste Zeile dieser Datei sollte mit dem Schlüsselwort unit beginnen, gefolgt vom Namen der Einheit. Zum Beispiel -

unit calculateArea;

Im Folgenden finden Sie drei wichtige Schritte zum Erstellen einer Pascal-Einheit:

  • Der Name der Datei und der Name des Geräts sollten genau gleich sein. Daher wird unsere Einheit berechneArea in einer Datei mit dem Namen berechneArea.pas gespeichert .

  • Die nächste Zeile sollte aus einem einzelnen Schlüsselwort bestehen interface. Nach dieser Zeile schreiben Sie die Deklarationen für alle Funktionen und Prozeduren, die in dieser Einheit enthalten sein werden.

  • Schreiben Sie das Wort direkt nach den Funktionsdeklarationen implementation, was wieder ein Schlüsselwort ist. Geben Sie nach der Zeile mit der Schlüsselwortimplementierung eine Definition aller Unterprogramme an.

Das folgende Programm erstellt die Einheit berechneArea -

unit CalculateArea;
interface

function RectangleArea( length, width: real): real;
function CircleArea(radius: real) : real;
function TriangleArea( side1, side2, side3: real): real;

implementation

function RectangleArea( length, width: real): real;
begin
   RectangleArea := length * width;
end;

function CircleArea(radius: real) : real;
const
   PI = 3.14159;
begin
   CircleArea := PI * radius * radius;
end;

function TriangleArea( side1, side2, side3: real): real;
var
   s, area: real;

begin
   s := (side1 + side2 + side3)/2.0;
   area := sqrt(s * (s - side1)*(s-side2)*(s-side3));
   TriangleArea := area;
end;

end.

Als nächstes schreiben wir ein einfaches Programm, das die oben definierte Einheit verwenden würde -

program AreaCalculation;
uses CalculateArea,crt;

var
   l, w, r, a, b, c, area: real;

begin
   clrscr;
   l := 5.4;
   w := 4.7;
   area := RectangleArea(l, w);
   writeln('Area of Rectangle 5.4 x 4.7 is: ', area:7:3);

   r:= 7.0;
   area:= CircleArea(r);
   writeln('Area of Circle with radius 7.0 is: ', area:7:3);

   a := 3.0;
   b:= 4.0;
   c:= 5.0;
  
   area:= TriangleArea(a, b, c);
   writeln('Area of Triangle 3.0 by 4.0 by 5.0 is: ', area:7:3);
end.

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Area of Rectangle 5.4 x 4.7 is: 25.380
Area of Circle with radius 7.0 is: 153.938
Area of Triangle 3.0 by 4.0 by 5.0 is: 6.000