jueves, 24 de septiembre de 2026

01f.- Programación II - Actividad a trabajar en clase 24 de Sep 2026

Usted trabaja para una empresa que construye tanques.


Una importante distribuidora de Diésel 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 jefe de departamento de ingeniería 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.

Elabore un programa que determine el radio y el largo del tanque. Adicionalmente el programa deberá indicar la superficie en metros cuadrados.

miércoles, 23 de septiembre de 2026

01g.- Programación II - Actividad a entregar Bebedero de Agua con Máximo Volumen - Solución del Profesor

1.- La empresa para la cual usted trabaja está adquiriendo un lote de láminas metálicas de forma rectangular de ancho variable y de 3 mts de largo. Se desea construir con ellas bebederos para animales procediendo a doblar la chapa como se indica en la siguiente figura:





Los bebederos se sellarán con una pieza de madera dura en los topes de forma de completar toda la estructura. Estas piezas de madera formarán el frente y el fondo del bebedero. 


La empresa que comprará los bebederos exige que los mismos tenga la forma indicada en la figura anterior de lo contrario no procesarán la compra.


Los topes presentarán la forma de un Trapecio + Rectángulo tal como lo indica la siguiente figura:





Inicialmente el suplidor de las láminas nos indicó que el primer lote tendrá un ancho de 1.5 mts.

Nota: Los lotes siguientes pueden tener un ancho distinto, ese rango oscilara entre 1.5mts y 2.5 mts. El suplidor nos confirma que el largo siempre es el mismo 3mts.

El Gerente de ingeniería de la empresa recibió una carta de recomendación de parte de su profesor de Programación II de la USM, en donde se indica que usted dispone de capacidades sobresaliente en distintas áreas de la ingeniería.

En consecuencia, el gerente de Ingeniería lo ha designado a usted para elaborar un programa que determine: 
  • La capacidad en litros del bebedero (Máxima)
  • La área total del tope de madera (mts2)

De forma de obtener el Bebedero de máxima capacidad posible según las dimensiones de la lamina a trabajar (1.5 mts a 2.5 mts de ancho x 3 mts de largo)

La actividad es grupal y deberá ser defendida por uno de los estudiantes del grupo. Alumnos que trabajen de forma individual no serán considerados para calificación. Los mejores trabajos recibirán puntos positivos para el primer parcial. La cantidad de puntos será decidida al final de clase por el profesor dependiendo de la calidad del trabajo.

Los alumnos seleccionados deberán defender la idea de como hicieron el programa y estar en la capacidad de modificarlo al instante. 


Solución

Programa en C++

/* Programa que determina el bebedero de máximo volumen según

los especificado en el Parcial nro. 1 de programación II - USM

semestre 2024-I

Elaborado por Carlos Ferrer

Fecha: 27 de Sep 2023

*/



#include<iostream> //biblioteca para ingresar el valor del ancho de la lamina

#include<math.h> //biblioteca matemática

#include<locale.h> //biblioteca de idiomas

double ancho; //Ancho de la lamina

double base1,base2,x; //bases del trapecio y valor de x que forma parte de la base2

double h; //Altura del trapecio

double area_rec,area_trap, area_tapa; //Área del rectángulo y Área del trapecio

double Q,Q_rad; //Ángulo de elevación del lateral del trapecio en grado y radianes

double volumen; //Volumen del bebedero en metros cúbicos

double litros; //Capacidad del bebedero en Litros

double funcion_optimizada=100; //derivada igualada a cero del análisis matemático

using namespace std;

main()



