miércoles, 22 de abril de 2026

02f.- Programación II - Ejercicio a desarrollar 22 de abril de 2026 (Semestre 2026 - II) - Solución del Profesor

  Nuestro ejército se encuentra diezmado por la acción de un tanque enemigo, nuestro capitán en una acción desesperada planea arrojar un vehículo cargado de explosivos desde una rampa ubicada en la cima de una montaña de 600 mts de alto.






El enemigo no espera un ataque aéreo, nuestra base dispone de un radar lo suficientemente preciso para indicarnos la distancia existente entre la montaña y el tanque enemigo.

El vehículo se modificará para que trabaje a una velocidad de 180 km/hr o lo que es lo mismo 50 m/s. La modificación consiste en trabar la dirección y el acelerador para no requerir ningún conductor abordo.

El capitán conoce sus habilidades en programación y lo ha asignado a usted para que elabore un programa que permita determinar el ángulo (θ) de forma de que el carro bomba impacte al tanque.

La supervivencia del batallón depende de usted. Solo  contamos con un vehículo con explosivos. La base informará el momento en que el tanque se detiene a disparar, esto dura alrededor de 25 seg... por lo tanto es necesario que actuemos de la forma lo mas rápida y precisa que nos sea posible.

El vehículo  tarda 10 seg en salir de la rampa. Ese tiempo sumado al tiempo de vuelo debe ser menor a los 25 seg que permanece inmóvil el tanque, de lo contrario fallaremos en el intento de destruirlo.

La vida de los soldados en combate dependen de usted!!



Respuesta.
Para una distancia d=378 mts el ángulo (θ) = 30



Solución






                                         



                                         Programa

// Programa elaborado por Carlos Ferrer
// Abril - 2022
// Aplicaciones de la física Ejercicio Carro Bomba


#include <iostream>
#include <math.h>
using namespace std;
int main()

{

double  Q1=0,Q2=0,X; 
// Q1 y Q2 = los dos ángulos que permiten el mismo alcance horizontal 
// X = posición del tanque en momento que detiene su marcha (información del radar) 

 
double tv1=0, tv2=0, tvf=0;
 
    // tv1= tiempo de vuelo para Q1
    // tv2= tiempo de vuelo para Q2
    // tvf= tiempo de vuelo final (el menor de los dos)

double g=9.8, Yo=600, Vo=50; 
 
//g=gravedad Yo=altura de la montaña Vo= Velocidad inicial carro bomba
    
double a=0,b=0,c=0; 
//a,b,c = términos de la ecuación de 2do grado        
double t1=0,t2=0; 
//Resultados de la resolvente       

system("cls");
//para limpiar la pantalla negra (Consola)
 
cout<<"Ingrese distancia del tanque segun radar (mts) = ";
cin>>X;
cout <<endl;

a= -g*pow(X,2)/(2*pow(Vo,2)); 
b= X;
c= Yo-g*pow(X,2)/(2*pow(Vo,2));
    
t1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);
t2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);
 
Q1=atan(t1);
Q2=atan(t2);
 
 
tv1= X/(50*cos(Q1));
tv2= X/(50*cos(Q2));
 
Q1=Q1*180/M_PI;
Q2=Q2*180/M_PI;
 
/*Evaluamos el resultado e informamos al soldado que posicionara la rampa y soltara el carro. La función isnan chequea que el dato sea del tipo nan en ese caso el carro esta fuera de alcance*/

if ((isnan(Q1)) or (isnan(Q2))) 
{
tvf=100;
goto final;
}
else
{
cout <<"Para la distancia de "<<X<<" mts. existen dos angulos que nos permiten impactar el tanque"<<endl;
cout <<"cada uno de los angulos genera un tiempo de vuelo diferente:"<<endl<<endl;
cout <<"Angulo Nro1 = "<<Q1<<" deg => Tiempo de vuelo Nro1 = "<<tv1<<" seg"<<endl;
cout <<"Angulo Nro2 = "<<Q2<<" deg => Tiempo de vuelo Nro2 = "<<tv2<<" seg"<<endl<<endl;
cout <<"En consecuencia debemos posicionar la rampa en un angulo de ";
}

if (tv1<=tv2)
  {
   cout<<Q1<<" deg"<<endl;
  cout<<"con lo cual impactariamos el tanque a los "<<tv1+10<<" seg ("<<tv1<<" seg + 10 seg)"<<endl<<endl;
  tvf=tv1;
  }
else
    {
   cout<<Q2<<" deg"<<endl;
  cout<<"con lo cual impactariamos el tanque a los "<<tv2+10<<" seg ("<<tv2<<" seg + 10 seg)"<<endl<<endl;
  tvf=tv2;
  }
