lunes, 31 de marzo de 2025

01.- Programación II - Programa para hallar el recipiente de volumen específico con MÍNIMO material Nro 1 (2024 - I)

Usted trabaja para una empresa que construye tanques.

Una importante distribuidora de Propano construirá una nueva planta en la zona de Maracay y le indicó que requerirá en principio tanques de: 5, 8 ,10 y 12 metros cúbicos (Primera Fase). Al cliente no le importa la forma del tanque.

El proyecto en su segunda fase requerirá tanques de capacidades distintas a los de lo de la primera fase (Por definir).

Usted desea suministrar los tanques, pero usando la menor superficie de material posible para ahorrar costos.

El maestro constructor del taller para la cual usted trabaja considera que la mejor opción es construir tanques cilíndricos de la forma similar a la figura siguiente (tipo salchicha):


El dueño de la empresa para la cual usted trabaja no esta seguro de que un tanque en forma de salchicha sea la opción que le permita gastar menos material. En consecuencia, dado que usted es ingeniero, él lo seleccionó para que elabore un programa que determine el radio y el largo del tanque a construir de manera de parametrizar la máquina moldeadora y así obtener los tanques con la menor superficie posible.

Determine:

a.- La solución matemática del problema,
b.- Elabore el programa correcto asociado
c.- Indique según los resultados cual es la forma final del tanque.

Resultado para un volumen de 5 mts cúbicos


La solución se publicara mañana a la 1 pm.

01.- Programación II - Parcial Nro1 - Cálculo de dimensiones del material para construir un drenaje de Máximo volumen de aguas residuales

Usted trabaja para la empresa constructora Paola González C.A. que recibió un contrato para la elaboración de un canal de recolección de aguas residuales al borde de la autopista regional del centro. (Ver gráfica).




Para soportar el vaciado del concreto se deben colocar cabillas en forma de trapecio, en consecuencia, se debe doblar la cabilla de manera de darle la forma requerida:


Se requiere doblar las cabillas en tres partes iguales como indica la figura:




El ministerio del ambiente establece que un drenaje de 100 metros de largo debe ser capaz de manejar como mínimo: 

 130 mts3 de aguas residuales

El dueño de la constructora quiere comprar cabillas cortadas con la longitud exacta para soportar este volumen de aguas residuales.

 Considere que el volumen del drenaje es:



1.- El único dato de entrada es la capacidad de volumen a manejar por cada 100 mts de longitud en un rango desde 130 a 200 mts3. Elabore un programa que determine: (15 Puntos)

  • El Angulo θ con el cual se obtiene la máxima área del trapecio que caracteriza a estos canales. 
  • A partir del Angulo θ establezca la longitud exacta de cada cabilla (X mts) de forma que el canal de drenaje esté en capacidad de manejar el volumen ingresado (de 130 a 200 mts3) de aguas residuales por cada 100 metros de longitud. 

2.- Es posible elaborar el programa sin el análisis matemático? ¿En caso de que su respuesta sea positiva explique cómo lo haría? (5 Puntos)

Dato: Para un volumen de 150 mts3 programa correcto debería reportar una cabilla de 3.22371 mts y el ángulo θ corresponde a 1.04719 Rad o 60 deg.

La solución se publicara mañana a la 1pm.



jueves, 27 de marzo de 2025

03.- Programación II - Prueba 27 de marzo 2025 + Solución del Profesor

Un empresario requiere elaborar unas cajas para envió de mercancía a partir de laminas de madera que miden entre 20 y 30 Mts2 de superficie. La única condición que solicita el empresario es que se aproveche completamente todo el material y la caja a construir deberá tener al menos  una cara cuadrada. (Ver figura)

1) Elabore un programa que indique las dimensiones de la caja para obtener el máximo volumen con las laminas de material disponible. Las laminas son de distintos tamaños y varían entre 20 y 30 Mts2.

2) Analizando los resultados del programa, cual es la forma final de la caja para superficies de: 

  •  20 Mts2 
  •  25 Mts2 
  •  30 Mts2 