{




setlocale(LC_ALL,"spanish");  //seteamos el lenguaje en español

cout <<"Ingrese el ancho de la lámina.  (1.5 a 2.5 mts) = ";

cin >>ancho;

if(ancho<1.5 or ancho>2.5)

{

system ("cls");

cout <<"Ancho ingresado fuera de rango "<<endl<<endl;

}


/*Elaboramos un ciclo que determine el ángulo donde la ecuación de optimización se 
hace cero en el rango de 0.001 a 90 grados*/

while (funcion_optimizada<-0.001 or funcion_optimizada>0.001)
{
Q=Q+0.01;
Q_rad=Q*M_PI/180;
funcion_optimizada=cos(Q_rad)+pow(cos(Q_rad),2)-pow(sin(Q_rad),2)-2*sin(Q_rad);
}


//determinamos X

x= ancho/5*cos(Q_rad);


//determinamos Área del trapecio

base1=ancho/5;

x= ancho/5*cos(Q_rad);

base2=base1+2*x;

h= ancho/5*sin(Q_rad);

area_trap=(base1+base2)*h/2;

//determinamos Área del Rectángulo

area_rec=(ancho/5+2*x)*ancho/5;

// determinamos el área de la tapa de madera

area_tapa=area_rec+area_trap;

// determinamos el volumen del bebedero en metros cúbicos

volumen=area_tapa*3;

// determinamos la capacidad del bebedero en litros

litros = volumen*1000;


//presentamos los resultados

system("cls");

cout <<"Para una lámina de un ancho de "<<ancho<<" mts y un largo de 3 metros.";

cout <<" Los resultados son los siguientes: "<<endl<<endl;

cout <<"El angulo thetha (Q) en donde se obtiene la maxima area es = "<<Q<<" grados ("<<Q_rad<<" radianes)"<<endl;

cout <<"El valor de X asociado a este angulo corresponde a = "<<x<<" mts"<<endl<<endl;

cout <<"El valor de h asociado a la altura del trapecio corresponde a = "<<h<<" mts"<<endl<<endl;

cout <<"El area total de la base es igual = "<<area_tapa<<" mts2"<<endl;

cout <<"(Area del Rectangulo = "<<area_rec<<" mts2 + Area del Trapecio = "<<area_trap<<" mts2)"<<endl<<endl;



cout <<"EL VOLUMEN MAXIMO DEL BEBEDERO ES DE "<<volumen<<" mts cúbicos"<<endl;

cout << "CON CAPACIDAD DE "<<litros<<" LITROS DE AGUA. PARA UNA LAMINA DE "<<ancho<<" MTS DE ANCHO"<<endl<<endl;



cout <<"ÉXITO!!!!"<<endl<<endl;

system ("pause");


}


Programa en Python


# Programa que determina el bebedero de máximo volumen según
# los especificados en el Parcial Nro. 1 de Programación II - USM
# semestre 2024-I
# Elaborado por Carlos Ferrer
# Fecha: 27 de Sep. 2023

import math
import os

ancho = 0.0  # Ancho de la lamina
base1 = 0.0
base2 = 0.0
x = 0.0  # bases del trapecio y valor de x que forma parte de la base2
h = 0.0  # Altura del trapecio
area_rec = 0.0
area_trap = 0.0
area_tapa = 0.0  # Área del rectángulo y Área del trapecio
Q = 0.0
Q_rad = 0.0  # Ángulo de elevación del lateral del trapecio en grado y radianes
volumen = 0.0  # Volumen del bebedero en metros cúbicos
litros = 0.0  # Capacidad del bebedero en Litros
funcion_optimizada = 100.0  # derivada igualada a cero del análisis matemático

# Setear el lenguaje en español (no aplicable en Python)

ancho = float(input("Ingrese el ancho de la lámina.  (1.5 a 2.5 mts) = "))

if ancho < 1.5 or ancho > 2.5:
    os.system("cls" if os.name == "nt" else "clear")
    print("Ancho ingresado fuera de rango\n")

# Elaboramos un ciclo que determine el ángulo donde la ecuación de optimización se hace cero en el rango de 0.001 a 90 grados
while funcion_optimizada < -0.001 or funcion_optimizada > 0.001:
    Q += 0.01
    Q_rad = Q * math.pi / 180
    funcion_optimizada = math.cos(Q_rad) + math.pow(math.cos(Q_rad), 2) - math.pow(math.sin(Q_rad), 2) - 2 * math.sin(Q_rad)

# determinamos X
x = ancho / 5 * math.cos(Q_rad)

