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


No hay comentarios.:

Publicar un comentario