jueves, 12 de marzo de 2026

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

Se va a tender un cable desde el punto A ubicado en la Costa Occidental del Lago de Maracaibo hasta un punto B ubicado en la Costa Oriental.

La ubicación A se encuentra 20 Km Lago arriba de un punto C esta 14 km en línea recta del punto B y adicionalmente  forma un angulo de 90 grados con la ruta de A hasta C. (Ver figuras)

Escenario Nro. 1



Escenario Nro. 2


Escenario Nro. 3


El costo de tender el cable por debajo de agua actualmente es 5000$ y el costo de tenderlo en tierra es de 3000$. Estos precios son volátiles y cambian día a día.

Existen tres (3) escenarios:

1.- Tender un cable por debajo del agua directamente entre los puntos A y B.
2.- Tender un cable en tierra entre los puntos A y C y posteriormente tender un cable por debajo del agua entre los puntos C y B.
3.- Determinar un punto X entre A y C, luego tender un cable sobre tierra entre A y X y posteriormente tender un cable por debajo del agua entre los puntos X y B. 

Indique:

a.- Cual es la opción más económica que usted recomendaría aplicar.
b.- Elabore un programa que determine la cantidad de material que se requiere adquirir basado en los costos de la materia prima ese día y en base al escenario determinado en el punto a. 

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!!!")


01d.- Programación II - Programa de Manejo de Costos - Calculo de Cables de Fibra Óptica (2026 - II)

Se va a tender un cable desde el punto A ubicado en la Costa Occidental del Lago de Maracaibo hasta un punto B ubicado en la Costa Oriental.

La ubicación A se encuentra 20 Km Lago arriba de un punto C esta 14 km en línea recta del punto B y adicionalmente  forma un angulo de 90 grados con la ruta de A hasta C. (Ver figuras)

Escenario Nro. 1



Escenario Nro. 2


Escenario Nro. 3


El costo de tender el cable por debajo de agua actualmente es 5000$ y el costo de tenderlo en tierra es de 3000$. Estos precios son volátiles y cambian día a día.

Existen tres (3) escenarios:

1.- Tender un cable por debajo del agua directamente entre los puntos A y B.
2.- Tender un cable en tierra entre los puntos A y C y posteriormente tender un cable por debajo del agua entre los puntos C y B.
3.- Determinar un punto X entre A y C, luego tender un cable sobre tierra entre A y X y posteriormente tender un cable por debajo del agua entre los puntos X y B. 

Indique:

a.- Cual es la opción más económica que usted recomendaría aplicar.
b.- Elabore un programa que determine la cantidad de material que se requiere adquirir basado en los costos de la materia prima ese día y en base al escenario determinado en el punto a. 


miércoles, 11 de marzo de 2026

01c.- Programación II - Calculo de tanque de capacidad fija con mínimo costo - Solución del Profesor

La Gobernación del estado Portuguesa ha decidido donar a los productores avícolas tanques de almacenamiento de agua, el dinero para la compra de la materia prima será una cubierto por la gobernación. La empresa "Polinter" ha decidido conceder precios especiales para la compra de la materia prima:

  • 2$ m2 cuadrado de material 

Inicialmente la gobernación desea donar tanques de 150 m3 de capacidad.

Se invita a varias empresas para que elaboren un tanque con esa cantidad de dinero.

El tanque debe ser un cilindro de base esférica cerrado. 

El proyecto se adjudicara a quien elabore el tanque con el menor costo posible.

Importante: La Gobernación indica que posteriormente puede requerir tanques de capacidades distintas y en todo caso siempre se debe elaborar el tanque de máxima capacidad.

La gobernación le pagara a la empresa la misma cantidad de dinero que cueste el tanque como beneficio para la empresa.


Usted debe elaborar un programa que determine el radio y la altura del tanque, indicando el costo del mismo. Su jefe desea ganar el proyecto y cuenta con sus habilidades para eso.

Éxito


Solución 

Estudiemos el tanque









       Verifiquemos en Excel




Programa en C++

/* Programa para calcular las medidas
de radio y altura de forma de elaborar un tanque
cilindrico al menor costo
Elaborado por Carlos Ferrer
Rev. Marzo 2025
*/

//Librerias