Solución Matemática


PROGRAMA


/* Programa para determinar la caja de maximo 
volumen a partir de una cantidad especifica de material 
en el rango de 20 a 30 mts2
Elaborado por Carlos Ferrer
rev 27 mar 2025
*/

#include <iostream>
#include <math.h>
using namespace std;
main()
{
//Dimensiones de la caja
double x,y;
//volumen
double vol;
//Cantidad de materia prima
double mat;
do
{
cout <<"Ingrese cantidad de material en mts2 (20-30)= ";
cin >>mat;
if (mat<20 or mat>30)
{
cout <<"Cantidad de material fuera de rango (20 a 30 mts2)"<<endl;
system ("pause");
system ("cls");
}
}
while (mat<20 or mat>30);

//Calculamos X, Y y el Volumen

x=sqrt(mat/6);
y=x;
vol=pow(x,3);

//imprimimos los resultados

cout <<endl<<endl;
cout <<"Para una cantidad de material de "<<mat<<" mts2, "<<endl;
cout <<"las medidas de X y Y donde se obtiene el maximo"<<endl;
cout <<"volumen corresponden ambas a: "<<x<<" mts"<<endl;
cout <<"lo cual arroja un volumen maximo de:"<<vol<<" mts3."<<endl<<endl;
cout <<"La forma de la caja es un CUBO!!!"<<endl<<endl;
system("pause");
 

}


jueves, 20 de marzo de 2025

01.- Programación II - Parcial Nro. 1 - Actividad 20 de Marzo de 2025 - Solución del Profesor

  





Programa Nro. 1 (Pitágoras) en C++

/* programa para determinar la longitud máxima de la cabilla para poder pasar
entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1 
Semestre 2023-II - Basado en Teorema de Pitágoras.

Elaborado por el profesor Carlos Ferrer - Oct 2024
Rev. 0
*/

// Bibliotecas requeridas


#include<iostream>
#include<math.h>
#include<locale.h>

using namespace std;

main()


{

 double a,b; // Lados desconocidos de los dos triángulos de la solución
 double Q; // Angulo de los triángulos
 double L; //Longitud de la cabilla
 double L1,L2; //Segmentos de la cabilla
 double P1=0,P2=0; //Ancho de los pasillos 1 y 2 
  
setlocale(LC_ALL,"spanish"); 


while (P1<6 or P1>12)
     {
     cout<<"Ingrese ancho del pasillo Nro. 1 (mts) = ";
     cin>>P1;
     }

while (P2<6 or P2>12)
     {
     cout<<"Ingrese ancho del pasillo Nro. 2 (mts) = ";
     cin>>P2;
     }


 // Determinamos la distancia a del triangulo

a= cbrt (P1*pow(P2,2));

 // Determinamos L2

L2=sqrt(pow(P2,2)+pow(a,2));

//Determinamos L1

L1=P1*L2/a;

// Determinamos theta

Q=asin(a/L2);


// PRESENTAMOS LOS RESULTADOS

 cout<<endl<<"La longitud máxima de la cabilla en (mts) = "<<L1+L2<<endl;
 cout<<endl<<"El angulo Theta en radianes = "<<Q<<endl;
 cout<<"El angulo Theta en grados (Degree) = "<<Q*180/M_PI<<endl<<endl;

 cout<<"CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE"<<endl; 
 cout<<"PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!"<<endl<<endl;

 system("pause");

}


Programa Nro. 1 (Pitágoras) en Python

# programa para determinar la longitud máxima de la cabilla para poder pasar
# entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1
# Semestre 2023-II - Basado en Teorema de Pitágoras.

#Elaborado por el profesor Carlos Ferrer - Oct 2024
#Rev. 0

# Bibliotecas requeridas

import math

# Lados desconocidos de los dos triángulos de la solución
a, b = 0, 0
# Angulo de los triángulos
Q = 0
# Longitud de la cabilla
L = 0
# Segmentos de la cabilla
L1, L2 = 0, 0
# Ancho de los pasillos 1 y 2
P1, P2 = 0, 0

