Vous êtes sur la page 1sur 8

Resolucion de la practica numero 2

Problema 1: La trayectoria que describe una pelota de tenis al ser lanzada sin efecto es una
parbola. Las trayectorias descritas por un proyectil disparado por un arma de fuego o por
una flecha lanzada desde un arco tambin son parbolas. Cualquiera de nosotros puede
lanzar una piedra con un determinado ngulo de inclinacin y ella describir una parbola.
El lanzamiento de cualquiera de estos objetos se denomina tiro parablico o tiro oblicuo.
Imaginemos que estamos situados sobre una superficie horizontal y que lanzamos un objeto
con una velocidad v, expresada en m/s, en una direccin que forma un ngulo con relacin
a la superficie horizontal sobre la que estamos ubicados. El objeto lanzado ir elevndose y
alejndose de nosotros hasta alcanzar una altura mxima. A partir de ese momento
continuar alejndose de nosotros e ir perdiendo altura hasta caer sobre la superficie
horizontal. Si denominamos y al valor de la altura alcanzada en cada instante t por el objeto
lanzado y denominamos x al valor de su distancia en cada instante, medida en horizontal,
respecto del punto de lanzamiento, podemos escribir las relaciones que describen la
trayectoria parablica del objeto en funcin del tiempo t:

Escribir un algoritmo y un programa en C++ facilita cuatro funciones que permiten calcular
cuatro datos referidos a la trayectoria descrita por un objeto lanzado mediante tiro
parablico:

Funcin alturaMaxima(v, angulo) que devuelve la mxima altura alcanzada por el objeto.
Funcin tiempoMaximo(v, angulo) que devuelve el tiempo que tarda el objeto en alcanzar
esa altura mxima, medido desde el instante en que fue lanzado. Funcin distanciaCaida(v,
angulo) que devuelve el alejamiento horizontal del objeto respecto del punto de
lanzamiento, que corresponde a la distancia entre el punto de lanzamiento y el punto de
cada. Funcin tiempoCaida(v, angulo) que devuelve el tiempo que ha tardado el objeto en
caer, medido desde el instante en que fue lanzado.

Resolucion:

#include <iostream>

#include <cmath>

using namespace std;

int main()

int veloc, angulo;

float amax, tmax, dcaida, tcaida;

const float g=9.81, pi=3.141592;

cout<<"Ingrese velocidad de la pelota:";

cin>>veloc;

cout<<"Ingrese angulo de la inclinacion:";

cin>>angulo;
if (veloc>0 && angulo>0)

amax=pow(veloc, 2)* pow(sin(angulo*pi/180),2)/(2/g);

tmax=veloc*sin(angulo*pi/180)/g;

tcaida=2*tmax;

dcaida=veloc*cos(angulo*pi/180)*tcaida;

cout<<"\nLa altura maxima es:"<<amax;

cout<<"\nEl tiempo maximo es;"<<tmax;

cout<<"\nLa distanciade caida es;"<<dcaida;

cout<<"\nEl tiempo de caida es:"<<tcaida;

else cout<<"\nLos valores ingresados son incorrectos";

return 0;

Problema 2: Se pide realizar un algoritmo y un programa que calcule el centro de


masas de un sistema de n masas puntuales. Para ello el algoritmo pedir conjunto de tres
nmeros reales: la coordenada x del punto, la coordenada y y su masa m; estas sern
almacenadas en un arreglo. El nmero n de masas se obtendr cuando se ingrese una masa
menor o igual a cero. El algoritmo mostrar como resultado las coordenadas xg y yg del
centro de masas del conjunto de puntos que se han introducido. Las frmulas que dan la
posicin del centro de gravedad son las siguientes.
Resolucion:
#include <iostream>

#include <cmath>

using namespace std;

int main ()

int coordx, coordy;

float masa,sumx,sumy,sumam;

float centromx,centromy,n,coordenada;

cout<<"Ingrese la coordenada x:";

cin>>coordx;

cout<<"Ingrese la coordenada y:";


cin>>coordy;

cout<<"Ingrese la masa:";

cin>>masa;

n=0;

sumx=0;

sumy=0;

sumam=0;

while (masa>0)

sumx=coordx+masa+sumx;

sumy=coordy+masa+sumy;

sumam=masa+sumam;

n=n+1;

cout<<"Ingrese la coordenada x:";

cin>>coordx;

cout<<"Ingrese la coordenada y:";

cin>>coordy;

cout<<"Ingrese la masa:";

cin>>masa;

centromx=sumx/sumam;

centromy=sumy/sumam;

cout<<"\nLa coordenada del centro de masas es ("<<centromx<<","<<centromy<<")";

return 0;

Problema 3: RAIZ CUADRADA (METODO DE NEWTON) Escribir una funcin que


calcule la raz cuadrada de un nmero usando el mtodo de Newton de aproximacin por
intervalos. Ejemplo: Para el clculo de la raz cuadrada de 25 el algoritmo toma como
intervalo inicial: [0, 25]. 1. Calcula el punto medio del intervalo [0, 25]: 12.5. Como (12.5)2 >
25, toma como nuevo intervalo: [0, 12.5] . 2. Calcula el punto medio del intervalo [0, 12.5]:
6.25 . Como (6.25)2 > 25, toma como nuevo intervalo: [0, 6.25] . 3. Calcula el punto medio
del intervalo [0, 6.25]: 3.125 . Como (3.125)2 < 25, toma como nuevo intervalo: [3.125,
6.25] . 4. Calcula el punto medio del intervalo [3.125, 6.25]: 4.6875 . Como (4.6875)2 < 25,
toma como nuevo intervalo: [4.6875, 6.25] . 5. .........................................................
Finalmente el bucle termina cuando el valor absoluto de la diferencia entre el nmero y el
punto medio al cuadrado es menor que un cierto EPSILON (Por ejemplo EPSILON = 10-5) y
escribe 4.9999........ como solucin.