cout<<"Este angulo nos permite atacar el tanque lo mas rapido posible antes de que cambie de posicion"<<endl<<endl;

// posicionar la rampa y soltar el carro tarda 10 seg y el tanque solo queda fijo por 25 seg
final:
 if (tvf+10<25)
  {
  cout<<"Posicione rampa y suelte el carro de inmediato!!!"<<endl; 
  }
else
  {
  cout <<endl<<"Espere tanque en movimiento o fuera de nuestro alcance (Alcance maximo de 609.2614 mts)"<<endl; 
  }
 
cout<<""<<endl<<endl;
system("pause");

}

02d.- Programación II - Ejercicio a desarrollar 22 de abril de 2026 (Semestre 2026 - II)

 Nuestro ejército se encuentra diezmado por la acción de un tanque enemigo, nuestro capitán en una acción desesperada planea arrojar un vehículo cargado de explosivos desde una rampa ubicada en la cima de una montaña de 600 mts de alto.






El enemigo no espera un ataque aéreo, nuestra base dispone de un radar lo suficientemente preciso para indicarnos la distancia existente entre la montaña y el tanque enemigo.

El vehículo se modificará para que trabaje a una velocidad de 180 km/hr o lo que es lo mismo 50 m/s. La modificación consiste en trabar la dirección y el acelerador para no requerir ningún conductor abordo.

El capitán conoce sus habilidades en programación y lo ha asignado a usted para que elabore un programa que permita determinar el ángulo (θ) de forma de que el carro bomba impacte al tanque.

La supervivencia del batallón depende de usted. Solo  contamos con un vehículo con explosivos. La base informará el momento en que el tanque se detiene a disparar, esto dura alrededor de 25 seg. por lo tanto es necesario que actuemos de la forma lo mas rápida y precisa que nos sea posible.

El vehículo tarda 10 seg en salir de la rampa. Este tiempo corresponde al tiempo de posicionamiento de la rampa en el ángulo correcto + el tiempo de recorrido del vehículo sobre la rampa.

El tiempo de 10 seg sumado al tiempo de vuelo debe ser menor a los 25 seg que permanece inmóvil el tanque, de lo contrario fallaremos en el intento de destruirlo.

Usted ingresará al programa la distancia en la cual el tanque se encuentra de la montaña (información del radar) el programa deberá calcular el ángulo de la rampa para esa distancia, recuerde el tanque se detiene solo por 25 seg.

La vida de los soldados en combate dependen de usted!!

jueves, 16 de abril de 2026

02e.- Programación II - Lanzamisiles Actividad a trabajar en clases el 16 de abril de 2026 (Semestre 2026 - II) - Solución del Profesor

Usted debe elaborar un programa que permita destruir la bomba enemiga considerando que las siguientes condiciones que reporta el radar pueden variar:

Datos de entrada al programa proveniente del radar de la base antiaérea.
  • Velocidad del avión (En el momento que suelta la bomba)
  • Altura de vuelo del avión (En el momento que se suelta la bomba -superior a los 2000 mts)
  • Distancia horizontal del avión al cañón antiaéreo (En el momento que se suelta la bomba).
Para todo cálculo que lo requiera utilice 9.8 mts/segcomo valor de la gravedad

El programa deberá reportar:

(1) Velocidad de disparo del cañón antiaéreo (mts/seg) 
(2) Angulo de disparo del Cañón (En Radianes y Grados)

La seguridad de la instalación depende de ustedes!!!



Solución



                                         Programa en C++


// Programa para el calculo del disparo del cañón antibombas
// Catedra Programación II - Profesor Carlos Ferrer
// Nov- 2024