while P1 < 6 or P1 > 12:
    P1 = float(input("Ingrese ancho del pasillo Nro. 1 (mts) = "))

while P2 < 6 or P2 > 12:
    P2 = float(input("Ingrese ancho del pasillo Nro. 2 (mts) = "))

# Determinamos la distancia a del triangulo
a = (P1 * P2 ** 2) ** (1/3)
# Determinamos L2
L2 = math.sqrt(P2 ** 2 + a ** 2)
# Determinamos L1
L1 = P1 * L2 / a
# Determinamos Theta
Q = math.asin(a / L2)

# PRESENTAMOS LOS RESULTADOS
print(f"\nLa longitud máxima de la cabilla en (mts) = {L1 + L2}")
print(f"\nEl angulo Theta en radianes = {Q}")
print(f"El angulo Theta en grados (Degree) = {Q * 180 / math.pi}\n\n")

print("CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE")
print("PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!\n\n")

input("Presione enter para continuar...")



Programa Nro. 2 (Trigonometría)

/* programa para determinar la longitud máxima de la cabilla para poder pasar
entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1 
Semestre 2023-II - Basado en Teorema de trigonometría.

Elaborado por el profesor Carlos Ferrer - Oct 2024
Rev. 0
*/

// Bibliotecas requeridas

#include<iostream>
#include<math.h>
#include<locale.h>
using namespace std;

main()


{

 double Q; // Angulo de los triángulos
 double L; //Longitud de la cabilla
 double P1=0,P2=0; //Ancho de los pasillos 1 y 2 
  
 setlocale(LC_ALL,"spanish"); 


while (P1<=6 or P1>12)
  {
  cout<<"Ingrese ancho del pasillo Nro. 1 (mts) = ";
  cin>>P1;
  }

while (P2<=6 or P2>12)
  {
  cout<<"Ingrese ancho del pasillo Nro. 2 (mts) = ";
  cin>>P2;
  }

// Determinamos theta

Q=atan(cbrt(P1/P2));


 // Determinamos L

L=P1/sin(Q)+P2/cos(Q);


// PRESENTAMOS LOS RESULTADOS

 cout<<endl<<"La longitud máxima de la cabilla en (mts) = "<<L<<endl;
 cout<<endl<<"El angulo Theta en radianes = "<<Q<<endl;
 cout<<"El angulo Theta en grados (Degree) = "<<Q*180/M_PI<<endl<<endl;

 cout<<"CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE"<<endl; 
 cout<<"PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!"<<endl<<endl;

 system("pause");

}

Programa Nro. 2 (Trigonometría) en Python

# Programa para determinar la longitud máxima de la cabilla para poder pasar
# entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1
# Semestre 2023-II - Basado en Teorema de trigonometría.

# Elaborado por el profesor Carlos Ferrer - Oct 2024
# Rev. 0


# Bibliotecas requeridas

import math

# Angulo de los triángulos
Q = 0
#Longitud de la cabilla
L = 0
#Ancho de los pasillos 1 y 2
P1 = 0
P2 = 0

while P1 <= 6 or P1 > 12:
    P1 = float(input("Ingrese ancho del pasillo Nro. 1 (mts) = "))

while P2 <= 6 or P2 > 12:
    P2 = float(input("Ingrese ancho del pasillo Nro. 2 (mts) = "))

# Determinamos theta
Q = math.atan(P1**(1/3) / P2**(1/3))
# Determinamos L
L = P1/math.sin(Q) + P2/math.cos(Q)


# Presentamos resultados
print(f"\nLa longitud máxima de la cabilla en (mts) = {L}")
print(f"\nEl angulo Theta en radianes = {Q}")
print(f"El angulo Theta en grados (Degree) = {Q*180/math.pi}\n\n")

print("CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE")
print("PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!\n\n")

input("Presione Enter para continuar..")


