You are on page 1of 23

PRACTICA N° 1

CARACTERISTICAS PERSONALES
program caracteristicas_personales;
uses
forms,
dialogs,
sysutils;

begin
showmessage('mi nombre es:RAUL'+#13+'mi apellido paterno es:ESTEBANO'+#13+'mi
apellido materno es:GALVEZ'+#13+'mi estatura es:1,69m'+#13+'estudio en:UMSS');
showmessage('falcultad:Ciencias.yTecnologia'+#13+'carrera:Ing.Civil'+#13+'Semestre:6to'
+#13+'telefono:65706473'+#13+'Domicilio:Av.Melchor Perez y Tadeo Haenke');
showmessage('musica favorita:cumbia,clasicos'+#13+'color de piel:Morena'+#13+'color de
ojos:Castaño'+#13+'Nacido en:Cochabamba'+#13+'pais:Bolivia'+#13+'deporte
favorito:Futsal'+#13+'signo:Libra');
end.
PRACTICA N° 2
MATRICES
PROGRAM MATRIZ;
uses
FORMS,
DIALOGS,
SYSUTILS;
CONST MAX=18;
TYPE TMATRIZ=ARRAY[1..MAX,1..MAX]OF REAL;
VAR
A,B,C:TMATRIZ;
P,Q,R,S:INTEGER;
PROCEDURE LEER(M:STRING;VAR A:TMATRIZ;P,Q:INTEGER);
VAR I,J:INTEGER;
BEGIN
FOR I:=1 TO P DO
FOR J:=1 TO Q DO
A[I,J]:=STRTOFLOAT(INPUTBOX(M+'['+INTTOSTR(I)+','+INTTOSTR(J)+']','INGRESE VALOR','1'));
END;
PROCEDURE MOSTRAR(M:STRING;A:TMATRIZ;P,Q:INTEGER);
VAR
I,J:INTEGER;
S:STRING;
BEGIN
FOR I:=1 TO P DO
BEGIN
FOR J:=1 TO Q DO
S:=S+FLOATTOSTR(A[I,J])+#9;
S:=S+#13;
END;
SHOWMESSAGE('MATRIZ'+M+#13+S);
END;
PROCEDURE CALCULAR(VAR A,B,C:TMATRIZ;P,Q,R,S:INTEGER);
VAR
I,J,K:INTEGER;
SUM:REAL;
BEGIN
IF(P=R)AND(Q=S)THEN
BEGIN
FOR I:=1 TO P DO
FOR J:=1 TO Q DO
C[I,J]:=A[I,J]+B[I,J];
MOSTRAR('A+B=',C,P,Q);
END
ELSE
SHOWMESSAGE('NO EXISTE MATRIZ SUMA');
IF(Q=R)THEN
BEGIN
FOR I:=1 TO P DO
FOR J:=1 TO S DO
BEGIN
SUM:=0;
FOR K:=1 TO Q DO
SUM:=SUM+A[I,K]*B[K,J];
C[I,J]:=SUM;
END;
MOSTRAR('A.B=',C,P,S);
END
ELSE
SHOWMESSAGE('NO EXISTE MATRIZ PRODUCTO');
END;
BEGIN
P:=STRTOINT(INPUTBOX('FILAS','ORDEN DE LA MATRIZ A','2'));
Q:=STRTOINT(INPUTBOX('COLUMNAS','ORDEN DE LA MATRIZ A','3'));
R:=STRTOINT(INPUTBOX('FLIAS','ORDEN DE LA MATRIZ B','3'));
S:=STRTOINT(INPUTBOX('COLUMNAS','ORDEN DE LA MATRIZ B','4'));
LEER('A',A,P,Q);
LEER('B',B,R,S);
CALCULAR(A,B,C,P,Q,R,S);
END.
PRACTICA N° 3
MAYOR DE 8 NUMEROS REALES
ESTEBANO=8
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit9: TEdit;
Button1: TButton;
Button2: TButton;
Label10: TLabel;
procedure button1click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,f,g,h,mayor:double;
begin
try
a:=strtofloat(edit1.text);
b:=strtofloat(edit3.text);
c:=strtofloat(edit3.text);
d:=strtofloat(edit4.text);
e:=strtofloat(edit5.text);
f:=strtofloat(edit6.text);
g:=strtofloat(edit7.text);
h:=strtofloat(edit8.text);
mayor:=a;
if(b>mayor)then
mayor:=b;
if(c>mayor)then
mayor:=c;
if(d>mayor)then
mayor:=d;
if(e>mayor)then
mayor:=e;
if(f>mayor)then
mayor:=f;
if(g>mayor)then
mayor:=g;
if(h>mayor)then
mayor:=h;
edit9.text:=formatfloat('',mayor);
button1.enabled:=false;
except
on econverterror do
begin
showmessage('existe algun error');
end;
end;
end;
procedure TForm1.button2click(sender:tobject);
begin
close
end;
end.
PRACTICA N° 4
4 USUARIOS CON 4 CONTRASEÑAS Y 3 OPORTUNIDADES

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Timer1: TTimer;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label9: TLabel;
Edit7: TEdit;
Label10: TLabel;
Edit8: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
IF(LOWERCASE(EDIT1.TEXT)='umss')AND(LOWERCASE(EDIT2.TEXT)='123')THEN
IF(LOWERCASE(EDIT3.TEXT)='fcyt')AND(LOWERCASE(EDIT4.TEXT)='456')THEN
IF(LOWERCASE(EDIT5.TEXT)='ing')AND(LOWERCASE(EDIT6.TEXT)='789')THEN
IF(LOWERCASE(EDIT7.TEXT)='civil')AND(LOWERCASE(EDIT8.TEXT)='321')THEN
BEGIN
TIMER1.ENABLED:=FALSE;
LABEL5.CAPTION:='';
SHOWMESSAGE('BIENVENIDO AL SISTEMA');
CLOSE
END
ELSE
BEGIN
IF(FORM1.TAG<3)THEN
SHOWMESSAGE('ERROR..! CONTRASEÑA INCORRECTA');
IF(FORM1.TAG>=3)THEN
BEGIN
TIMER1.ENABLED:=FALSE;
LABEL5.CAPTION:='';
SHOWMESSAGE('SE LE TERMINO LAS OPORTUNIDADES');
CLOSE
END
ELSE
FORM1.TAG:=FORM1.TAG+1;
END;

end;

procedure TForm1.Timer1Timer(Sender: TObject);


begin
LABEL5.CAPTION:='LE RESTAN '+ INTTOSTR(TIMER1.TAG)+' SEGUNDOS';
TIMER1.TAG:=TIMER1.TAG-1;
IF(TIMER1.TAG=0)THEN
BEGIN
TIMER1.ENABLED:=FALSE;
LABEL5.CAPTION:='';
SHOWMESSAGE('SE LE AGOTO EL TIEMPO, INTENTELO DESPUES');
CLOSE
END;
end;
end.
PRACTICA N° 5
CONVERSION DE UNIDADES
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Label6: TLabel;
Label7: TLabel;
Edit5: TEdit;
Edit6: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT1)THEN
BEGIN
CM:=STRTOFLOAT(EDIT1.TEXT);
M:=CM*(1/100);
KM:=CM*(1/100000);
PULG:=CM*0.393701;
PIE:=CM*0.0328084;
YARDA:=CM*0.0109361;
EDIT2.TEXT:=FLOATTOSTR(M);
EDIT3.TEXT:=FLOATTOSTR(KM);
EDIT4.TEXT:=FLOATTOSTR(PULG);
EDIT5.TEXT:=FLOATTOSTR(PIE);
EDIT6.TEXT:=FLOATTOSTR(YARDA);
END;
END;
END;
END;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT2)THEN
BEGIN
M:=STRTOFLOAT(EDIT2.TEXT);
CM:=M*100;
KM:=M*(1/1000);
PULG:=M*39.3701;
PIE:=M*3.28084;
YARDA:=M*1.09361;
EDIT1.TEXT:=FLOATTOSTR(CM);
EDIT3.TEXT:=FLOATTOSTR(KM);
EDIT4.TEXT:=FLOATTOSTR(PULG);
EDIT5.TEXT:=FLOATTOSTR(PIE);
EDIT6.TEXT:=FLOATTOSTR(YARDA);
END;
END;
END;
END;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT3)THEN
BEGIN
KM:=STRTOFLOAT(EDIT3.TEXT);
CM:=KM*100000;
M:=KM*1000;
PULG:=KM*39370.1;
PIE:=KM*3280.84;
YARDA:=KM*1093.61;
EDIT1.TEXT:=FLOATTOSTR(CM);
EDIT2.TEXT:=FLOATTOSTR(M);
EDIT4.TEXT:=FLOATTOSTR(PULG);
EDIT5.TEXT:=FLOATTOSTR(PIE);
EDIT6.TEXT:=FLOATTOSTR(YARDA);
END;
END;
END;
END;
procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT4)THEN
BEGIN
PULG:=STRTOFLOAT(EDIT4.TEXT);
CM:=PULG*(1/0.393701);
M:=PULG*(1/39.3701);
KM:=PULG*(1/39370.1);
PIE:=PULG*0.083333291;
YARDA:=PULG*0.027777679;
EDIT1.TEXT:=FLOATTOSTR(CM);
EDIT2.TEXT:=FLOATTOSTR(M);
EDIT3.TEXT:=FLOATTOSTR(KM);
EDIT5.TEXT:=FLOATTOSTR(PIE);
EDIT6.TEXT:=FLOATTOSTR(YARDA);
END;
END;
END;
END;
procedure TForm1.Button1Click(Sender: TObject);
begin
close
end;
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT5)THEN
BEGIN
PIE:=STRTOFLOAT(EDIT5.TEXT);
CM:=PIE*(1/0.038084);
M:=PIE*(1/3.28084);
KM:=PIE*(1/3280.84);
PULG:=PIE*(1/3280.84);
YARDA:=PIE*(1.09361/3.2804);
EDIT1.TEXT:=FLOATTOSTR(CM);
EDIT2.TEXT:=FLOATTOSTR(M);
EDIT3.TEXT:=FLOATTOSTR(KM);
EDIT4.TEXT:=FLOATTOSTR(PULG);
EDIT6.TEXT:=FLOATTOSTR(YARDA);
END;
END;
END;
END;
procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char);
VAR
CM,M,KM,PULG,PIE,YARDA:REAL;
BEGIN
CASE ORD(KEY)OF
13:BEGIN
IF(SENDER=EDIT6)THEN
BEGIN
YARDA:=STRTOFLOAT(EDIT6.TEXT);
CM:=YARDA*(1/0.0109361);
M:=YARDA*(1/1.09361);
KM:=YARDA*(1/1093.61);
PULG:=YARDA*(39.3761/1.09361);
PIE:=YARDA*(3.28084/1.09361);
EDIT1.TEXT:=FLOATTOSTR(CM);
EDIT2.TEXT:=FLOATTOSTR(M);
EDIT3.TEXT:=FLOATTOSTR(KM);
EDIT4.TEXT:=FLOATTOSTR(PULG);
EDIT5.TEXT:=FLOATTOSTR(PIE);
END;
END;
END;
END;
end.
PRACTICA N° 6
RAIZ 14VA APROXIMADA

