Ayuda con un problema en c++

Publicado en 'Estudiantes' por melo2412, 20 Abr 2013.





  1. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111




    El programa si corre pero no hace lo que quiero no copio el enunciado por que se entiende
    en todo me sale agudo :\

    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    main()
    { float angulo;
    cout<<"Ingrese el angulo : ";
    cin>>angulo;
    if (angulo<0)
    {cout<<"Intente con un angulo positivo";}
    else if( angulo=0)
    {cout<<"Nulo";}
    else if( angulo<90)
    {cout<<"agudo"; }
    else if( angulo=90)
    {cout<<"Recto"; }
    else if( angulo<180)
    {cout<<"Obtuso"; }
    else if( angulo=180)
    {cout<<"Llano"; }
    else if( angulo<360)
    {cout<<"Concavo"; }
    else if( angulo=360)
    {cout<<"Completo"; }
    else if(angulo>360)
    {cout<<"intende de vuelta"; }
    getch();
    }

    gracias :)
     


  2. lordjanc

    lordjanc Miembro de plata

    Registro:
    27 Mar 2011
    Mensajes:
    2,784
    Likes:
    1,606
    Temas:
    8
    debes poner if(angulo == 0), si lo pones angulo=0 es como si asignaras el valor de 0 al angulo y el if no lo va a leer

    tmb en el otro if(angulo<180) debes parametrarlo mejor asi: if(90<angulo<180) para q te salga obtuso. tmb por eso te bota q siempre es agudo
     
    Última edición: 20 Abr 2013
    A melo2412 le gustó este mensaje.
  3. kharlozcr9

    kharlozcr9 Suspendido

    Registro:
    13 Mar 2010
    Mensajes:
    824
    Likes:
    236
    Temas:
    3
    el de arriba tiene razón, en c y c++ una igualdad se representa como ==
     
  4. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
    cuando pongo 400 me sale llano :C
     
    Última edición: 20 Abr 2013
  5. lordjanc

    lordjanc Miembro de plata

    Registro:
    27 Mar 2011
    Mensajes:
    2,784
    Likes:
    1,606
    Temas:
    8
    ya le cambiastes a todos por == y los parametrastes ? mandame como q queda el programa
     
  6. carpediem.tf

    carpediem.tf Suspendido

    Registro:
    1 Abr 2012
    Mensajes:
    2,515
    Likes:
    1,396
    Temas:
    16
    una buena práctica para evitar el problema del == que ya te mencionó el forista de arriba es poner la constante primero en la validación:
    if(0==angulo){/*to do...*/}
    de manera que si se te pasa un igual se producirá en error ya que no se puede hacer la asignación a la constante:
    if(0=angulo){/*error...*/}
    -------------------------------------------------------------------------------------
     
  7. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    main()
    { float angulo;
    cout<<"Ingrese el angulo : ";
    cin>>angulo;
    if (angulo<0)
    {cout<<"Intente con un angulo positivo";}
    else if( angulo==0)
    {cout<<"Nulo";}
    else if( 0<angulo<90)
    {cout<<"agudo"; }
    else if( angulo==90)
    {cout<<"Recto"; }
    else if( 90<angulo<180)
    {cout<<"Obtuso"; }
    else if( angulo=180)
    {cout<<"Llano"; }
    else if( 180<angulo<360)
    {cout<<"Concavo"; }
    else if( angulo==360)
    {cout<<"Completo"; }
    else if (angulo>360)
    {cout<<"intende de vuelta"; }
    getch();
    }

    ahora sale agudo :(
     
  8. zimulador

    zimulador Suspendido

    Registro:
    6 Abr 2012
    Mensajes:
    1,105
    Likes:
    298
    Temas:
    35
    #include <iostream.h>
    #include <conio.h>
    #include <stdio.h>

    void main()
    {

    float angulo=0;

    cout<<"ingrese un angulo: ";
    cin>>angulo;
    cout<<endl;

    if (angulo<0)
    {
    cout<<"Intente con un angulo positivo";
    }

    if (angulo==0)
    {
    cout<<"nulo"<<endl;
    }

    if (angulo<90)
    {
    cout<<"agudo"<<endl;
    }

    if (angulo==90)
    {
    cout<<"recto"<<endl;
    }

    if (angulo>90 && angulo<180)
    {
    cout<<"obtuso"<<endl;
    }

    if (angulo==180)
    {
    cout<<"llano"<<endl;
    }

    if (angulo>180 && angulo<360)
    {
    cout<<"concavo"<<endl;
    }

    if (angulo==360)
    {
    cout<<"completo"<<endl;
    }

    if (angulo>360)
    {
    cout<<"Intente de vuelta"<<endl;
    }

    getch();

    }
     
    A velkan9 y melo2412 les gustó este mensaje.
  9. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
    Por que pusiste angulo=0 da igual si pones solo float angulo ? recién estoy q aprendo
     
  10. velkan9

    velkan9 Suspendido

    Registro:
    11 Ene 2011
    Mensajes:
    5,107
    Likes:
    2,540
    Temas:
    22
    si para este caso da igual , en los contadores es donde si se tiene que declarar antes.

    te debe compilar y funcionar el codigo antes escrito .

    no te hagas bolas con los else if , mejor simplificarlo solo con if .
     
  11. zimulador

    zimulador Suspendido

    Registro:
    6 Abr 2012
    Mensajes:
    1,105
    Likes:
    298
    Temas:
    35
    sino le pones = 0 lo más probable es que si funcione, pero siempre es recomendable ponerle un valor inicial.
     
  12. carpediem.tf

    carpediem.tf Suspendido

    Registro:
    1 Abr 2012
    Mensajes:
    2,515
    Likes:
    1,396
    Temas:
    16
    En primer lugar:
    = es un operador de asignación, es decir se usa para asignar un valor a una variable.
    == es un operador de relación u operador lógico, se usa para hacer evaluaciones.
    De manera que si quieres hacer una evualación debes usar ==, por ejemplo:
    PHP:
    /*este código NO escribirá en pantalla nada puesto que 90 != 0*/
    angulo 90;
    if(
    0==angulo)
    {
    cout<<"escriba un numero mayor a cero.";}

    /*este código en cambio SÍ escribirá en el mensaje en pantalla puesto que
    lka asignación angulo=0(angulo ahora tiene el valor 0) retorna un true*/
    angulo 90;
    if(
    angulo=0)
    {
    cout<<"escriba un numero mayor a cero.";}
    Para el problema que presentas,recuerda que una evaluación es más eficiente que dos o más evaluaciones:
    PHP:

        float angulo
    ;
        
    cout<<"Ingrese el angulo : ";
        
    cin>>angulo;

        if (
    angulo<0)
        {
        
    cout<<"Intente con un angulo positivo";
        }
        else if(
    == angulo)
        {
        
    cout<<"Nulo";
        }
        else if(
    90 angulo)
        {
        
    cout<<"agudo";
        }
        else if(
    90 == angulo)
        {
        
    cout<<"Recto";
        }
        else if(
    180 angulo)
        {
        
    cout<<"Obtuso";
        }
        else if(
    180 == angulo)
        {
        
    cout<<"Llano";
        }
        else if(
    360 angulo)
        {
        
    cout<<"Concavo";
        }
        else if(
    360 == angulo)
        {
        
    cout<<"Completo";
        }
        else if (
    360 angulo)
        {
        
    cout<<"intende de vuelta";
        }
    happy coding
     
    Última edición: 21 Abr 2013
    A melo2412 le gustó este mensaje.
  13. duelmaster

    duelmaster Suspendido

    Registro:
    4 Abr 2013
    Mensajes:
    334
    Likes:
    225
    Temas:
    3
    saben como ejecutar c++ en visual studio, se puede?
     
  14. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    main ()
    { char codigo;
    int compradas;
    float costo;
    cout<<"Ingrese el codigo del producto : "<<endl;
    cin>>codigo;
    if (codigo=='A')
    {costo=23.50;
    cin>>costo;
    cout<<"el costo es"<<costo;}
    else if (codigo=='B')
    {costo=32.00;
    cin>>costo;
    cout<<"el costo es"<<costo;}
    else if (codigo=='C')
    {costo=25.50;
    cin>>costo;
    cout<<"el costo es"<<costo;}
    getch();
    }

    En este problema no imprime el costo ayuden :c
     
  15. velkan9

    velkan9 Suspendido

    Registro:
    11 Ene 2011
    Mensajes:
    5,107
    Likes:
    2,540
    Temas:
    22
    sacale eso que te resalte en negrita , cuando le asignas un valor no es necesario ponerle el cin>> , eso se pone cuando asignas por entrada de teclado.
     
    A melo2412 le gustó este mensaje.
  16. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
    #include <iostream.h>
    #include <conio.h>
    #include <math.h>
    main ()
    { char codigo;
    int compradas;
    float costo,j,descuento;
    cout<<"Ingrese el codigo del producto : "<<endl;
    cin>>codigo;
    cout<<"Ingrese el numero de unidades compradas : "<<endl;
    cin>>compradas;
    if (codigo=='A')
    {costo=23.50; }
    else if (codigo=='B')
    {costo=32.00;}
    else if (codigo=='C')
    {costo=25.50;}
    j=costo*compradas;
    if (j>500)
    {j=j*9/10
    descuento=j/10;
    cout<<"El monto total de la compra es : "<<j<<endl;
    cout<< " El descuento es : " <<descuento<<endl;}
    else (j<=500)
    {cout<<"El monto total de la compra es : "<<j<<endl;
    cout<< " No hay descuento "; }
    cout<<"el monto a pagar es : "<<j;
    getch();
    }

    otra vez por favor ayuden no encuentro mi eror
     
  17. mbellido

    mbellido Miembro de plata

    Registro:
    3 Abr 2011
    Mensajes:
    2,971
    Likes:
    1,309
    Temas:
    12
  18. melo2412

    melo2412 Miembro de bronce

    Registro:
    4 Ene 2011
    Mensajes:
    1,057
    Likes:
    137
    Temas:
    111
  19. velkan9

    velkan9 Suspendido

    Registro:
    11 Ene 2011
    Mensajes:
    5,107
    Likes:
    2,540
    Temas:
    22
    que te sale ? te compila ? trata de poner ese j=(j*9)/10
     
  20. mbellido

    mbellido Miembro de plata

    Registro:
    3 Abr 2011
    Mensajes:
    2,971
    Likes:
    1,309
    Temas:
    12
    ¿Y así te enseñan? Esto es una muy muy muy mala práctica en C++. Para eso el lenguaje te proporciona switch.