Programa Nro. 3 (Iteración del ángulo θ)

/* programa para determinar la longitud máxima de la cabilla para poder pasar
entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1 
Semestre 2023-II - Basado en Iteración del angulo

Elaborado por el profesor Carlos Ferrer - Oct 2024
Rev. 0
*/

// Bibliotecas requeridas

#include<iostream>
#include<math.h>
#include<locale.h>
using namespace std;

main()


{

 double Q; // Angulo de los triángulos
 double L,L_Anterior; //Longitud de la cabilla y Longitud de la iteración anterior
 double P1=0; //ancho pasillo 1
 double P2=0; //ancho pasillo 2
   
 setlocale(LC_ALL,"spanish"); 


while (P1<=6 or P1>12)
  {
  cout<<"Ingrese ancho del pasillo Nro. 1 (mts) = ";
  cin>>P1;
  }

while (P2<=6 or P2>12)
  {
  cout<<"Ingrese ancho del pasillo Nro. 2 (mts) = ";
  cin>>P2;
  }

// Determinamos theta y L

Q=0.000001;
L_Anterior=P1/sin(Q)+P2/cos(Q);
while(Q<90)
{
Q=Q+0.000001;
L=P1/sin(Q)+P2/cos(Q);
if (L_Anterior<L)
{
L=L_Anterior;
break;
}
else
{
L_Anterior=L;
}
}

// PRESENTAMOS LOS RESULTADOS

 cout<<endl<<"La longitud máxima de la cabilla en (mts) = "<<L<<endl;
 cout<<endl<<"El angulo Theta en radianes = "<<Q<<endl;
 cout<<"El angulo Theta en grados (Degree) = "<<Q*180/M_PI<<endl<<endl;

 cout<<"CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE"<<endl; 
 cout<<"PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!"<<endl<<endl;

 system("pause");

}




Programa Nro. 3 (Iteración del ángulo θ) en Python

# programa para determinar la longitud máxima de la cabilla para poder pasar
# entre dos pasillos de diferente ancho en "L" - Modelo 2 Parcial Nro. 1
# Semestre 2023-II - Basado en Iteración del angulo
# Elaborado por el profesor Carlos Ferrer - Oct 2024
# Rev. 0

# Biblioteca requerida
import math

# Angulo de los triángulos
Q = 0.000001
# Longitud de la cabilla y Longitud de la iteración anterior
L_Anterior = 0
# ancho pasillo 1
P1 = 0
# ancho pasillo 2
P2 = 0

while P1 <= 6 or P1 > 12:
    P1 = float(input("Ingrese ancho del pasillo Nro. 1 (mts) = "))

while P2 <= 6 or P2 > 12:
    P2 = float(input("Ingrese ancho del pasillo Nro. 2 (mts) = "))

# Determinamos L para Q=0.000001
L_Anterior = P1 / math.sin(Q) + P2 / math.cos(Q)

# Determinamos theta y L  definitivas iterando
while Q < 90:
    Q =Q+0.000001
    L = P1 / math.sin(Q) + P2 / math.cos(Q)
    if L_Anterior < L:
        L = L_Anterior
        break
    else:
        L_Anterior = L

# PRESENTAMOS LOS RESULTADOS

print(f"\nLa longitud máxima de la cabilla en (mts) = {L}")
print(f"\nEl angulo Theta en radianes = {Q}")
print(f"El angulo Theta en grados (Degree) = {Q * 180 / math.pi}\n\n")

print("CON ESTAS CANTIDADES SE OBTIENE LA CABILLA DE MAXIMA LONGITUD QUE PUEDE")
print("PASAR POR LOS PASILLOS SIN AFECTAR LAS PAREDES!!!\n\n")

input("Presione Enter para continuar...")



EXITOS!!

01.- Programación II - Actividad 20 de Marzo de 2025

   



martes, 18 de marzo de 2025

01.- Programación II - Actividad a presentar en Laboratorio 18 de Marzo de 2025

