Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERA
CAMPUS I
TEMA:
5-2 MTODO SIMPLEX PARA SOLUCIN DE PROBLEMAS DE
PROGRAMACIN LINEAL
ELABORADO POR:
GONZLEZ RAMREZ ERIKA DANNET
El mtodo del simplex fue creado en 1947 por el matemtico George Dantzig,
se utiliza, sobre todo, para resolver problemas de programacin lineal en los
que intervienen tres o ms variables.
Se basa en la conversin del problema con restricciones con desigualdades en
un problema cuyas restricciones son ecuaciones lineales. Consiste en buscar el
vrtice en el que la funcin objetivo tiene su valor mximo.
Es un mtodo iterativo que permite ir mejorando la solucin en cada paso. La
razn matemtica de esta mejora radica en que el mtodo consiste en caminar
del vrtice de un poliedro a un vrtice vecino de manera que aumente o
disminuya (segn el contexto de la funcin objetivo, sea maximizar o
minimizar), dado que el nmero de vrtices que presenta un poliedro solucin
es finito siempre se hallar solucin.
El lgebra matricial y el proceso de eliminacin de Gauss-Jordan para resolver
un sistema de ecuaciones lineales constituyen la base del mtodo simplex.
Z= f(x,y)= 3x + 2y
2x + y
2x + 3y
18
42
3x + y
24
x 0,y
Tabla I. Iteracin n 1
Base
Variable de decisin
Variable de holgura
Valores solucin
18
42
24
-3
-2
: (Pivote)
2
2
x
1
=
0
3
2
x
1/3
=
7/3
0
2
x
0
=
0
1
2
x
0
=
1
0
2
x
1/3
=
-2/3
42
2
x
8
=
26
Variable de decisin
Variable de holgura
Valores solucin
1/3
-2/3
7/3
-2/3
26
1/3
1/3
-1
24
Como en los elementos de la ltima fila hay uno negativo, -1, significa que no
hemos llegado todava a la solucin ptima. Hay que repetir el proceso:
A. La variable que entra en la base es y, por ser la variable que
corresponde al coeficiente -1
B. Para calcular la variable que sale, dividimos los trminos de la ltima
columna entre los trminos correspondientes de la nueva columna
pivote:
2:1/3
[=6],
26:7/3
[=78/7]
y
8:1/3
[=8]
y como el menor cociente positivo es 6, tenemos que la variable de
holgura que sale es h.
C. El elemento pivote, que ahora hay que hacer 1, es 1/3.
Operando de forma anloga a la anterior obtenemos la tabla:
Variable de decisin
Variable de holgura
Valores solucin
-2
-7
12
-1
-1
30
Como en los elementos de la ltima fila hay uno negativo, -1, significa que no
hemos llegado todava a la solucin ptima. Hay que repetir el proceso:
A. La variable que entra en la base es d, por ser la variable que
corresponde al coeficiente -1
B. Para calcular la variable que sale, dividimos los trminos de la ltima
columna entre los trminos correspondientes de la nueva columna
pivote:
6/(-2)
[=-3],
12/4
[=3],
y
6:1
[=6]
y como el menor cociente positivo es 3, tenemos que la variable de
holgura que sale es s.
Variable de decisin
Variable de holgura
Valores solucin
-1/2
12
-7/4
-3/4
5/4
33
RadioButtons:
Buttons:
1. Organizar tabla: Los valores introducidos en los espacios designados
para anotar las desigualdades y la funcin objetivo, son ordenados en la
tabla de iteracin para empezar su proceso.
2. Capturar datos: Una vez organizada la tabla y en cada modificacin del
pivote operacional y/o fila pivote, se capturan datos para que al hacer
las iteraciones se tomen los datos correctos.
3. Columna pivote: De acuerdo a la posicin de la variable de decisin que
entra en la base, es la columna que se usa como pivote, por lo que
donde se encuentre es el Button que se utilizar.
8. Reset: Borra todos los valores en los Edit.
9. Salir: Se sale del programa
Programacin
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
double a,b,c,d,e,f,g,h,i,j,k,l,m,n,r,s,t,u,v,w,xx,yy,zz,q;
double hx,hy,hh,hs,hd,hv,sx,sy,sh,ss,sd,sv,dx,dy,dh,ds,dd,dv,zx,zy,zh,zs,zd,zv;
double cph,cps,cpd,cep,clp,chp,cep1,chp1,clp1,vlg1,vlg2,vlg3;
double pivote,hx1,hy1,hh1,hs1,hd1,hv1,sx1,sy1,sh1,ss1,sd1,sv1;
double dx1,dy1,dh1,ds1,dd1,dv1,zx1,zy1,zh1,zs1,zd1,zv1;
TForm1 *Form1;
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
a= Edit1->Text.ToDouble();
b= Edit2->Text.ToDouble();
c= Edit3->Text.ToDouble();
d= Edit4->Text.ToDouble();
e= Edit5->Text.ToDouble();
f= Edit6->Text.ToDouble();
g= Edit7->Text.ToDouble();
h= Edit8->Text.ToDouble();
i= Edit9->Text.ToDouble();
j= Edit10->Text.ToDouble();
k= Edit11->Text.ToDouble();
Edit12->Text=AnsiString(c);
Edit13->Text=AnsiString(d);
q= 1;
Edit14->Text=AnsiString(q);
r= 0;
Edit15->Text=AnsiString(r);
s= 0;
Edit16->Text=AnsiString(s);
Edit17->Text=AnsiString(e);
Edit18->Text=AnsiString(f);
Edit19->Text=AnsiString(g);
t=0;
Edit20->Text=AnsiString(t);
u=1;
Edit21->Text=AnsiString(u);
v=0;
Edit22->Text=AnsiString(v);
Edit23->Text=AnsiString(h);
Edit24->Text=AnsiString(i);
Edit25->Text=AnsiString(j);
w=0;
Edit26->Text=AnsiString(w);
xx=0;
Edit27->Text=AnsiString(xx);
yy=1;
Edit28->Text=AnsiString(yy);
Edit29->Text=AnsiString(k);
a= -1*a;
Edit30->Text=AnsiString(a);
b= -1*b;
Edit31->Text=AnsiString(b);
zz=0;
Edit32->Text=AnsiString(zz);
Edit33->Text=AnsiString(zz);
Edit34->Text=AnsiString(zz);
Edit35->Text=AnsiString(zz);
}
//---------------------------------------------------------------------------
dv=Edit29->Text.ToDouble();
zx=Edit30->Text.ToDouble();
zy=Edit31->Text.ToDouble();
zh=Edit32->Text.ToDouble();
zs=Edit33->Text.ToDouble();
zd=Edit34->Text.ToDouble();
zv=Edit35->Text.ToDouble();
}
//---------------------------------------------------------------------------
if(RadioButton1->Checked==true)
{
hx1 = hx/pivote;
hy1 = hy/pivote;
hh1 = hh/pivote;
hs1 = hs/pivote;
hd1 = hd/pivote;
hv1 = hv/pivote;
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sx*hx1);
sy1 = sy - (sx*hy1);
sh1 = sh - (sx*hh1);
ss1 = ss - (sx*hs1);
sd1 = sd - (sx*hd1);
sv1 = sv - (sx*hv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
dx1 = dx - (dx*hx1);
dy1 = dy - (dx*hy1);
dh1 = dh - (dx*hh1);
ds1 = ds - (dx*hs1);
dd1 = dd - (dx*hd1);
dv1 = dv - (dx*hv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zx*hx1);
zy1 = zy - (zx*hy1);
zh1 = zh - (zx*hh1);
zs1 = zs - (zx*hs1);
zd1 = zd - (zx*hd1);
zv1 = zv - (zx*hv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
if(RadioButton2->Checked==true)
{
sx1 = sx/pivote;
sy1 = sy/pivote;
sh1 = sh/pivote;
ss1 = ss/pivote;
sd1 = sd/pivote;
sv1 = sv/pivote;
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
hx1 = hx - (hx*sx1);
hy1 = hy - (hx*sy1);
hh1 = hh - (hx*sh1);
hs1 = hs - (hx*ss1);
hd1 = hd - (hx*sd1);
hv1 = hv - (hx*sv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
dx1 = dx - (dx*sx1);
dy1 = dy - (dx*sy1);
dh1 = dh - (dx*sh1);
ds1 = ds - (dx*ss1);
dd1 = dd - (dx*sd1);
dv1 = dv - (dx*sv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zx*sx1);
zy1 = zy - (zx*sy1);
zh1 = zh - (zx*sh1);
zs1 = zs - (zx*ss1);
zd1 = zd - (zx*sd1);
zv1 = zv - (zx*sv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
if(RadioButton3->Checked==true)
{
dx1 = dx/pivote;
dy1 = dy/pivote;
dh1 = dh/pivote;
ds1 = ds/pivote;
dd1 = dd/pivote;
dv1 = dv/pivote;
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
hx1 = hx - (hx*dx1);
hy1 = hy - (hx*dy1);
hh1 = hh - (hx*dh1);
hs1 = hs - (hx*ds1);
hd1 = hd - (hx*dd1);
hv1 = hv - (hx*dv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sx*dx1);
sy1 = sy - (sx*dy1);
sh1 = sh - (sx*dh1);
ss1 = ss - (sx*ds1);
sd1 = sd - (sx*dd1);
sv1 = sv - (sx*dv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
zx1 = zx - (zx*dx1);
zy1 = zy - (zx*dy1);
zh1 = zh - (zx*dh1);
zs1 = zs - (zx*ds1);
zd1 = zd - (zx*dd1);
zv1 = zv - (zx*dv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
}
//---------------------------------------------------------------------------
if(RadioButton1->Checked==true)
{
hx1 = hx/pivote;
hy1 = hy/pivote;
hh1 = hh/pivote;
hs1 = hs/pivote;
hd1 = hd/pivote;
hv1 = hv/pivote;
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sy*hx1);
sy1 = sy - (sy*hy1);
sh1 = sh - (sy*hh1);
ss1 = ss - (sy*hs1);
sd1 = sd - (sy*hd1);
sv1 = sv - (sy*hv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
dx1 = dx - (dy*hx1);
dy1 = dy - (dy*hy1);
dh1 = dh - (dy*hh1);
ds1 = ds - (dy*hs1);
dd1 = dd - (dy*hd1);
dv1 = dv - (dy*hv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zy*hx1);
zy1 = zy - (zy*hy1);
zh1 = zh - (zy*hh1);
zs1 = zs - (zy*hs1);
zd1 = zd - (zy*hd1);
zv1 = zv - (zy*hv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
if(RadioButton2->Checked==true)
{
sx1 = sx/pivote;
sy1 = sy/pivote;
sh1 = sh/pivote;
ss1 = ss/pivote;
sd1 = sd/pivote;
sv1 = sv/pivote;
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
hx1 = hx - (hy*sx1);
hy1 = hy - (hy*sy1);
hh1 = hh - (hy*sh1);
hs1 = hs - (hy*ss1);
hd1 = hd - (hy*sd1);
hv1 = hv - (hy*sv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
dx1 = dx - (dy*sx1);
dy1 = dy - (dy*sy1);
dh1 = dh - (dy*sh1);
ds1 = ds - (dy*ss1);
dd1 = dd - (dy*sd1);
dv1 = dv - (dy*sv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zy*sx1);
zy1 = zy - (zy*sy1);
zh1 = zh - (zy*sh1);
zs1 = zs - (zy*ss1);
zd1 = zd - (zy*sd1);
zv1 = zv - (zy*sv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
if(RadioButton3->Checked==true)
{
dx1 = dx/pivote;
dy1 = dy/pivote;
dh1 = dh/pivote;
ds1 = ds/pivote;
dd1 = dd/pivote;
dv1 = dv/pivote;
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
hx1 = hx - (hy*dx1);
hy1 = hy - (hy*dy1);
hh1 = hh - (hy*dh1);
hs1 = hs - (hy*ds1);
hd1 = hd - (hy*dd1);
hv1 = hv - (hy*dv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sy*dx1);
sy1 = sy - (sy*dy1);
sh1 = sh - (sy*dh1);
ss1 = ss - (sy*ds1);
sd1 = sd - (sy*dd1);
sv1 = sv - (sy*dv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
zx1 = zx - (zy*dx1);
zy1 = zy - (zy*dy1);
zh1 = zh - (zy*dh1);
zs1 = zs - (zy*ds1);
zd1 = zd - (zy*dd1);
zv1 = zv - (zy*dv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
}
if(RadioButton1->Checked==true)
{
hx1 = hx/pivote;
hy1 = hy/pivote;
hh1 = hh/pivote;
hs1 = hs/pivote;
hd1 = hd/pivote;
hv1 = hv/pivote;
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sh*hx1);
sy1 = sy - (sh*hy1);
sh1 = sh - (sh*hh1);
ss1 = ss - (sh*hs1);
sd1 = sd - (sh*hd1);
sv1 = sv - (sh*hv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
dx1 = dx - (dh*hx1);
dy1 = dy - (d*hy1);
dh1 = dh - (dh*hh1);
ds1 = ds - (dh*hs1);
dd1 = dd - (dh*hd1);
dv1 = dv - (dh*hv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zh*hx1);
zy1 = zy - (zh*hy1);
zh1 = zh - (zh*hh1);
zs1 = zs - (zh*hs1);
zd1 = zd - (zh*hd1);
zv1 = zv - (zh*hv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
if(RadioButton2->Checked==true)
{
sx1 = sx/pivote;
sy1 = sy/pivote;
sh1 = sh/pivote;
ss1 = ss/pivote;
sd1 = sd/pivote;
sv1 = sv/pivote;
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
hx1 = hx - (hh*sx1);
hy1 = hy - (hh*sy1);
hh1 = hh - (hh*sh1);
hs1 = hs - (hh*ss1);
hd1 = hd - (hh*sd1);
hv1 = hv - (hh*sv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
dx1 = dx - (dh*sx1);
dy1 = dy - (dh*sy1);
dh1 = dh - (dh*sh1);
ds1 = ds - (dh*ss1);
dd1 = dd - (dh*sd1);
dv1 = dv - (dh*sv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zh*sx1);
zy1 = zy - (zh*sy1);
zh1 = zh - (zh*sh1);
zs1 = zs - (zh*ss1);
zd1 = zd - (zh*sd1);
zv1 = zv - (zh*sv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
if(RadioButton3->Checked==true)
{
dx1 = dx/pivote;
dy1 = dy/pivote;
dh1 = dh/pivote;
ds1 = ds/pivote;
dd1 = dd/pivote;
dv1 = dv/pivote;
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
hx1 = hx - (hh*dx1);
hy1 = hy - (hh*dy1);
hh1 = hh - (hh*dh1);
hs1 = hs - (hh*ds1);
hd1 = hd - (hh*dd1);
hv1 = hv - (hh*dv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sh*dx1);
sy1 = sy - (sh*dy1);
sh1 = sh - (sh*dh1);
ss1 = ss - (sh*ds1);
sd1 = sd - (sh*dd1);
sv1 = sv - (sh*dv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
zx1 = zx - (zh*dx1);
zy1 = zy - (zh*dy1);
zh1 = zh - (zh*dh1);
zs1 = zs - (zh*ds1);
zd1 = zd - (zh*dd1);
zv1 = zv - (zh*dv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button6Click(TObject *Sender)
{
pivote=Edit36->Text.ToDouble();
if(RadioButton1->Checked==true)
{
hx1 = hx/pivote;
hy1 = hy/pivote;
hh1 = hh/pivote;
hs1 = hs/pivote;
hd1 = hd/pivote;
hv1 = hv/pivote;
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (ss*hx1);
sy1 = sy - (ss*hy1);
sh1 = sh - (ss*hh1);
ss1 = ss - (ss*hs1);
sd1 = sd - (ss*hd1);
sv1 = sv - (ss*hv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
dx1 = dx - (ds*hx1);
dy1 = dy - (ds*hy1);
dh1 = dh - (ds*hh1);
ds1 = ds - (ds*hs1);
dd1 = dd - (ds*hd1);
dv1 = dv - (ds*hv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zs*hx1);
zy1 = zy - (zs*hy1);
zh1 = zh - (zs*hh1);
zs1 = zs - (zs*hs1);
zd1 = zd - (zs*hd1);
zv1 = zv - (zs*hv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
if(RadioButton2->Checked==true)
{
sx1 = sx/pivote;
sy1 = sy/pivote;
sh1 = sh/pivote;
ss1 = ss/pivote;
sd1 = sd/pivote;
sv1 = sv/pivote;
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
hx1 = hx - (hs*sx1);
hy1 = hy - (hs*sy1);
hh1 = hh - (hs*sh1);
hs1 = hs - (hs*ss1);
hd1 = hd - (hs*sd1);
hv1 = hv - (hs*sv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
dx1 = dx - (ds*sx1);
dy1 = dy - (ds*sy1);
dh1 = dh - (ds*sh1);
ds1 = ds - (ds*ss1);
dd1 = dd - (ds*sd1);
dv1 = dv - (ds*sv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zs*sx1);
zy1 = zy - (zs*sy1);
zh1 = zh - (zs*sh1);
zs1 = zs - (zs*ss1);
zd1 = zd - (zs*sd1);
zv1 = zv - (zs*sv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
if(RadioButton3->Checked==true)
{
dx1 = dx/pivote;
dy1 = dy/pivote;
dh1 = dh/pivote;
ds1 = ds/pivote;
dd1 = dd/pivote;
dv1 = dv/pivote;
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
hx1 = hx - (hs*dx1);
hy1 = hy - (hs*dy1);
hh1 = hh - (hs*dh1);
hs1 = hs - (hs*ds1);
hd1 = hd - (hs*dd1);
hv1 = hv - (hs*dv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (ss*dx1);
sy1 = sy - (ss*dy1);
sh1 = sh - (ss*dh1);
ss1 = ss - (ss*ds1);
sd1 = sd - (ss*dd1);
sv1 = sv - (ss*dv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
zx1 = zx - (zs*dx1);
zy1 = zy - (zs*dy1);
zh1 = zh - (zs*dh1);
zs1 = zs - (zs*ds1);
zd1 = zd - (zs*dd1);
zv1 = zv - (zs*dv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button7Click(TObject *Sender)
{
pivote=Edit36->Text.ToDouble();
if(RadioButton1->Checked==true)
{
hx1 = hx/pivote;
hy1 = hy/pivote;
hh1 = hh/pivote;
hs1 = hs/pivote;
hd1 = hd/pivote;
hv1 = hv/pivote;
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sd*hx1);
sy1 = sy - (sd*hy1);
sh1 = sh - (sd*hh1);
ss1 = ss - (sd*hs1);
sd1 = sd - (sd*hd1);
sv1 = sv - (sd*hv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
dx1 = dx - (dd*hx1);
dy1 = dy - (dd*hy1);
dh1 = dh - (dd*hh1);
ds1 = ds - (dd*hs1);
dd1 = dd - (dd*hd1);
dv1 = dv - (dd*hv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zd*hx1);
zy1 = zy - (zd*hy1);
zh1 = zh - (zd*hh1);
zs1 = zs - (zd*hs1);
zd1 = zd - (zd*hd1);
zv1 = zv - (zd*hv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
if(RadioButton2->Checked==true)
{
sx1 = sx/pivote;
sy1 = sy/pivote;
sh1 = sh/pivote;
ss1 = ss/pivote;
sd1 = sd/pivote;
sv1 = sv/pivote;
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
hx1 = hx - (hd*sx1);
hy1 = hy - (hd*sy1);
hh1 = hh - (hd*sh1);
hs1 = hs - (hd*ss1);
hd1 = hd - (hd*sd1);
hv1 = hv - (hd*sv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
dx1 = dx - (dd*sx1);
dy1 = dy - (dd*sy1);
dh1 = dh - (dd*sh1);
ds1 = ds - (dd*ss1);
dd1 = dd - (dd*sd1);
dv1 = dv - (dd*sv1);
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
zx1 = zx - (zd*sx1);
zy1 = zy - (zd*sy1);
zh1 = zh - (zd*sh1);
zs1 = zs - (zd*ss1);
zd1 = zd - (zd*sd1);
zv1 = zv - (zd*sv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
if(RadioButton3->Checked==true)
{
dx1 = dx/pivote;
dy1 = dy/pivote;
dh1 = dh/pivote;
ds1 = ds/pivote;
dd1 = dd/pivote;
dv1 = dv/pivote;
Edit24->Text=AnsiString(dx1);
Edit25->Text=AnsiString(dy1);
Edit26->Text=AnsiString(dh1);
Edit27->Text=AnsiString(ds1);
Edit28->Text=AnsiString(dd1);
Edit29->Text=AnsiString(dv1);
hx1 = hx - (hd*dx1);
hy1 = hy - (hd*dy1);
hh1 = hh - (hd*dh1);
hs1 = hs - (hd*ds1);
hd1 = hd - (hd*dd1);
hv1 = hv - (hd*dv1);
Edit12->Text=AnsiString(hx1);
Edit13->Text=AnsiString(hy1);
Edit14->Text=AnsiString(hh1);
Edit15->Text=AnsiString(hs1);
Edit16->Text=AnsiString(hd1);
Edit17->Text=AnsiString(hv1);
sx1 = sx - (sd*dx1);
sy1 = sy - (sd*dy1);
sh1 = sh - (sd*dh1);
ss1 = ss - (sd*ds1);
sd1 = sd - (sd*dd1);
sv1 = sv - (sd*dv1);
Edit18->Text=AnsiString(sx1);
Edit19->Text=AnsiString(sy1);
Edit20->Text=AnsiString(sh1);
Edit21->Text=AnsiString(ss1);
Edit22->Text=AnsiString(sd1);
Edit23->Text=AnsiString(sv1);
zx1 = zx - (zd*dx1);
zy1 = zy - (zd*dy1);
zh1 = zh - (zd*dh1);
zs1 = zs - (zd*ds1);
zd1 = zd - (zd*dd1);
zv1 = zv - (zd*dv1);
Edit30->Text=AnsiString(zx1);
Edit31->Text=AnsiString(zy1);
Edit32->Text=AnsiString(zh1);
Edit33->Text=AnsiString(zs1);
Edit34->Text=AnsiString(zd1);
Edit35->Text=AnsiString(zv1);
}
}
//---------------------------------------------------------------------------
Edit3->Text="";
Edit4->Text="";
Edit5->Text="";
Edit6->Text="";
Edit7->Text="";
Edit8->Text="";
Edit9->Text="";
Edit10->Text="";
Edit11->Text="";
Edit12->Text="";
Edit13->Text="";
Edit14->Text="";
Edit15->Text="";
Edit16->Text="";
Edit17->Text="";
Edit18->Text="";
Edit19->Text="";
Edit20->Text="";
Edit21->Text="";
Edit22->Text="";
Edit23->Text="";
Edit24->Text="";
Edit25->Text="";
Edit26->Text="";
Edit27->Text="";
Edit28->Text="";
Edit29->Text="";
Edit30->Text="";
Edit31->Text="";
Edit32->Text="";
Edit33->Text="";
Edit34->Text="";
Edit35->Text="";
Edit36->Text="";
}
//---------------------------------------------------------------------------