# determinamos Área del trapecio
base1 = ancho / 5
base2 = base1 + 2 * x
h = ancho / 5 * math.sin(Q_rad)
area_trap = (base1 + base2) * h / 2

# determinamos Área del Rectángulo
area_rec = (ancho / 5 + 2 * x) * ancho / 5

# determinamos el área de la tapa de madera
area_tapa = area_rec + area_trap

# determinamos el volumen del bebedero en metros cúbicos
volumen = area_tapa * 3

# determinamos la capacidad del bebedero en litros
litros = volumen * 1000

# presentamos los resultados
os.system("cls")
print(f"Para una lámina de un ancho de {ancho} mts y un largo de 3 metros.")
print("Los resultados son los siguientes:\n")
print(f"El angulo thetha (Q) en donde se obtiene la maxima area es = {Q} grados ({Q_rad} radianes)")
print(f"El valor de X asociado a este angulo corresponde a = {x} mts\n")
print(f"El valor de h asociado a la altura del trapecio corresponde a = {h} mts\n")
print(f"El area total de la base es igual = {area_tapa} mts2")
print(f"(Area del Rectangulo = {area_rec} mts2 + Area del Trapecio = {area_trap} mts2)\n")
print(f"EL VOLUMEN MAXIMO DEL BEBEDERO ES DE {volumen} mts cúbicos")
print(f"CON CAPACIDAD DE {litros} LITROS DE AGUA. PARA UNA LAMINA DE {ancho} MTS DE ANCHO\n")
print("ÉXITO!!!!\n")

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


01f.- Programación II - Bebedero de máxima capacidad (Semestre 2027-I) - Laboratorio 23 de Sep de 2026

La empresa para la cual usted trabaja está adquiriendo un lote de láminas metálicas de forma rectangular de ancho variable y de 3 mts de largo. Se desea construir con ellas bebederos para animales procediendo a doblar la chapa como se indica en la siguiente figura:





Los bebederos se sellarán con una pieza de madera dura en los topes de forma de completar toda la estructura. Estas piezas de madera formarán los laterales del bebedero. 


La empresa que comprará los bebederos exige que los mismos tenga la forma indicada en la figura anterior de lo contrario no procesarán la compra.


Los topes presentarán la forma de un Trapecio + Rectángulo tal como lo indica la siguiente figura:





Inicialmente el suplidor de las láminas nos indicó que el primer lote tendrá un ancho de 1.5 mts.

Nota: Los lotes siguientes pueden tener un ancho distinto, ese rango oscilara entre 1.5mts y 2.5 mts. El suplidor nos confirma que el largo siempre es el mismo 3mts.

El Gerente de ingeniería de la empresa recibió una carta de recomendación de parte de su profesor de Programación II de la USM, en donde se indica que usted dispone de capacidades sobresalientes en distintas áreas de la ingeniería.

En consecuencia, el gerente de Ingeniería lo ha designado a usted para elaborar un programa que determine: 
  • Determine el ángulo θ en donde el volumen se hace máximo 
  • La capacidad en litros del bebedero (Máxima)
  • La área total del tope de madera (mts2)
De forma de obtener el Bebedero de capacidad máxima (Máximo Volumen)

viernes, 18 de septiembre de 2026

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

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


jueves, 17 de septiembre de 2026

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

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, 16 de septiembre 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 capacidad

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 menor costo posible.

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. 

Nota: La tapa superior y el piso son completamente planos

Su jefe desea ganar el proyecto y cuenta con sus habilidades para eso.


Solución 

Estudiemos el tanque




       Verifiquemos en Excel incrementando y decrementando el radio
 de forma de verificar si el tanque con esas dimensiones genera el menor costo




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;
    float r , h , fcosto;
    
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 final
    
    r = cbrt(v /(2* M_PI));
    h = v / (M_PI * pow(r,2));
    fcosto = 2* M_PI *pow(r,2) * c + 2 * M_PI * r*h * 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 de = "<<fcosto<<" $ (aprox)"<<endl<<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/(2*m.pi))  
h= v/(m.pi*r**2)
costo=2*m.pi*r**2*c+2*m.pi*r*h*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 ,"$")