miércoles, 2 de julio de 2025
04.- Programación II - Parcial Nro. 4 - Solución del Profesor
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:
- La capacidad en litros del bebedero (Máxima)
- La área total del tope de madera (mts2)
a.- Que hace el programa?b.- Cual es el objetivo del vector "e[7]"?c.- Cual es el objetivo del vector "b[7]"?
Solución
Pregunta Nro1.
/* Programa que determina el bebedero de máximo volumen según
los especificado en el Parcial nro. 1 de programación II - USM
semestre 2022-I
Elaborado por Carlos Ferrer
Fecha: 30 de Oct 2021
*/
#include<iostream> //biblioteca para ingresar el valor del ancho de la lamina
#include<math.h> //biblioteca matemática
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; //Área del rectángulo y Área del trapecio
double Q; //Ángulo de elevación del lateral del trapecio
double volumen; //Volumen para cada ángulo
/*Area total de la base de madera en donde se obtiene el máximo volumen
(Area del rectángulo + Area del trapecio)*/
double area_tot;
double volumen_final=0; //Volumen máximo del bebedero
double Q_final; //Angulo donde se obtiene el máximo volumen
//Área del rectángulo y Área del trapecio que juntos dan el área máxima de la base
double area_rec_optimo,area_trap_optimo;
double x_optimo; //Valor de x donde se obtiene el máximo volumen
using namespace std;
main()
{
//Elaboramos un ciclo que determine el ángulo donde se da el volumen máximo
while(ancho<1.5 or ancho>2.5)
{
cout <<"Ingrese el ancho de la lamina. (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;
}
}
for (Q=0;Q<=90;Q=Q+0.01)
{
base1=ancho/5;
x= ancho/5*cos(Q*M_PI/180);
base2=base1+2*x;
h= ancho/5*sin(Q*M_PI/180);
area_trap=(base1+base2)*h/2;
area_rec=(ancho/5+2*x)*ancho/5;
area_tot=area_rec+area_trap;
volumen=area_tot*3*1000;
if (volumen>volumen_final)
{
volumen_final=volumen;
Q_final=Q;
area_rec_optimo=area_rec;
area_trap_optimo=area_trap;
x_optimo=x;
}
}
//Presentamos el resultado
system("cls");
cout <<"Para una lamina 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_final<<" grados"<<endl;
cout <<"El valor de X asociado a este angulo corresponde a = "<<x_optimo<<" mts"<<endl<<endl;
cout <<"El area total de la base es igual = "<< area_rec_optimo+area_trap_optimo<<" mts2"<<endl;
cout <<"(Area del Rectangulo = "<<area_rec_optimo<<" mts2 + Area del Trapecio = "<<area_trap_optimo<<" mts2)"<<endl<<endl;
cout <<"EL VOLUMEN MAXIMO DEL BEBEDERO ES DE "<<volumen_final;
cout << " LITROS PARA UNA LAMINA DE "<<ancho<<" MTS DE ANCHO"<<endl<<endl;
cout <<"MUCHO EXITO PARA TODOS!!!!"<<endl<<endl;
system ("pause");
}