La empresa Bauxilum estará donando láminas de aluminio rectangulares que miden 3mts en uno de sus lados y de 1.5 mts a 4 mts en el otro lado:


Se desea doblar el lado variable en 5 partes iguales de forma de construir la estructura que se muestra a continuación:


Elabore un programa que determine el ángulo θ en grados, el area del pentagono y el volumen máximo del Prima, enfocado siempre a obtener la estructura de máximo volumen disponible.

Alguna respuesta esperada

La actividad puede ser ejecutada en grupos de maximo tres (3) personas.

jueves, 13 de marzo de 2025

01.- Programación II - Programa de Manejo de Costos - Calculo de Cables de Fibra Óptica + SOLUCION DEL PROFESOR (2025 - II)


Escenario Nro 1



Escenario Nro 2


Escenario Nro 3



Solución 



Se desecha la respuesta de 30.5 km porque no esta en el rango de 1 a 20 km.

En consecuencia para los costos de:

3000$ en Cable Terrestre
5000$ en Cable Marino

debemos comprar 9.5 km de Cable Terrestre y 17.5 km cable marino.

Para el cálculo de X en nuestro programa debemos usar la formula de X1 dado que nos presentaría valores entre 0 y 20Km.

NOTA1: RECUERDE, SI EL CABLE MARITIMO CUESTA LO MISMO O ES MAS BARATO QUE EL CABLE TERRESTRE LA OPCIÓN MAS ECONOMICA ES LANZAR UN CABLE MARITIMO DIRECTAMENTE ENTRE A Y B 

Programa Nro1 en C++

// Programa Nro1  para la estimación del cable de Fibra óptica (Terrestre y Marítimo)
// La idea es determinar el punto intermedio entre A y C en donde finaliza
// el tendido del cable terrestre y comienza el tendido del cable marítimo

// Elaborado por CARLOS FERRER 

// Rev Septiembre 2024

// Librerías requeridas


#include<iostream>

#include<math.h>

using namespace std;

main()


{

 double CM=-1,CT=-1,W=0; //CM=Costo Cable Marítimo CT=Costo Cable terrestre W=CM*CM/(CT*CT)
 double a,b,c; // elemento de la ecuación de 2do grado
 double X; //Cantidad de Metros de Cable Terrestre
 double BD;//Cantidad de Cable Marítimo
 double Costo; //Costo minino del tendido del cableado
 double distancia_directa; //distancia directa entre a y b


 // Ingresamos los costos de los cables terrestres y marítimos

while (CM<0)
 {
 cout<<"Ingrese el costo en ($) del tendido de (KM) de Cable maritimo = ";
 cin>>CM;
 }

while (CT<0)
 {
 cout<<"Ingrese el costo en ($) del tendido de (KM) de Cable Terrestre = ";
 cin>>CT;
 }


 // Evaluamos el escenario en el cual no conviene hacer ningún calculo
 if (CM<=CT)
 {
 distancia_directa= sqrt(pow(14,2)+pow(20,2));
 cout <<endl<<"Cuando el costo del cable Maritimo ("<<CM<<"$) es menor "<<endl;
 cout <<"o igual al costo del cable Terrestre ("<<CT<<"$)"<<endl;
 cout <<"La mejor opcion es solo usar UNICAMENTE cable Maritimo desde A a B"<<endl<<endl;
 cout <<"En este caso solo se requiere 24.4131112314674 km de Cable Maritimo"<<endl;
  cout <<"y 0 km de Cable Terrestre"<<endl<<endl;
 cout <<"El costo optimo en este caso seria = "<< CM*distancia_directa<<" $"<<endl;
 cout <<"CON ESTAS CANTIDADES SE OBTIENE EL MINIMO COSTO POSIBLE!!!"<<endl<<endl;
goto fin; 
 }



 // Se determina la distancia X en donde el costo del cableado se hace mínimo

W=pow(CT,2)/pow(CM,2);
a=1-W;
b=40*(W-1);
c=400-596*W;

X=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);