ESTEBANO=8 GALVEZ=6 TOTAL=14

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);


VAR
X,R,ANT,DIF:REAL;
begin
IF(KEY=#13)THEN
BEGIN
X:=STRTOFLOAT(EDIT1.TEXT);
R:=X/14; //CAMBIAR EL VALOR DE 14(RAIZ Q NOS PIDE)
REPEAT
ANT:=R;

R:=(ANT+X/(ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT*ANT))/1
4; //ANT(RAIZ Q NOS PIDE)-1
DIF:=ABS(X-R*R*R*R*R*R*R*R*R*R*R*R*R*R) //R(RAIZ Q NOS PIDE)
UNTIL(DIF<1E-2);
LABEL2.CAPTION:='R= '+FLOATTOSTR(R);
END;
end;
end.
PRACTICA N° 7
SUMA DE NUMEROS PARES E IMPARES
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);


begin
if length(edit1.Text)>0then
bitBtn1.Enabled:=true
else
bitbtn1.Enabled:=false
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then bitBtn1.SetFocus;
if not(key in['0'..'9',#8])then key:=#0
end;

procedure TForm1.BitBtn1Click(Sender: TObject);


var n:Word;
num,den,sTPares,sTimpares:real;
i:byte;
begin
n:=strtoint(edit1.Text);
i:=2;sTpares:=0;sTimpares:=0;
while(n>=exp(i*ln(2)))do
begin
den:=exp(i*ln(2));
num:=den-1;
if i mod 2=0 then
sTpares:=sTpares+num/den
else
sTimpares:=sTimpares-num/den;
inc(i)
end;
edit2.text:=floatTostr(sTpares);
edit3.text:=floatTostr(sTimpares);
end;
end.
PRACTICA N° 8
FACTORIAL DE UN NUMERO

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

FUNCTION FACTORIAL(N:INTEGER):REAL;
VAR
FACT:DOUBLE;
BEGIN
FACT:=1;
WHILE(N>0)DO
BEGIN
FACT:=FACT*N;
N:=N-1;
END;
FACTORIAL:=FACT;
END;

procedure TForm1.Button2Click(Sender: TObject);


begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
VAR
N:INTEGER;
RES:DOUBLE;
begin
N:=STRTOINT(EDIT1.TEXT);
RES:=FACTORIAL(N);
EDIT2.Text:=FLOATTOSTR(RES);

end;

end.
PRACTICA N° 9
GRAFICAR NOMBRE Y APELLIDO
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
WITH CANVAS DO
BEGIN
PEN.COLOR:=CLBLUE;
PEN.WIDTH:=5;
POLYLINE([POINT(25,175),POINT(25,75),POINT(75,75),POINT(75,125),POINT(25,125),
POINT(75,175)]);
POLYLINE([POINT(100,175),POINT(100,75),POINT(150,75),POINT(150,125),point(100,125),
point(150,125),POINT(150,175)]);
POLYLINE([POINT(175,75),POINT(175,175),POINT(225,175),POINT(225,75)]);
POLYLINE([POINT(250,75),POINT(250,175),POINT(300,175)]);
POLYLINE([POINT(400,75),POINT(350,75),POINT(350,125),POINT(375,125),POINT(350,125),
POINT(350,175),POINT(400,175)]);
POLYLINE([POINT(475,75),POINT(425,75),POINT(425,125),POINT(475,125),POINT(475,175),
POINT(425,175)]);
POLYLINE([POINT(500,75),POINT(550,75),POINT(525,75),POINT(525,175)]);
POLYLINE([POINT(625,75),POINT(575,75),POINT(575,125),POINT(600,125),POINT(575,125),
POINT(575,175),POINT(625,175)]);
POLYLINE([POINT(650,75),POINT(700,75),POINT(700,125),POINT(675,125),POINT(700,125),
POINT(700,175),POINT(650,175),POINT(650,75)]);
POLYLINE([POINT(725,175),POINT(725,75),POINT(775,75),POINT(775,125),POINT(725,125),
POINT(775,125),POINT(775,175)]);
POLYLINE([POINT(800,175),POINT(800,75),POINT(850,175),POINT(850,75)]);
POLYLINE([POINT(875,75),POINT(912,75),POINT(912,175),POINT(875,175),POINT(875,75)]);
POLYLINE([POINT(75,225),POINT(25,225),POINT(25,325),POINT(75,325),POINT(75,275),
POINT(50,275)]);
POLYLINE([POINT(100,325),POINT(100,225),POINT(150,225),POINT(150,275),POINT(100,275),
POINT(150,275),POINT(150,325)]);
POLYLINE([POINT(175,225),POINT(175,325),POINT(225,325)]);
POLYLINE([POINT(350,225),POINT(300,225),POINT(300,275),POINT(325,275),POINT(300,275),
POINT(300,325),POINT(350,325)]);
POLYLINE([POINT(375,225),POINT(425,225),POINT(375,325),POINT(425,325)]);
POLYLINE([POINT(225,225),POINT(250,325),POINT(275,225)]);
end;
end;
end.
PRACTICA N° 10
GRAFICAR CUADRADOS, RECTANGULOS, TRIANGULOS Y CIRCULOS

RAUL ESTEBANO GALVEZ


4 8 6

RAUL= 4 CUADRADOS
ESTEBANO= 8 RECTANGULOS
GALVEZ= 6 TRINGULOS CON IMAGEN
RAUL= 4 CIRCULOS CON IMAGEN REPITO ESTE DATO DEBIDO A QUE NO TENGO DOS NOMBRES

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
WITH CANVAS DO
BEGIN
PEN.COLOR:=CLBLUE;
PEN.Width:=5;
RECTANGLE(25,50,75,100);
RECTANGLE(125,50,175,100);
RECTANGLE(225,50,275,100);
RECTANGLE(325,50,375,100);
RECTANGLE(25,150,100,200);
RECTANGLE(125,150,200,200);
RECTANGLE(225,150,300,200);
RECTANGLE(325,150,400,200);
RECTANGLE(425,150,500,200);
RECTANGLE(525,150,600,200);
RECTANGLE(625,150,700,200);
RECTANGLE(725,150,800,200);
WITH CANVAS DO
BEGIN
PEN.COLOR:=CLred;
PEN.WIDTH:=5;
BRUSH.COLOR:=CLblue;
BRUSH.STYLE:=BSCROSS;
POLYGON([POINT(25,300),POINT(50,250),POINT(75,300)]);
POLYGON([POINT(125,300),POINT(150,250),POINT(175,300)]);
POLYGON([POINT(225,300),POINT(250,250),POINT(275,300)]);
POLYGON([POINT(325,300),POINT(350,250),POINT(375,300)]);
POLYGON([POINT(425,300),POINT(450,250),POINT(475,300)]);
POLYGON([POINT(525,300),POINT(550,250),POINT(575,300)]);
ELLIPSE(25,350,75,400);
ELLIPSE(125,350,175,400);
ELLIPSE(225,350,275,400);
ELLIPSE(325,350,375,400);

end;
end;
end;
end.

You might also like