Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BOONE en 18 Octubre 2008, 22:29 pm



Título: PROGRAMA USANDO CICLOS FOR
Publicado por: BOONE en 18 Octubre 2008, 22:29 pm
Hola.. necesito ayuda con un programa en c++

el programa es muy sencillo..es como una "adivinanza"

pide que adivines un numero y te da 10 oportunidades para acertar

si no aciertas pues te saca del programa..

les dejo el codigo qe empece como ejemplo jaja me sale raro S:


Código:
/ WHILE!!.cpp : main project file.

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"

void main()

{
int numero;
int contador;


printf("PROGRAMA ADIVINA EL NUMERO \n\n\n  ");

printf("Adivina un numero que este entre el 0 y el 100   ");
scanf_s("%d",&numero);

numero=82;
contador=1;

for(contador=1;contador<=12;contador=contador++)

do

{
if  (numero<=10)
{


printf("Estas muy lejos todavia...");
contador=2;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);

}
else
if (numero<=20)
{


printf("Te falta mas todavia..");
contador=3

printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);
}
else
if (numero<=30)
{

printf("Estas cerca ");
contador=4;

printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);
}
else
if (numero<=40)
{

printf("Sigue aumentando..");
contador=5;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);
}
else
if (numero<=50)
{

printf("Estas cerca del gran premio...");
contador=6;

printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);
}
else
if (numero<=60)
{

printf("Caliente..aumenta mas...");
contador=7;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);

}
else
if (numero<=70)
{

printf("A una puntita...");
contador=8;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);

}
else
if (numero<=80)
{

printf("Calientisisisisismo...");
contador=9;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);

}
else
if (numero<=90)
{

printf("hot...");
contador=10;


printf("Vuelve a intentarlo de nuevo ");
scanf("%d",&numero);
contador=10;

}
else
if (numero<=100)
{
printf("Te pasastesss...");
contador=11;

printf("Lo siento perdiste ");

}
else
if (numero==82)


printf("Bravo..adivinaste");
contador=12;

}

while(contador<=12);



system("pause");

}



Título: Re: PROGRAMA USANDO CICLOS FOR
Publicado por: The_Judgement en 18 Octubre 2008, 22:53 pm
Bueno, yo lo he intentado compilar en el Dev-C++ y para este compilador he encontrado varios errores:

-int main (void) en vez de void main ().

-La biblioteca stdafx.h no la tengo y creo que sobra si en vez de usar scanf_s usas scanf.

-En la línea en la que pones el contador a 3 te falta un ; al final.

-El bucle for que usas es absurdo usarlo teniendo un do while que hace lo mismo.

-El contador no tiene sentido al no incrementar cada vez que introduces un número.


Este código lo he hecho yo hará un tiempo, creo que es parecido:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //PROTOTIPOS
  5. void presentacion (void);
  6. void modulo_principal (int,int *);
  7.  
  8. int main (void)
  9. {
  10. //DECLARACIÓN DE VARIABLES
  11. int numero_aleatorio;
  12. int numero;
  13.  
  14. srand(time(0));
  15. numero_aleatorio = 512*(rand()%1001/(float)1000);
  16. modulo_principal(numero_aleatorio,&numero);
  17. system("pause");
  18. return 0;
  19. }
  20.  
  21. void presentacion (void)
  22. {
  23. system("cls");
  24. printf("*************************************************************************\n");
  25. printf("\t\t\t\tMASTERMIND\n");
  26. printf("*************************************************************************\n");
  27. printf("Adivine el número que el ordenador ha pensado en 9 intentos. El número está comprendido entre 0 y 512\n");
  28. }
  29.  
  30. void modulo_principal (int numero_aleatorio, int *numero)
  31. {
  32. int intentos = 0;
  33. do
  34. {
  35.        presentacion();
  36.       printf("Este es el %dº intento\n", intentos+1);
  37. printf("Introduzca el número: ");
  38. scanf("%d", &*numero);
  39. if(*numero < numero_aleatorio)
  40. {
  41. printf("Lo siento, el número que he pensado es mayor que %d\n", *numero);
  42. ++intentos;
  43. system("pause");
  44. }
  45. if(*numero > numero_aleatorio)
  46. {
  47. printf("Lo siento, el número que he pensado es menor que %d\n", *numero);
  48. ++intentos;
  49. system("pause");
  50. }
  51. }while(intentos != 9 && numero_aleatorio != *numero);
  52. if(*numero == numero_aleatorio)
  53. {
  54. printf("¡Enhorabuena! El número que había pensado es %d\n",numero_aleatorio);
  55. printf("Has usado %d intentos.\n", intentos+1);
  56. }
  57. else
  58. printf("Lo siento, ha perdido. El número era %d\n", numero_aleatorio);
  59. }