// Determinamos la cantidad de cable maritimo
BD=sqrt(596-40*X+pow(X,2));

//Determinamos el costo del tendido del cable

Costo=X*CT+BD*CM;


// presentamos los resultados
 cout<<endl<<"La cantidad de cable Marítimo requerido es (KM) ="<<BD<<endl;
 cout<<"La cantidad de cable Terrestre requerido es (KM) ="<<X<<endl;
 cout<<"El Costo del tendido es ="<<Costo<<" $"<<endl;
 cout<<"CON ESTAS CANTIDADES SE OBTIENE EL MINIMO COSTO POSIBLE!!!"<<endl;

fin:
  system("pause");

}


Programa Nro1 en Python


# Programa Nro1  para la estimación del cable de Fibra óptica (Terrestre y Marítimo)
# La idea es determinar el punto intermedio entre A y C en donde finaliza
# el tendido del cable terrestre y comienza el tendido del cable marítimo

# Elaborado por CARLOS FERRER

# Rev Septiembre 2024

# Biblioteca requerida
import math
import os

os.system("cls")

# Costo Cable Maritimo
CM = -1
# Costo Cable Terrestre
CT = -1
# W=CM^2/CT^2
W = 0

 # Ingresamos los costos de los cables terrestres y marítimos

while CM < 0:
    CM = float(input("Ingrese el costo del cable maritimo ($/km) = "))

while CT < 0:
    CT = float(input("Ingrese el costo del cable Terrestre ($/km) = "))
 
 # Evaluamos el escenario en el cual no conviene hacer ningún calculo
if CM <= CT:
    distance_direct = math.sqrt(14**2 + 20**2)
# Presentamos resultados de este escenario  
    print(f"\nCuando el costo del camble maritimo (${CM}) es menor o igual que el costo del cable terestre (${CT})")
    print("La mejor opción es usar solamente cable maritimo de A a B")
    print(f"En este caso, solamente 24.4131112314674 km de cable maritimo es requerido")
    print("and 0 km of Terrestrial cable")
    print(f"El costo optimo en este caso correspondería = {CM*distance_direct} $")
    print("CON ESTAS CANTIDADES, OBTENDRIAMOS EL MÍNIMO COSTO!!!")
else:
    W = (CT/CM)**2
    a = 1 - W
    b = 40 * (W - 1)
    c = 400 - 596 * W
    X = (-b - math.sqrt(b**2 - 4*a*c)) / (2*a)
    BD = math.sqrt(596 - 40*X + X**2)
    cost = X*CT + BD*CM
 
 # Presentamos resultados de este escenario
    print(f"\nLa cantidad de cable maritimo requerido es (KM) = {BD}")
    print(f"La cantidad de cable maritimo requerido es (KM) = {X}")
    print(f"El costo correspondería = {cost} $")
    print("CON ESTAS CANTIDADES, OBTENDRIAMOS EL MÍNIMO COSTO!!!")



NOTA2: Existe otra forma de resolver este problema usando mínima matemática. 


Basta con barrer tota la longitud de la distancia terrestre (0-20km), en pocas palabras ir moviendo X por ejemplo de 0.01 en 0.01, calculando de forma simultanea todas las distancias de X a B, para que con esos datos se evaluaran todos los costos posibles y así determinar la opción más económica. Para esto la única ecuación que hacia falta era la distancia de X a B en función de X y eso ya lo sabíamos por el teorema de Pitágoras (distancia de X a B = [(20-x) 2 + 142] )


Programa Nro2 en C++

// Programa Nro2 para la estimación del cable de Fibra óptica (Terrestre y Marítimo)
// La idea es determinar el punto intermedio entre A y C en donde finaliza
// el tendido del cable terrestre y comienza el tendido del cable marítimo

// Elaborado por CARLOS FERRER - Septiembre 2024

// Librerías requeridas


#include<iostream>

#include<math.h>

using namespace std;

main()


