Mi reconocimiento a los estudiantes Paul Manrrique y Roberto Pérez, su examen presentó niveles de excelencia destacables, por encima del promedio del grupo.
Nuevamente mi reconocimiento para los Sres. Manrrique y Pérez.
Blog informativo Cátedra de Programación II Profesor: Ing Carlos Ferrer - USM Caracas
Mi reconocimiento a los estudiantes Paul Manrrique y Roberto Pérez, su examen presentó niveles de excelencia destacables, por encima del promedio del grupo.
Nuevamente mi reconocimiento para los Sres. Manrrique y Pérez.
Solución
El primer paso es definir la fórmula de volumen de la piscina que corresponde a lo que queremos maximizar:
para eso descomponemos las figuras en dos: un paralelepípedo y una cuña,
En consecuencia, el volumen de la piscina corresponde a:
Vol = XY mt3 + XY/2 mt3 => Vol = 3XY/2 mt3
La ecuación de Volumen quedó en función de dos variables, necesitamos que quede en función de una sola.
Como conocemos la cantidad de material que tendremos para construir el fondo y las paredes de la piscina podemos establecer lo siguiente:
M = Material para construir
M = Área del fondo + Área de las 4 paredes =>
M = (XY + 2Y + [X+X/2] + [X+X/2] + Y) mt2 =>
M = (XY + 3Y + 3X/2 + 3X/2) mt2 =>
M = (XY + 3Y + 3X) mt2
Conociendo esto podemos expresar una variable en función de la otra:
X = (M - 3Y) / (Y+3) mt
En consecuencia, el volumen correspondería a:
Vol = 3 [(M-3Y) / (Y+3)] Y/2 mt3
La ecuación también la podemos expresar como
Vol =(3/2) (MY – 3Y2) / (Y+3) mt3
Para hallar el valor de Y en donde el Volumen se hace máximo derivamos el volumen con respecto a Y y lo igualamos a cero dvol/dy=0, luego despejamos Y.
dvol/dy=0 =>
[(M – 6Y) (Y+3) – (MY –3Y2)] / (Y+3)2 = 0
El denominador del lado izquierdo pasa al otro lado multiplicando y se cancela, en consecuencia, la ecuación quedaría:
MY + 3M – 6Y2 – 24Y – MY + 4Y2 = 0 =>
-4Y2 – 24Y + 3M = 0 => 4Y2+24Y-3M = 0 =>
al resolver la ecuación de 2do grado y dado que los valores de M están entre 2000 y 2500 mt2 se puede apreciar que una de las raíces nos quedará positiva y la otra negativa por lo que descartamos la repuesta negativa dado que no hay distancias negativas.
Al tener Y, sustituimos este valor en
X = (M - 4Y) / (Y+3) mt
Y obtenemos X,
Ahora procedemos a elaborar el programa.
PROGRAMA NRO. 1
MÉTODO DE LA DERIVADA
/* Este programa calcula las dimensiones de ancho y largo de la piscina de forma de obtener el máximo volumen posible con el material suministrado (parcial 1 semestre 2026-II)
************ Método de la derivación ********************
Elaborado por Carlos Ferrer
fecha: 11 de Abril de 2026
Rev. : 1
*/
#include<iostream>
#include<math.h>
#include<iomanip> //Biblioteca para imprimir sin notación científica
#include<locale.h>
using namespace std;
main()
{
double X,Y=0; //Largo y Ancho a calcular
double M; //Cantidad de material donado
float litros; //Capacidad en litros de la piscina
setlocale(LC_ALL, "spanish");
do
{
cout <<"Favor ingrese la cantidad de material donado en mts2 (2000-2500) = ";
cin >>M;
if (M<2000 or M>2500)
{
cout <<"dato incorrecto = "<<M<<endl;
system("pause");
system("cls");
}
}
while(M<2000 or M>2500);
//Calculamos Y y X
Y=(-18+sqrt(pow(18,2)-4*3*(-3*M)))/(2*3);
X=(M-3*Y)/(Y+3);
litros=(3*X*Y*1000)/2;
//Presentamos los resultados
cout <<endl<<"El largo de la piscina es de "<<Y<<" mts y"<<endl;
cout <<"el ancho de la piscina es de "<<X<<" mts."<<endl<<endl;
cout <<"El volumen es de "<<3*X*Y/2<<" mts3 (";
cout <<setprecision(2) << fixed <<litros<<" Litros)"<<endl<<endl;
cout <<"Para que la piscina tenga máximo volumen el fondo debe ser cuadrado!!!"<<endl<<endl;
system("pause");
}
Resultados
Dos vigas de 20 y 28 mts de Altura se encuentran a una distancia de (L) de metros entre ellas. Se han de sujetar con una Guaya fijada en un solo punto desde el suelo a los extremos superiores de las vigas. El día de hoy la distancia entre las dos vigas L es de 30 metros. El costo del metro lineal de Guaya es de 2.95$.
1) Es necesario elaborar un programa que permita determinar el corte de láminas de cartón rectangular de forma de elaborar cajas con el mayor volumen posible:
Las láminas rectangulares deben cortarse en sus esquinas de forma de poder doblarlas para construir las cajas, similar a las cajas de una torta de cumpleaños (Sin la tapa superior), el siguiente diagrama indica como se cortará y doblará la caja:
El programa a elaborar deberá permitir ingresar el largo y el ancho de la lámina de cartón (mts), El programa deberá indicar
Cuál será la medida "x"
Cuál es el volumen de la caja en mts. cúbicos
Solución Esperada
La Gobernación de Miranda desea instalar semáforos dentro de los túneles del edo. Miranda de forma de alertar accidentes o trabajos dentro de los mismo, los semáforos tienen una masa 12.2 kg aproximadamente. Estos semáforos se fijaran al techo de la entrada de los túneles con un sistema de soporte como se muestra en la figura:
X2 = (1.5)2 + (2)2 – 2(1.5)(2) cos β =>
β=arccos[(X2 - (1.5)2 - (2)2)/( – 2(1.5)(2))]
(1.5)2 = X2+ (2)2 – 2(X)(2) cos α =>
α =arccos[((1.5)2 - X2 - (2)2)/( – 2(X)(2))]
Al conocer α y β podemos determinar las tensiones T1 y T2 resolviendo el sistema de ecuaciones de dos incógnitas:
T2 cos β = T1 cos α => T2 = T1 (cos α / cos β) en consecuencia podemos sustituir T2 en la otra ecuación:
T1 seno α + T2 seno β = 122 newton =>
T1 seno α + T1 (seno β x cos α / cos β) = 122 newtons =>
T1 = [122 newton/( seno α + (seno β x cos α / cos β)]
Al obtener T1 determinamos también T2 y evaluamos si alguna de las dos NO soporta 10 kg x 10 mt/seg2 o lo que es lo mismo 100 newtons.
A partir de allí podemos iterar hasta obtener las medidas limites del segmento X.
Programa (C++)
/* Programa para determinar los rangos limites del segmento
X en cual la estructura soportará el peso del semáforo según
la figura.
Elaborado por Carlos Ferrer
Rev. Oct 2024
*/
#include<iostream>
#include<math.h>
using namespace std;
main()
{
double beta=0,alfa=0; //Ángulos
double x,t1=0,t2=0; //Segmento X y tensiones t1 y t2
double x_menor,x_mayor; //limites mayor y menor del segmento X
double beta_mayor,beta_menor; //limites mayor y menor del ángulo beta
double alfa_mayor,alfa_menor; //limites mayor y menor del ángulo alfa
/*iteramos y calculamos los ángulos y las tensiones al
ampliar el segmento x*/
x=1.5; //longitud inicial
while (t2<100)
{
x=x+0.001;
beta=acos((pow(2,2)+pow(1.5,2)-pow(x,2))/(2*1.5*2));
alfa=acos((pow(2,2)+pow(x,2)-pow(1.5,2))/(2*x*2));
t1= 122/(sin(alfa)+sin(beta)*cos(alfa)/cos(beta));
t2=t1*cos(alfa)/cos(beta);
}
x_mayor=x;
beta_mayor=beta*180/M_PI;
alfa_mayor=alfa*180/M_PI;
/*iteramos y calculamos los ángulos y las tensiones al
reducir el segmento x*/
x=1.5;
while(t1<100)
{
x=x-0.001;
beta=acos((pow(2,2)+pow(1.5,2)-pow(x,2))/(2*1.5*2));
alfa=acos((pow(2,2)+pow(x,2)-pow(1.5,2))/(2*x*2));
t1= 122/(sin(alfa)+sin(beta)*cos(alfa)/cos(beta));
t2=t1*cos(alfa)/cos(beta);
}
x_menor=x;
beta_menor=beta*180/M_PI;
alfa_menor=alfa*180/M_PI;
//presentamos los resultados
cout <<"La longitud minima que puede disminuir la guaya X corresponde a = "<<x_menor<<" mts"<<endl;
cout <<"lo cual ocurre cuando alfa = "<<alfa_menor<<" deg y beta = "<<beta_menor<<endl<<endl;
cout <<"La longitud maxima que puede aumentar la guaya X corresponde a = "<<x_mayor<<" mts"<<endl;
cout <<"lo cual ocurre cuando alfa = "<<alfa_mayor<<" deg y beta = "<<beta_mayor<<endl<<endl;
system ("pause");
}
Programa (Python)
# Programa para determinar los rangos limites del segmento
# X en cual la estructura soportará el peso del semáforo según
# la figura.
# Elaborado por Carlos Ferrer
# Rev. Oct 2024
La Gobernación de Miranda desea instalar semáforos dentro de los túneles del edo. Miranda de forma de alertar accidentes o trabajos dentro de los mismo, los semáforos tienen una masa 12.2 kg aproximadamente. Estos semáforos se fijaran al techo de la entrada de los túneles con un sistema de soporte como se muestra en la figura: