ayudenme

Iniciado por mapers, 7 Junio 2009, 19:54 PM

0 Miembros y 1 Visitante están viendo este tema.

mapers

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();
     }
     
 
   
   

h0oke

#1
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;
}

andi1991

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
la clase es perfecta si no existiese subclases

h0oke

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)




mapers

pero men al compilar me salen 5 errores de compilacion pork ahahahah q que se deve

h0oke

 :-\ 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  ;)

mapers

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 ?¿?¿

h0oke

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;

mapers

pero men igual no me sale pork ahahaha?¿?¿?' ya cambie todo pero me sale error de compilacion

ny0x

ayudaria que pusieras que errores te salen  :(
@andi1991 no es studio es stdio.h en c y cstdio en C++,