Dos vigas de 20 y 28 mts de Altura se encuentran a una distancia de (L) de metros entre ellas. Se han de sujetar con una Guaya fijada en un solo punto desde el suelo a los extremos superiores de las vigas. El día de hoy la distancia entre las dos vigas L es de 30 metros. El costo del metro lineal de Guaya es de 2.95$.
La idea es determinar el punto P en donde el costo de comprar las Guayas sea mínimo.
Conociendo la distancia L usted debe elaborar un programa que determine:
- La ubicación del punto P
- El costo de la Guaya para el segmento Z (Costo mínimo)
- El Costo de la Guaya para el segmento Y (Costo mínimo)
Los únicos dos (2) datos que se deben ingresar al programa son:
- Costo del Metro Lineal de Guaya en $.
- Distancia entre las dos Vigas (L) en metros.
Solución
Solución Matemática
/* Programa para determinar el punto P en donde el costo de comprar los
segmentos de guaya se hace mínimo
Elaborado por Carlos Ferrer
Rev. Sep 2025*/
#include <iostream> // Agregue la biblioteca de manejo de consola
#include <math.h> // Agregue la biblioteca de matemática
using namespace std;
main()
{
double v1=0,v2=0; //dimensiones de las vigas en mts
double l=0; //distancia de las dos vigas en mts
double cg=-1; // costo del metro de guaya en $
double a,b,c; // coeficientes de la ecuación de 2do grado
double x1,x2; // resultados de la resolvente
double X; // distancia X según dibujo
do
{
cout <<"Ingrese la longitud de la viga de la izquierda (mts) = ";
cin >>v1;
}
while (v1<=0);
do
{
cout <<"Ingrese la longitud de la viga de la derecha (mts) = ";
cin >>v2;
}
while (v2<=0);
do
{
cout <<"Ingrese la distancia entre las dos vigas (mts) = ";
cin >>l;
}
while (l<=0);
do
{
cout <<"Ingrese el costo del mts de guaya ($) = ";
cin >>cg;
}
while (cg<0);
// determinamos los coeficientes
a=pow(v2,2)-pow(v1,2);
b=2*pow(v1,2)*l;
c=-pow(v1,2)*pow(l,2);
// obtenemos los resultados de la resolvente
x1= (-b+sqrt(pow(b,2)-4*a*c))/(2*a);
x2= (-b+sqrt(pow(b,2)-4*a*c))/(2*a);
//determínanos la solución que se encuentre entre 0 y l
if (x1>=0 and x1<=l)
{
X=x1;
}
else
{
X=x2;
}
//Determinamos la solución si el coeficiente a=0
if (a==0)
{
X=-c/b;
}
//Presentamos los resultados
cout <<endl<<"El punto P se encuentra a "<<X<<" metros de la base de la viga"<<endl;
cout <<"de la izquierda"<<endl<<endl;
cout <<"El segmento de guaya Y costara = "<< sqrt(pow(X,2)+pow(v1,2))*cg<<" $ "<<endl;
cout <<"El segmento de guaya Z costara = "<< sqrt(pow(l-X,2)+pow(v2,2))*cg<<" $ "<<endl<<endl;
system("pause");
}
Programa Nro. 2
por iteración
/* Programa para determinar el punto P en donde el costo de comprar los
segmentos de guaya se hace mínimo
Elaborado por Carlos Ferrer
Rev. Sep 2025*/
#include <iostream> // Agregue la biblioteca de manejo de consola
#include <math.h> // Agregue la biblioteca de matemática
using namespace std;
main()
{
double v1=0,v2=0; //dimensiones de las vigas en mts
double l=0; //distancia de las dos vigas en mts
double cg=-1; // costo del metro de guaya en $
double costo_actual=0,costo_anterior=0; // costos de la iteración
double X=0; // distancia X según dibujo
do
{
cout <<"Ingrese la longitud de la viga de la izquierda (mts) = ";
cin >>v1;
}
while (v1<=0);
do
{
cout <<"Ingrese la longitud de la viga de la derecha (mts) = ";
cin >>v2;
}
while (v2<=0);
do
{
cout <<"Ingrese la distancia entre las dos vigas (mts) = ";
cin >>l;
}
while (l<=0);
do
{
cout <<"Ingrese el costo del mts de guaya ($) = ";
cin >>cg;
}
while (cg<0);
//Determinamos el costo en X=0
costo_anterior=sqrt(pow(X,2)+pow(v1,2))*cg+sqrt(pow(l-X,2)+pow(v2,2))*cg;
//Iteramos el valor de X hasta conseguir el costo mínimo
while (X<=l)
{
X=X+0.001;
costo_actual=sqrt(pow(X,2)+pow(v1,2))*cg+sqrt(pow(l-X,2)+pow(v2,2))*cg;
// Cuando el costo actual sea mayor que el anterior paro la iteración
if (costo_actual>costo_anterior)
{
X=X-0.001;
break;
}
else
{
costo_anterior=costo_actual;
}
}
//Presentamos los resultados
cout <<endl<<"El punto P se encuentra a "<<X<<" metros de la base de la viga"<<endl;
cout <<"de la izquierda"<<endl<<endl;
cout <<"El segmento de guaya Y costara = "<< sqrt(pow(X,2)+pow(v1,2))*cg<<" $ "<<endl;
cout <<"El segmento de guaya Z costara = "<< sqrt(pow(l-X,2)+pow(v2,2))*cg<<" $ "<<endl<<endl;
system("pause");
}
No hay comentarios.:
Publicar un comentario