#include <iostream>
#include <math.h>
#include <locale.h>
using namespace std;
main(){

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

float  vom=0,Q=0; 
// las dos variables que queremos calcular vom = Velocidad inicial del misil Q= Angulo de disparo
 
double da=0,v=0,h=0; 

/* 
Datos que suministra el sistema de radar da = distancia en X del lanzamisiles al avion cuando suelta la bomba
   v = Velocidad del avión
   h = Altura del avión cuando suelta la carga 
*/
 
 double d=0,tvb=0,tvm=0,h_impacto=1600;       
 /*
d = desplazamiento en x de la bomba hasta que su altura es de 1600 metros, 
tvb = tiempo de vuelo de la bomba hasta 1600 mts
tvm = tiempo de vuelo del misil
h_impacto = altura a la cual impactara el misil con la bomba
*/
                    
inicio:
 system("cls");//para limpiar la consola
 
 cout<<"El punto de referencia del cañón es cero(0), si se indica valores negativos"<<endl;
 cout<<"es porque el avión soltó la bomba esta detrás del cañón, valores positivos indican que el"<<endl;
 cout<<"avión soltó la carga delante del cañón, cero (0) indicaría que soltó la carga exactamente encima del cañón"<<endl<<endl;
 
 cout<<"El radar reporto que la distancia en X del lanza misiles al avión (mts) es = ";cin>>da;
 cout<<"El radar reporto que la velocidad del avión (mts/s) es = ";cin>>v;
 cout<<"El radar reporto que la Altura de vuelo del avion (mts) es = ";cin>>h;
 



 tvb=sqrt((h-h_impacto)/4.9); //Calculamos tiempo de vuelo bomba hasta 1600 mts
d=v*tvb; //Calculamos desplazamiento en X de la bomba hasta alcanzar la altura de 1600 mts
        
 // Calculamos Tiempo de vuelo del misil hasta una altura de 1600 mts 
 tvm=tvb-5; 
        
  //Calculamos Velocidad inicial del misil
vom=sqrt(pow((h_impacto/tvm+4.9*tvm),2)+(pow((da+d),2)/pow(tvm,2))); 
        
 
Q=acos((da+d)/(tvm*vom)); // Calculamos ángulo de elevación del lanzamisiles en radianes
Q=Q*180/3.141592; //Convertimos el ángulo de rad a Deg.
 
// Presentamos los resultados
if  (vom>=100000)
{
    cout <<endl<<"La bomba lleva una trayectoria que esta fuera del alcance del cañón."<<endl;
    cout <<"La explotara en una zona lejana al campamento"<<endl;
    }
else
    {
    cout <<endl<<"La velocidad a la cual debe dispararse el misil es (mts/s) = "<<vom<<endl;
    cout<<"El ángulo con respecto al piso del lanzamisiles es (deg) = "<<Q<<"°"<<endl;
    }
system("pause");
goto inicio;
}

Programa en Python

# Programa para el calculo del disparo del cañón antibombas
# Catedra Programación II - Profesor Carlos Ferrer
#Nov- 2024

import math
import os
# las dos variables que queremos calcular vom = Velocidad inicial del misil Q= Angulo de disparo
vom = 0
Q = 0

# Datos que suministra el sistema de radar
# da = distancia en X del lanzamisiles al avion cuando suelta la bomba
# v = Velocidad del avión
# h = Altura del avión cuando suelta la carga

da = 0
v = 0
h = 0

# d = desplazamiento en x de la bomba hasta que su altura es de 1600 metros,
# tvb = tiempo de vuelo de la bomba hasta 1600 mts
# tvm = tiempo de vuelo del misil
# h_impacto = altura a la cual impactara el misil con la bomba

d = 0
tvb = 0
tvm = 0
h_impacto = 1600

while True:
    os.system("cls")

    print("El punto de referencia del cañón es cero(0), si se indica valores negativos")
    print("es porque el avión soltó la bomba esta detrás del cañón, valores positivos indican que el")
    print("avión soltó la carga delante del cañón, cero (0) indicaría que soltó la carga exactamente encima del cañón")
    print()

    da = float(input("El radar reporto que la distancia en X del lanza misiles al avión (mts) es = "))
    v = float(input("El radar reporto que la velocidad del avión (mts/s) es = "))
    h = float(input("El radar reporto que la Altura de vuelo del avion (mts) es = "))


# Calculamos tiempo de vuelo bomba hasta 1600 mts
 
    tvb = math.sqrt((h - h_impacto) / 4.9)
# Calculamos desplazamiento en X de la bomba hasta alcanzar la altura de 1600 mts    
    d = v * tvb
# Calculamos Tiempo de vuelo del misil hasta una altura de 1600 mts
    tvm = tvb - 5
# Calculamos Velocidad inicial del misil
    vom = math.sqrt(pow((h_impacto / tvm + 4.9 * tvm), 2) + (pow((da + d), 2) / pow(tvm, 2)))
   
# Calculamos ángulo de elevación del lanzamisiles en radianes y convertimos a grados
    Q = math.acos((da + d) / (tvm * vom))
    Q = Q * 180 / 3.141592

# Presentamos Resultados

    if vom >= 100000:
        print()
        print("La bomba lleva una trayectoria que esta fuera del alcance del cañón.")
        print("La explotara en una zona lejana al campamento")
    else:
        print()
        print("La velocidad a la cual debe dispararse el misil es (mts/s) = ", vom)
        print("El ángulo con respecto al piso del lanzamisiles es (deg) = ", Q, "°")

    os.system("pause") 

02c.- Programación II - Lanzamisiles Actividad a trabajar en clases el 16 de abril de 2026 (Semestre 2026 - II)

 

