Pascal - Unidades

Un programa Pascal puede constar de módulos llamados unidades. Una unidad puede constar de algunos bloques de código, que a su vez se componen de variables y declaraciones de tipo, declaraciones, procedimientos, etc. Hay muchas unidades integradas en Pascal y Pascal permite a los programadores definir y escribir sus propias unidades para su uso. posteriormente en varios programas.

Uso de unidades integradas

Tanto las unidades integradas como las unidades definidas por el usuario se incluyen en un programa mediante la cláusula de usos. Ya hemos utilizado la unidad de variantes en Pascal - Tutorial de variantes . Este tutorial explica cómo crear e incluir unidades definidas por el usuario. Sin embargo, veamos primero cómo incluir una unidad incorporadacrt en tu programa -

program myprog;
uses crt;

El siguiente ejemplo ilustra el uso de crt unidad -

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 el mismo programa que usamos justo al principio del tutorial de Pascal, compílelo y ejecútelo para encontrar los efectos del cambio.

Creación y uso de una unidad Pascal

Para crear una unidad, debe escribir los módulos o subprogramas que desea almacenar en ella y guardarlo en un archivo con .pasextensión. La primera línea de este archivo debe comenzar con la palabra clave unit seguida del nombre de la unidad. Por ejemplo

unit calculateArea;

A continuación se presentan tres pasos importantes para crear una unidad Pascal:

  • El nombre del archivo y el nombre de la unidad deben ser exactamente iguales. Por lo tanto, nuestra unidad calculateArea se guardará en un archivo llamado calculateArea.pas.

  • La siguiente línea debe constar de una sola palabra clave. interface. Después de esta línea, escribirá las declaraciones para todas las funciones y procedimientos que vendrán en esta unidad.

  • Justo después de las declaraciones de función, escribe la palabra implementation, que es nuevamente una palabra clave. Después de la línea que contiene la implementación de la palabra clave, proporcione la definición de todos los subprogramas.

El siguiente programa crea la unidad llamada calculateArea -

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.

A continuación, escribamos un programa simple que usaría la unidad que definimos anteriormente:

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.

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

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