Espero que te ayude.

Saludos.


Título: Re: PROGRAMA USANDO CICLOS FOR
Publicado por: BOONE en 18 Octubre 2008, 23:58 pm
OOOOOH muchas gracias (:
me copie muchas cosas de tu programa aunque no le entendi a muchas
cosas que haces porque yo uso visual c++..me gustaria usar dev c++ porque
he escuchado que es mejor pero en mi escuela utilizamos visual c++ y no me
queda de otra xD..

muchas gracias..creo que ya me salio pero voy a seguirle modificando cosas

gracias :D


Título: Re: PROGRAMA USANDO CICLOS FOR
Publicado por: The_Judgement en 19 Octubre 2008, 13:40 pm
Si necesitas ayuda con mi código, di en qué partes e intentaré explicártelas.

Yo en clase uso Dev-C++, pero a la hora de usar el debugger y el editor de textos me quedo con el Visual Studio 2005, así que en casa uso Visual Studio. Yo creo que lo mejor es aprender a usar el Dev-C++ por que la forma de programar en él es más estándar y normalmente el código que programes en Dev-C++ será compatible con otros compiladores.

Saludos.


Título: Re: PROGRAMA USANDO CICLOS FOR
Publicado por: ^Tifa^ en 23 Octubre 2008, 18:40 pm
Ten mucho en cuenta la optimizacion (llamese tamano) de tu objeto final, no es requerido que utilizes cabeceras de las cuales no usaras ninguna funcion de esta.

Aqui te posteo tambien un codigo ejemplo... que realize haber si te puede servir.

Código:
#include <stdio.h>
#include <stdlib.h>

static unsigned int numero = 8;
static unsigned int numerito1;

int main(void)
{
   
int numerito = 0;

    fprintf(stdout, "Inserta un numero\n");
    fscanf(stdin, "%i", &numerito1);   

for ( ; numerito < 9;  ) {

if (numerito1 < numero) {
              fprintf(stdout, "El numero insertado es menor\n");
              fprintf(stdout, "Inserta un numero\n");
              fscanf(stdin, "%i", &numerito1);
              numerito++;
              getchar();
               }
else if (numerito1 > numero) {
              fprintf(stdout, "El numero insertado es mayor\n");
              fprintf(stdout, "Inserta un numero\n");
              fscanf(stdin, "%i", &numerito1);
              numerito++;
              getchar();
              }
else {
              fprintf(stdout, "Accertaste el numero!!\n"); 
              getchar();
              exit(0);
}
 
}

EXIT_SUCCESS;   
}


Título: Re: PROGRAMA USANDO CICLOS FOR
Publicado por: ISCJAIRO en 7 Diciembre 2011, 04:22 am
hola que tal  oye de pura casualidad no tendras un codigo que utilice microcontroladores,este programa tiene que hacer lo siguiente:
*programar al microcontrolador poniendole un numero
*que el usuario pide un numero desde teclado
*mostrar en el display si el numero introducido por el usaurio concuerda con el programado en el microcontrolador si es el mismo mandar un mensaje en el diaplay numero asertado,y si no mostrar al usuario que el numero programado en el microcontrolador esta en un rango mas abajo o mas arriba hasta que el usuario.
*si el numero es asertado es correcto que enciendas un par de leds

si lo tienes o me puedes ayudar si me lo podrias pasar antes del jueves 8 de diciembre del 2001
mandamelo a este correo je_secta_cha@live.com.mx por favor o dime si me lo puedes hacer es usando el programa pci simulator ide ESTE SIMULADOR SOPORTA BASIC,C Y ENSAMBLADOR,ESTE PROGRAMA ES MUY PARECIDO AL TUYO PERO YA LO PROBE Y ME MARCA UN ERROR ESPERO Y ME AYUDES ME URGE XFA