Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include <iostream>
#include <time.h>

using namespace std;

int main()
{
    int cnt,i;
    int a[3];
    cnt=0;
    srand ( time(NULL) );
    for (i=0; i< 3; i++)
    {
        a[i]=rand() %6 +1;
        if(a[i]==6){cnt++;}
    }
    switch(cnt)
    {
        case 0:cout<<"Pesimo"<<endl;
                break;
        case 1:cout<<"Regular"<<endl;
                break;
        case 2:cout<<"Muy bien"<<endl;
                break;
        case 3:cout<<"Exelente"<<endl;
                break;
    }
    system("pause");
    return 0;
}
Título: Re: ayudenme
Publicado por: andi1991 en 8 Junio 2009, 00:43 AM
CitarDiseñ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.
#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
Citary 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 (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
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:

if( (dado1 + dado2 + dado3) == 18 ) 
printf( "Excelente");


equivale a:

Código (cpp) [Seleccionar]
if( (dado1 + dado2 + dado3) == 18 )
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 (cpp) [Seleccionar]
#include <iostream>


int main ()
{
    int dado1,dado2,dado3;
    std::cout<<"arroje el primer dado";
    std::cin>>dado1;
    std::cout<<"arroje el segundo dado";
    std::cin>>dado2;
    std::cout<<"arroje el tercer dado";
    std::cin>>dado3;

    if( (dado1 + dado2 + dado3) == 18 )
     std::cout<<"Exelente"<<std::endl;
     else if
     ((dado1+dado2) == 12 || (dado1+dado3) == 12 || (dado2+dado3) == 12 )
     std::cout<<"Muy bien"<<std::endl;
     else if
     ( dado1 == 6 || dado2 == 6 || dado3 == 6 )
     std::cout<<"Regular"<<std::endl;
     else
     std::cout<<"Pesimo"<<std::endl;
     system("pause");
     return 0;
}
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
Citarprokurare 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.

Citarmuxas 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