{

 double CM=-1,CT=-1; //CM=Costo Cable Marítimo CT=Costo Cable terrestre W=CM*CM/(CT*CT)
 double X,X_aux; //Cantidad de Metros de Cable Terrestre
 double BD, BD_aux;//Cantidad de Cable Marítimo
 double Costo,Costo_aux; //Costo minino del tendido del cableado
 

 // Ingresamos los costos de los cables terrestres y marítimos


while (CM<0)
 {
 cout<<"Ingrese el costo en ($) del tendido de (KM) de Cable maritimo = ";
 cin>>CM;
 }

while (CT<0)
 {
 cout<<"Ingrese el costo en ($) del tendido de (KM) de Cable Terrestre = ";
 cin>>CT;
 }


 // Determinamos el costo de irnos directo de A a B
  
 X=0;
 BD=sqrt(pow(20,2)+pow(14,2));
 Costo=CT*X+CM*BD;

/* Revisamos todas las posibilidades de la distancia terreste de forma de 
determinar si hay un costo menor*/
 X_aux=0.01;
 while  (X_aux<20)
  {
  BD_aux=sqrt(pow(20-X_aux,2)+pow(14,2));
  Costo_aux=CT*X_aux+CM*BD_aux;
  if(Costo_aux<Costo)
  {
  Costo=Costo_aux;
  X=X_aux;
  BD=BD_aux;
}
X_aux=X_aux+0.01;  
  }
 
 // Determinamos el costo de irnos directo de A a C y luego a B

Costo_aux=CT*20+CM*14;
if(Costo_aux<Costo)
  {
  Costo=Costo_aux;
  X=20;
  BD=14;
 
// Presentamos los resultados
 cout<<endl<<"La cantidad de cable Marítimo requerido es (KM) ="<<BD<<endl;
 cout<<"La cantidad de cable Terrestre requerido es (KM) = "<<X<<endl;
 cout<<"El Costo del tendido es = "<<Costo<<" $"<<endl;
 cout<<"CON ESTAS CANTIDADES SE OBTIENE EL MINIMO COSTO POSIBLE!!!"<<endl;


  system("pause");

}


Programa Nro2 en Python


#Programa Nro2 para la estimación del cable de Fibra óptica (Terrestre y Marítimo)
# La idea es determinar el punto intermedio entre A y C en donde finaliza
# el tendido del cable terrestre y comienza el tendido del cable marítimo

# Elaborado por CARLOS FERRER - Septiembre 2024

# Librerías requeridas

import math
import os

os.system("cls")

CM = -1  # Costo del cable marítimo
CT = -1 # Costo del cable terrestre
X = 0 # Distancia X que vamos a ir verificando
X_aux = 0.01

 # Ingresamos los costos de los cables terrestres y marítimos
while CM < 0:
    CM = float(input("Ingrese el costo en ($) del tendido de (KM) de Cable maritimo = "))

while CT < 0:
    CT = float(input("Ingrese el costo en ($) del tendido de (KM) de Cable Terrestre = "))


# Calculamos el costo para x=0.01
BD = math.sqrt(20**2 + 14**2)
BD_aux = 0
Costo = CT*X + CM*BD
Costo_aux = 0


# Iteramos hasta conseguir costo mínimo

while X_aux < 20:
    BD_aux = math.sqrt((20-X_aux)**2 + 14**2)
    Costo_aux = CT*X_aux + CM*BD_aux
    if Costo_aux < Costo:
        Costo = Costo_aux
        X = X_aux
        BD = BD_aux
    X_aux = X_aux + 0.01

Costo_aux = CT*20 + CM*14
if Costo_aux < Costo:
    Costo = Costo_aux
    X = 20
    BD = 14


# Presentamos Resultados

print(f"\nLa cantidad de cable Marítimo requerido es (KM) = {BD:.2f}")
print(f"La cantidad de cable Terrestre requerido es (KM) = {X:.2f}")
print(f"El Costo del tendido es = {Costo:.2f} $")
print("CON ESTAS CANTIDADES SE OBTIENE EL MINIMO COSTO POSIBLE!!!")