Pascal - jednostki
Program Pascal może składać się z modułów zwanych jednostkami. Jednostka może składać się z kilku bloków kodu, które z kolei składają się ze zmiennych i deklaracji typu, instrukcji, procedur itp. W Pascalu i Pascalu jest wiele wbudowanych jednostek, które pozwalają programistom definiować i zapisywać własne jednostki do użycia później w różnych programach.
Korzystanie z jednostek wbudowanych
Zarówno jednostki wbudowane, jak i jednostki zdefiniowane przez użytkownika są zawarte w programie przez klauzulę use. Skorzystaliśmy już z jednostki wariantów w samouczku Pascal - Variants . W tym samouczku wyjaśniono tworzenie i dołączanie jednostek zdefiniowanych przez użytkownika. Jednak najpierw zobaczmy, jak uwzględnić jednostkę wbudowanącrt w twoim programie -
program myprog;
uses crt;
Poniższy przykład ilustruje użycie crt jednostka -
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.
Jest to ten sam program, którego użyliśmy na początku samouczka Pascala, skompiluj go i uruchom, aby znaleźć efekty zmiany.
Tworzenie i używanie jednostki paskalowej
Aby utworzyć jednostkę, należy zapisać moduły lub podprogramy, które chcesz w niej przechowywać i zapisać w pliku z .pasrozbudowa. Pierwsza linia tego pliku powinna zaczynać się słowem kluczowym unit, po którym następuje nazwa jednostki. Na przykład -
unit calculateArea;
Oto trzy ważne kroki w tworzeniu jednostki Pascal -
Nazwa pliku i nazwa jednostki powinny być dokładnie takie same. Tak więc nasza jednostka obliczArea zostanie zapisana w pliku o nazwie ObliczArea.pas.
Następna linia powinna składać się z jednego słowa kluczowego interface. W tym wierszu napiszesz deklaracje wszystkich funkcji i procedur, które pojawią się w tym urządzeniu.
Zaraz po deklaracjach funkcji wpisz słowo implementation, co znowu jest słowem kluczowym. Po wierszu zawierającym implementację słowa kluczowego podaj definicję wszystkich podprogramów.
Poniższy program tworzy jednostkę o nazwie calcArea -
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.
Następnie napiszmy prosty program, który użyje jednostki, którą zdefiniowaliśmy powyżej -
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.
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
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