Usted debe elaborar un programa que permita destruir la bomba enemiga considerando que las siguientes condiciones que reporta el radar pueden variar:

Datos de entrada al programa proveniente del radar de la base antiaérea.
  • Velocidad del avión (En el momento que suelta la bomba)
  • Altura de vuelo del avión (En el momento que se suelta la bomba -superior a los 2000 mts)
  • Distancia horizontal del avión al cañón antiaéreo (En el momento que se suelta la bomba).
Para todo cálculo que lo requiera utilice 9.8 mts/segcomo valor de la gravedad

El programa deberá reportar:

(1) Velocidad de disparo del cañón antiaéreo (mts/seg) 
(2) Angulo de disparo del Cañón (En Radianes y Grados)

La seguridad de la instalación depende de ustedes!!!

02b.- Programación II - Actividad a desarrollar clase 15 de abril 2026 - Solución del Profesor

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:



Para fijar la estructura al techo se empleara dos segmentos independiente de guaya sobrante de otros proyectos. Cada segmento de guaya solo soporta 10 kg de masa. Elabore un programa que determine cual rango puedo reducir o aumentar el segmento X sin que las guayas terminen rompiéndose. Adicionalmente informe los valores de los ángulos Alfa y Beta para esas longitudes límites. 

Nota la cadena soporta masas de hasta 50 kg.

Solución

Analizamos los diagramas de cuerpo libre, se puede establecer lo siguiente considerando que el sistema esta en equilibrio:


El sistema es representado por dos (2) ecuaciones de cuatro (4) incógnitas (T1, T2, α y β). 

Del triangulo que conforma las dos (2) cuerdas y el techo conocemos dos (2) segmentos: el techo = 2 mts y la cuerda que absorbe la tensión T2 = 1.5 mts. Se puede desarrollar un programa en el cual se ingrese la dimensión de la cuerda que soporta la tensión T1 (segmento X) y así obtener los ángulos α y β usando la ley del coseno, por lo tanto podemos establecer:

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

import math
import os
os.system("cls")
beta = 0  # Ángulo
alfa = 0  # Ángulo
x = 1.5  # longitud inicial
t1 = 0
t2 = 0  # tensiones t1 y t2

# Iteramos y calculamos los ángulos y las tensiones al ampliar el segmento x
while t2 < 100:
    x += 0.001
    beta = math.acos((2**2 + 1.5**2 - x**2) / (2 * 1.5 * 2))
    alfa = math.acos((2**2 + x**2 - 1.5**2) / (2 * x * 2))
    t1 = 122 / (math.sin(alfa) + math.sin(beta) * math.cos(alfa) / math.cos(beta))
    t2 = t1 * math.cos(alfa) / math.cos(beta)

x_mayor = x
beta_mayor = beta * 180 / math.pi
alfa_mayor = alfa * 180 / math.pi

# Iteramos y calculamos los ángulos y las tensiones al reducir el segmento x
x = 1.5
while t1 < 100:
    x -= 0.001
    beta = math.acos((2**2 + 1.5**2 - x**2) / (2 * 1.5 * 2))
    alfa = math.acos((2**2 + x**2 - 1.5**2) / (2 * x * 2))
    t1 = 122 / (math.sin(alfa) + math.sin(beta) * math.cos(alfa) / math.cos(beta))
    t2 = t1 * math.cos(alfa) / math.cos(beta)

x_menor = x
beta_menor = beta * 180 / math.pi
alfa_menor = alfa * 180 / math.pi

# Presentamos los resultados
print(f"La longitud minima que puede disminuir la guaya X corresponde a = {x_menor} mts")
print(f"lo cual ocurre cuando alfa = {alfa_menor} deg y beta = {beta_menor} deg\n")
print(f"La longitud maxima que puede aumentar la guaya X corresponde a = {x_mayor} mts")
print(f"lo cual ocurre cuando alfa = {alfa_mayor} deg y beta = {beta_mayor} deg\n")




miércoles, 15 de abril de 2026

02a.- Programación II - Actividad a desarrollar clase 15 de abril 2026

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:



Para fijar la estructura al techo se empleara dos segmentos independiente de guaya sobrante de otros proyectos. Cada segmento de guaya solo soporta 10 kg de masa. Elabore un programa que determine cual rango puedo reducir o aumentar el segmento X sin que las guayas terminen rompiéndose. Adicionalmente informe los valores de los ángulos Alfa y Beta para esas longitudes límites. 

Nota la cadena soporta masas de hasta 50 kg.

01w.- Programación II - CALIFICACIONES Parcial Nro.1 (2026 - II) - CALIFICACIONES DEFINITIVAS 1ER CORTE