Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 7 Junio 2009, 19:54 pm



Título: ayudenme
Publicado por: mapers en 7 Junio 2009, 19:54 pm
tenbgo  un problema que me dejaron quisiera que me ayuden     


Diseñe un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en base a la cantidad seis obtenidos, de acuerdo a lo siguiente: tres seis, excelente; dos seis, muy bien; un seis, regular; ningún seis, pésimo.



y mi codigo es este pero no me funka a ver en que me equiboke ayudnem opp`s



#include <iostream.h>
#include <conio.h>
#include <studio>


int main ()

int dado1,dado2,dado3;


{
    cout<<"arroje el primer dado";
    cin>>dado1;
    cout<<"arroje el segundo dado";
    cin>>dado2;
    cout<<"arroje el tercer dado";
    cin>>dado3;
   
    if( dado1 + dado2 + dado3 == 18 ) 
    { 
       printf( "Excelente");
        }
     else if
     (dado1+dado2 == 12 || dado1+dado3 == 12 || dado2+dado3 == 12 )
     {
     printf("Muy bién");
     }
     else if
     ( dado1 == 6 || dado2 == 6 || dado3 == 6 )
     }
         printf("regular");
        {
     else
      printf("pesima");
      getch();
     }
     
 
   
   


Título: Re: ayudenme
Publicado por: h0oke en 7 Junio 2009, 20:06 pm
Mira este ejemplo:

Código
  1. #include <iostream>
  2. #include <time.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    int cnt,i;
  9.    int a[3];
  10.    cnt=0;
  11.    srand ( time(NULL) );
  12.    for (i=0; i< 3; i++)
  13.    {
  14.        a[i]=rand() %6 +1;
  15.        if(a[i]==6){cnt++;}
  16.    }
  17.    switch(cnt)
  18.    {
  19.        case 0:cout<<"Pesimo"<<endl;
  20.                break;
  21.        case 1:cout<<"Regular"<<endl;
  22.                break;
  23.        case 2:cout<<"Muy bien"<<endl;
  24.                break;
  25.        case 3:cout<<"Exelente"<<endl;
  26.                break;
  27.    }
  28.    system("pause");
  29.    return 0;
  30. }


Título: Re: ayudenme
Publicado por: andi1991 en 8 Junio 2009, 00:43 am
Citar
Diseñe un algoritmo que califique el puntaje obtenido en el lanzamiento de tres dados en base a la cantidad seis obtenidos, de acuerdo a lo siguiente: tres seis, excelente; dos seis, muy bien; un seis, regular; ningún seis, pésimo.
Código:
#include <iostream.h>
#include <conio.h>
#include <studio>


int main ()

int dado1,dado2,dado3;


{
    cout<<"arroje el primer dado";
    cin>>dado1;
    cout<<"arroje el segundo dado";
    cin>>dado2;
    cout<<"arroje el tercer dado";
    cin>>dado3;
   
    if( (dado1 + dado2 + dado3) == 18 ) 
       printf( "Excelente");
     else if
     ((dado1+dado2) == 12 || (dado1+dado3) == 12 || (dado2+dado3) == 12 )
     printf("Muy bién");
     else if
     ( dado1 == 6 || dado2 == 6 || dado3 == 6 )
         printf("regular");
     else
      printf("pesima");
      getch();
     }


bueno eso es lo que quieres hacer.... antes de eso dejame decirte q cuando usas un if y solo es una instruccion que quieres hacer no son necesarias las llaves y todo lo qe has hecho lo puedes resumir con un switch...........

otra cosa:
no tiene sentido ingresar cuanto has sacado en cada dado, por lo tando deberias generar todos los dados con una simulacion aleatoria y ahi ver si ganastes o no!!! por eso mira y analiza el codigo de Emt.dev y veras q el no hace ningun ingreso sino el aleatorio para ver si ahi ganastes o perdistes...... saludos


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 00:49 am
Citar
y analiza el codigo de Emt.dev y veras q el no hace ningun ingreso sino el aleatorio para ver si ahi ganastes o perdistes...... saludos
Exacto... Ahora lo explico

Código
  1. for (i=0; i< 3; i++)    {        a[i]=rand() %6 +1;        if(a[i]==6){cnt++;}    }

Aqui se guarda en un array unidimensional, 3 valores aleatorios que van de 1 hasta 6.
Se utiliza un array ya que lo que quieres obtener con
Código
  1. int dado1,dado2,dado3;
Es un tipo de dato único, y para no deperdiciar 3 int's, se resumen en un array(Conjunto homogeneo de datos)





Título: Re: ayudenme
Publicado por: mapers en 8 Junio 2009, 02:34 am
pero men al compilar me salen 5 errores de compilacion pork ahahahah q que se deve


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 02:37 am
 :-\ Si te refieres al mío, se puede deber a que no tienes incluido en tus librerias a "time.h". Yo compilo con code::blocks  ;)


Título: Re: ayudenme
Publicado por: mapers en 8 Junio 2009, 02:44 am
pero dime ?¿?¿? si fuera solo con funcion cout??? como seria men   si lo planteo asi

INICIO
    // Declaración de variables
    ENTERO dado1, dado2, dado3
    CADENA calificacion

    // Entrada de datos
    LEER dado1, dado2, dado3  

    // Determina la calificación
    SI( dado1 + dado2 + dado3 == 18 )    
        calificacion = "Excelente"
    SINO SI( dado1+dado2 == 12 || dado1+dado3 == 12 || dado2+dado3 == 12 )
        calificacion = "Muy bién"
    SINO SI( dado1 == 6 || dado2 == 6 || dado3 == 6 )
        calificacion = "Regular"
    SINO
        calificacion = "Pésimo"

    // Salida de resultados
    IMPRIMIR calificacion
FIN


pero todo en fuyncion cout y cin ?¿?¿


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 02:48 am
Pues andi1991 te dio la respuesta. Unicamente debes cambiar printf por std::cout

ejemplo:

Código
  1. if( (dado1 + dado2 + dado3) == 18 )  
  2. printf( "Excelente");

equivale a:

Código
  1. if( (dado1 + dado2 + dado3) == 18 )
  2. std::cout<<"Exelente"<<std::endl;


Título: Re: ayudenme
Publicado por: mapers en 8 Junio 2009, 02:58 am
pero men igual no me sale pork ahahaha?¿?¿?' ya cambie todo pero me sale error de compilacion


Título: Re: ayudenme
Publicado por: ny0x en 8 Junio 2009, 03:02 am
ayudaria que pusieras que errores te salen  :(
@andi1991 no es studio es stdio.h en c y cstdio en C++,


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 03:08 am

Recien estuve mirando el código andi1991 tienes razón... estaba mal escrito... aqui te dejo el code verdadero:

Código
  1. #include <iostream>
  2.  
  3.  
  4. int main ()
  5. {
  6.    int dado1,dado2,dado3;
  7.    std::cout<<"arroje el primer dado";
  8.    std::cin>>dado1;
  9.    std::cout<<"arroje el segundo dado";
  10.    std::cin>>dado2;
  11.    std::cout<<"arroje el tercer dado";
  12.    std::cin>>dado3;
  13.  
  14.    if( (dado1 + dado2 + dado3) == 18 )
  15.     std::cout<<"Exelente"<<std::endl;
  16.     else if
  17.     ((dado1+dado2) == 12 || (dado1+dado3) == 12 || (dado2+dado3) == 12 )
  18.     std::cout<<"Muy bien"<<std::endl;
  19.     else if
  20.     ( dado1 == 6 || dado2 == 6 || dado3 == 6 )
  21.     std::cout<<"Regular"<<std::endl;
  22.     else
  23.     std::cout<<"Pesimo"<<std::endl;
  24.     system("pause");
  25.     return 0;
  26. }


Título: Re: ayudenme
Publicado por: mapers en 8 Junio 2009, 03:11 am
y  ya no va el conio??????    pork aun me sigue saliendo error claro que ahora son solo 2 errores     


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 03:13 am
Conio.h es una libreria para manejar "gráficos" en modo consola, en este caso no es necesario.

studio no existe, la que existe es stdio.h

En cuanto a la compilación fijate bien que yo lo compilo tranquilamente, y todo el code es standar de c++(exepto system())... o acaso tu quieres utilizar c?


Título: Re: ayudenme
Publicado por: mapers en 8 Junio 2009, 03:13 am
ya me salio gracias men haci los voya  hacer todos (Y) muxas gracias cuialkier cosa cuanto con ustedes ??¿?¿? prokurare aprender mas para aportar al foro?????


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 03:16 am
Citar
prokurare aprender mas para aportar al foro?????
Tienes idea sobre ortografía?  :xD... Solo trata de ser un poco más formal,por aqui rondan muchos user's que tienen sensible la vista.

Citar
muxas gracias cuialkier cosa cuanto con ustedes

Cuenta con el foro  ;)


Título: Re: ayudenme
Publicado por: ny0x en 8 Junio 2009, 03:19 am
no entiendo la obsecion por el system(pause) cuando se pueden usar soluciones mas estandar y/o elegantes  :¬¬


Título: Re: ayudenme
Publicado por: h0oke en 8 Junio 2009, 04:01 am
En c++ se tiende a utilizar cin.get()(pero a veces trae problemas porque queda el valor almacenado en el buffer); de vez en cuando. En c getchar().


Título: Re: ayudenme
Publicado por: Caro_La en 1 Febrero 2019, 16:48 pm
Podrían explicarme por favor qué significan las barras (parecidas a las de valor absoluto) en qué lenguaje de programación es y la primera condición la entendí, pero la segunda no daría lo mismo ? "Excelente"?


Título: Re: ayudenme
Publicado por: Shell Root en 1 Febrero 2019, 17:03 pm
&& = AND
|| = OR