Resolucion:

#include <iostream>

using namespace std;

double raiz_cuadrada(double numero, double aproximacion, int n);

double raiz_cuadrada(double numero);

int main()

float numero;

cout<<"Ingrese un numero:";

cin>>numero;

if(numero !=0){

double num = raiz_cuadrada(numero);

cout<<"La raiz cuadrada de"<<numero<<" es:" <<raiz_cuadrada(numero);

else {cout<<"Ingrese un numero diferente de cero";

double raiz_cuadrada(double numero)

return raiz_cuadrada(numero,1,0);

double raiz_cuadrada(double numero, double aproximacion, int n)

{
double aproximacionantes = aproximacion;

aproximacion = aproximacion - (((aproximacion * aproximacion)-numero)/(2*aproximacion));

if(aproximacion == aproximacionantes || n>50);

return aproximacion;

return raiz_cuadrada(numero,aproximacion,++n);

Problema 4: Una casa de juegos LAS VEGAS tiene una mquina de juego de dados.
Las reglas de juego son sencillas: Un jugador lanza dos dados. Cada dado tiene caras. Estas
caras tienen 1, 2, , , 5, y puntos. Una vez que los dados se detienen, se calcula la suma de
los puntos en las dos caras superiores. Si la suma es 7 u once en el primer tiro, el jugador
gana, si es 2, o 12 en el primer tiro, el jugador pierde (es decir, la casa gana). Si la suma es
, 5, , 8, 9 0 10 en el primer tiro, entonces la suma se vuelve el punto del jugador. Para
ganar, el jugador debe continuar lanzando los dados hasta que llega a su punto. El jugador
pierde al lanzar un siete antes de llegar al punto. Hacer un programa en C o C++ que simule
un juego de dados en el casino: el jugador ingresa al casino y se sienta en la mquina,
ingresa su nombre y el monto de dinero a jugar, la casa de juego empezar a jugar con el
doble del dinero que empieza el jugador. Al empezar cada juego de dados el programa debe
de preguntar al jugador el importe de la apuesta y validar si la cantidad de la apuesta es la
correcta (no debe apostar ms de lo que tiene, ni mayor a la cantidad que tiene la casa). El
juego termina en los siguientes casos: cuando se retira voluntariamente el jugador, cuando
pierde todo su dinero el jugador y cuando la casa quiebre. Cada vez que apueste el jugador el
juego debe mostrar en pantalla las cantidades que tienen el jugador y la casa. Despus de
terminar el juego la mquina debe mostrar en pantalla el monto final del jugador, el monto
que le queda a la mquina, si el jugador ha ganado o ha perdido indicando el monto

Resolucion:

#include<iostream>

#include<stdlib.h>

#include<time.h>

using namespace std;

int main()

int valordado1,valordado2,sumadados;
int estadojuego, suma, puntaje;

int valordado, i;

int monto,montoc, montoap,montoapl,decidir,lol;

char nombre[20],nombre1[20],nombre2[20],nombre3[20];

srand(time(NULL));

cout<<"Ingrese monto del jugador:";

cin>>monto;

montoc=2*monto;

cout<<"Ingrese el monto a apostar:";

cin>>montoap;

cout<<"Escribe tus nombres y apellidos:"<<endl;

cin>>nombre>>nombre1>>nombre2>>nombre3;

decidir=1;

if(montoap<=monto && montoap<=montoc && monto>0 && montoc>0)

while (monto>0 && montoc>0 && decidir==1);

cout<<"\nEl monto del jugador es:"<<monto<<"\nEl valor de la casa es:"<<montoc;

valordado1=1 + rand() % 6;

valordado2=1 + rand() % 6;

sumadados = valordado1 + valordado2;

cout<<"\nTirada del jugador"<<valordado1<<"+"<<valordado2<<"="<<sumadados;

switch(sumadados)

case 7:

case 11:

estadojuego=1;

break;

case 2:
case 3:

case 12:

estadojuego =2;

break;

default:

estadojuego =3;

puntaje = sumadados;

cout<<"n\El puntaje es"<<puntaje;

while (estadojuego ==3)

valordado1= 1 + rand() % 6;

valordado2= 1 + rand() % 6;

sumadados = valordado1 + valordado2;

cout<<"\nTirada del jugador"<<valordado1<<" + "<<valordado2<<" = "<<sumadados;

if(sumadados == puntaje)

estadojuego = 1;

else if (sumadados == 7)

estadojuego = 2;

if(estadojuego == 1)

(monto=monto+montoap);

montoc=montoc-montoap;

if(estadojuego ==1 );

else if (estadojuego ==2)

monto =monto-montoap;
montoc=montoc+montoap;}

if(estadojuego == 1)

cout<<"n\El jugador gana";

else

cout<<"n\El jugador pierde";

if(monto>0 && montoc>0)

{cout<<"\nSi decide continuar pulse 1:";

cin>>decidir;

if (decidir ==1)

{cout<<"Ingrese el monto a apostar:";

cin>>montoap;

else

cout<<"\nJuego Terminado";}

else

cout<<"\nJuego Terminado";

Vous aimerez peut-être aussi