Un exemplu al unei case în pascal - site-ul „Totul despre pascal“

var
Gd. Gm. integer;

tip
XY = înregistrare
X. Integer;
Y. Integer;
se încheie;

Procedura LineXY (A. B. XY);
începe
Linia (A X. A. Y. B. X. B. Y.);
se încheie;

Procedura AddXY (A. B. XY; var Res XY.);
începe
Res. X: = A. X + B. X;
Res. Y: = A. Y + B. Y;
se încheie;

Procedura SubXY (A. B. XY; var Res XY.);
începe
Res. X: = A. X - B. X;
Res. Y: = A. Y - B. Y;
se încheie;

Procedura MulXY (A. XY; L. Integer ;. var Res XY);
începe
Res. X: = A. X * L;
Res. Y: = A. Y * L;
se încheie;

Procedura XY2XYC (A. XY; var Res XYC.);
începe
Res. X: = A. X;
Res. Y: = A. Y;
Res. C: = 1;
se încheie;

Procedura XYC2XY (A. XYC; var Res XY.);
var
ResX. RESY. LongInt;
începe
ResX: = A. X div A. C;
RESY: = A. Y div A. C;
Res. X: = ResX;
Res. Y: = RESY;
se încheie;

Procedura IncidXYC (A. B. XYC ;. var Res XYC);
începe
Res. X: = A. Y * B. C - A. C * B. Y;
Res. Y: = - A. C * B. X + X * A. B. C;
Res. C: = A. X * B. Y - A. Y * B. X;
se încheie;

Procedura Cloud (X. Y. Integer);
Const CloudImage. array [1. 7] de String =
( ''.
“. “.
“. “.
“. “.
“. “.
“. “.
„);
var
i. j. integer;
începe
pentru i: = 1 la 7 do
pentru j: = 1 până la Lungime (CloudImage [1]) fac
în cazul în care CloudImage [i. j] = '' atunci
PutPixel (X + j - 1. Y + i - 1. LightGray);
se încheie;

var
a. b. c. d. e. f. g. h. i. j. k. l. m. n. o.
p. q. r. s. T. u. v. w. x. y. z. A0. B0. c0. XY;
Acoperiș. array [1. 5] XY;
Roof2. array [1. 4] XY;
Shadow. array [1. 9] XY;
începe
Gd: = VGA;
Gm: = VGAHi; <640x480>
( 'X: \ BP' Gd Gm ..) InitGraph;

<Небо>
SetFillStyle (SolidFill LightCyan.);
Bar (0. 0. 639. 479);

<Облака>
Cloud (89. 91); Cloud (90. 82); Cloud (11. 91); Cloud (72. 98);
Cloud (52. 27); Cloud (42. 77); Cloud (98. 58); Cloud (48. 12);
Cloud (67. 62); Cloud (167. 34); Cloud (62. 73); Cloud (363. 54);
Cloud (122. 46); Cloud (40. 46); Cloud (27. 26); Cloud (49. 23);

<Трава>
SetFillStyle (SolidFill LightGreen.);
FillEllipse (320. 380. 500. 200);

<Кирпичные стены>
SetLineStyle (SolidLn 0. NormWidth.);
Setcolor (negru);
SetFillStyle (SolidFill Brown.);


a. X: = 200;
a. Y: = 150;
b. X: = 10;
b. Y: = 0;
c. X: = 0;
c. Y: = 10;
DrawWall (.. A b c 20. 20. Fals.);
MulXY (b 20. d.);
AddXY (a d e ..);
f. X: = 5;
f. Y: = - 5;
DrawWall (e f c 20. 20. Adevărat ...);

SetFillStyle (SolidFill LightGray.);
FillPoly (5. Acoperiș);
DrawPoly (5. Acoperiș);
SetFillStyle (SolidFill DarkGray.);
FillPoly (4. Roof2);
DrawPoly (4. Roof2);

SetFillStyle (SolidFill verde.);
FillPoly (9. Shadow);

SetFillStyle (SolidFill Red.);
DrawRect (.. E c 7. 8. 13. 20. Adevărat Adevărat f ..);

<Окно>
Setcolor (alb);
SetFillStyle (SolidFill albastru.);
DrawRect (.. A b c 6. 6. 14. 14. Adevărat Adevărat ..);
DrawRect (.. A b c 10. 6. 14. 14. Adevărat Adevărat ..);
DrawRect (.. A b c 10. 6. 14. 9. Adevărat Adevărat ..);

<Табличка>
Setcolor (albastru);
SetFillStyle (SolidFill alb.);
DrawRect (.. A b c 1. 2. 19. 5. Adevărat Adevărat ..);

SetTextStyle (5. HorizDir 1.);
OutTextXY (a. X + b. X * 1 + c. X * 1 + 3. a. Y + b. Y * 2 + c. Y * 2.
„Dom-2: Perestroika„);

în timp ce nu fac KeyPressed
Delay (200);