#include <iostream>
#include <cmath>
using namespace std;

int main() 
{
    // Ingresamos Costos y presupuesto
   
    double c, v;
    
do
    {
cout << "Ingrese costo del material en $/mts2= ";
    cin >> c;
}
while (c<=0);

do
{
cout << "Ingrese la capacidad del tanque en mts3= ";
    cin >> v;
}
    while (c<=0);

    // Calculamos el radio, la altura y el costo
    
    float r = cbrt(v / M_PI);
    float h = v / (M_PI * pow(r,2));
    float costo = M_PI *pow(r,2) * c + 2 * M_PI * r * c;

    system("cls");
    
    //imprimimos resultados
    
    cout << "Con un costo de material de " << c << " $/mts2 " << endl;
    cout << "para hacer un tanque de volumen " << v << " mts3" << endl;
    cout << std::endl;

    cout << "El radio corresponderia a " << r << " mts" << endl;
    cout << "La altura corresponderia a " << h << " mts" << endl<<endl;
    cout << "Produciendo un tanque de " << v << " mts3" << endl;
    cout <<"al costo minimo"<<endl;

    system("pause");
}

Programa en Python

# Programa para conocer el costo y las dimensiones de Radio y Altura
# conociendo la capacidad a del mismo y el costo del metros cuadrado  
# del material para su construcción.
# la idea es determinar radio y altura para que el costo sea mínimo

# Elaborado por Carlos Ferrer
# Rev 0 Mar 2025

import os
import math as m
# ingresamos Costos y presupesto

os.system("cls")

c=float(input("ingrese costo del material en $/mts²= "))
v= float(input("ingrese la capacidad del tanque en mts³= "))

# Calculamos el radio, la altura y el costo

r= m.cbrt(v/(m.pi))  
h= v/(m.pi*r**2)
costo= m.pi*r**2*c+2*m.pi*r*c

os.system("cls")

print ("Con un costo de material de ", c ,"$/mts² ")
print ("para hacer un tanque de volumen ", v ,"mts³")
print ("\n")

print ("El radio correspondería a ", r ,"mts")
print ("La altura correspondería a ", h ,"mts")
print ("Produciendo un tanque de ", v ,"mts³")
costo=round(costo,2)
print ("con un costo de ", costo ,"$")




01b.- Programación II - Calculo de tanque de capacidad fija con mínimo costo

 La Gobernación del estado Portuguesa ha decidido donar a los productores avícolas tanques de almacenamiento de agua, el dinero para la compra de la materia prima será una cubierto por la gobernación. La empresa "Polinter" ha decidido conceder precios especiales para la compra de la materia prima:

  • 2$ m2 cuadrado de material 

Inicialmente la gobernación desea donar tanques de 150 m3 de capacidad.

Se invita a varias empresas para que elaboren un tanque con esa cantidad de dinero.

El tanque debe ser un cilindro de base esférica cerrado. 

El proyecto se adjudicara a quien elabore el tanque con el menor costo posible.

Importante: La Gobernación indica que posteriormente puede requerir tanques de capacidades distintas y en todo caso siempre se debe elaborar el tanque de máxima capacidad.

La gobernación le pagara a la empresa la misma cantidad de dinero que cueste el tanque como beneficio para la empresa.


Usted debe elaborar un programa que determine el radio y la altura del tanque, indicando el costo del mismo. Su jefe desea ganar el proyecto y cuenta con sus habilidades para eso.

Éxito

01a.- Programación II - Software Dev C++ Clase 1

Para desarrollar los programas a lo largo del curso, estaremos utilizando Dev C++. 




Esta aplicación es de fácil uso, portable, ligera y con funciones de depuración (Debugging) bastante eficientes, pueden obtener este software seleccionando el siguiente vinculo:


Nota: La versión 5.9.2 presenta serios inconvenientes a la hora de depurar variables tipo cadena de caracteres.





Nota: La versión 6.3 presenta problemas de distinta índole que se han reportado a los desarrolladores sin embargo a la hora de depurar variables tipo cadena de caracteres es muy superior a la versión estándar.




A partir de este momento pueden comenzar a escribir sus "Programas"..... buena Suerte

sábado, 7 de marzo de 2026