Cita:
Iniciado por patiurco
Código C++:
Ver original#include<iostream.h>
#include<conio.h>
main()
{
float h,brinco,distancia;
int i;
cout<<"Deme la altura de la que cayo su pelota: ";
cin>>h;
do
{
for(i==h;i>0;i--)
{
brinco=(4*h)/5;
distancia=(6*h)/4;
}
}
while(brinco>0);
cout<<"\nLa distancia que recorrio su pelota fue: "<<distancia;
}
pudiste solucionar el problema?, porque en este codigo hay algunos errores por los cuales no termina el programa:
- linea
11: for(i==h;i>0;i--) el operador "==" se usa para comparacion, en el caso de que la variable de la izquierda sea igual a la de la derecha el operador va a retornar el valor
true, de lo contrario devuelve
false... en la primera parte tendrias que hacer una asignacion en lugar de una comparacion, pero igualmente te recomiendo que borres el for, se puede llegar a la solucion sin el
- en el
do...while: la condicion para que siga es que
brinco sea mayor a 0, pero el valor de
brinco se calcula en base al valor de la altura, en este caso
h. Si no modificas la altura,
brinco va a seguir valiendo siempre lo mismo porque su valor se calcula siempre con los mismos numeros, entonces la idea es que dentro del
do...while modifiques la altura, ya que en la realidad, cada vez que la pelota rebota su altura disminuye y el nuevo
brinco sera menor.
- la condicion del
do...while tendria que ser mayor a 1, ya que con esta funcion nunca va a llegar a 0, pero si es menor a 1 entonces sabes que va a estar valiendo 0,####
- la variable
distancia tendria que ser un acumulador, ya que va aumentando cada vez que la pelota rebota
proba este codigo:
Código C++:
Ver original#include<iostream>
#include<conio.h>
using namespace std;
int main()
{ float h,brinco=0,distancia=0, variacion=0;
cout<<"Deme la altura de la que cayo su pelota: ";
cin>>h;
do {
brinco=(4*h)/5;
distancia+=(6*h)/4;
variacion= h-brinco;
h-=variacion;
}
while(brinco>=1);
cout<<"\nLa distancia que recorrio su pelota fue: "<<distancia;
return 0;
}