Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2011, 12:50
jorge1409
 
Fecha de Ingreso: junio-2011
Mensajes: 6
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Manejo de excepciones

Hola Soy Nuevo en el lenguaje C++ y además soy nuevo en el foro, y se me ha presentado un problema, necesito crear un "programita" que me halle el el numero de metros que que avanza una bicicleta, conociendo el diametro de las ruedas y el numero de vueltas que han dado ella (la rueda).

lo primero que se me ocurrió fue con condicionales!! pero mi docente me dijo que era un mal método de programación usar tantos Condicionales (Y no me dijo nada mas!!! ¬¬) entonces estuve leyendo y averiguando y encontre por alli que se podia hacer con manejo de excepciones!!! pero creo que es muy avanzado para mi que apenas estoy comenzando. e hize el siguiente ejemplo. Creo que funciona bien me lanza el error, PERO me muestra la respuesta a pesar que lanza error. Me podrían dar una manito!!! ...

Gracias de antemano.

ah se me olvidaba los errores son que ni el Diámetro ni el numero de vueltas pueden ser menores que 0!!!

Código c++:
Ver original
  1. /*
  2. Jorge Villada
  3. Universidad del valle - Palmira, colombia
  4. Cuantos metros se avanza en una bicicleta cuyas
  5. ruedas tienen un diámetro D; después de que
  6. estas han girado N veces.
  7. */
  8. #include <iostream>
  9. using namespace std;
  10. //Prototipo de funcion hallarMetros
  11. float hallarMetros (float, float );
  12. int main(){
  13.        //defino las variables que necesito
  14.         float d,n;
  15.         cout << "Introduce el Diametro de la rueda de la Bici: ";
  16.         cin >> d;
  17.         cout << "Introduce el numero de vueltas que da la Bici: ";
  18.         cin >> n;
  19.         try{
  20.             if (d <= 0){
  21.                 string err ("Error, el diametro tiene que ser mayor que 0");
  22.                 throw err;
  23.             }
  24.             if (n < 0){
  25.                 string err ("Error el numero de vueltas tiene que ser mayor que 0");
  26.                 throw err;
  27.             }
  28.         }
  29.         catch (string error) {
  30.             cout << error << endl;
  31.         }
  32.        cout << hallarMetros(d,n);
  33.        return 0;
  34. }
  35. //funcion hallarMetros
  36. float hallarMetros (float D, float N){
  37.       float hM;
  38.        hM = 3.1416 * D * N;
  39.       return hM;
  40. }

Última edición por jorge1409; 30/06/2011 a las 13:03