Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ingresar numeros random

Estas en el tema de Ingresar numeros random en el foro de C/C++ en Foros del Web. Me parece que estoy haciendo cualquier cosa. Necesito cargar un vector de 5 "casilleros" y que me los llene con números random del 0 al ...
  #1 (permalink)  
Antiguo 17/11/2011, 08:51
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Ingresar numeros random

Me parece que estoy haciendo cualquier cosa.
Necesito cargar un vector de 5 "casilleros" y que me los llene con números random del 0 al 9.

Esto que hice está bien?

Código C++:
Ver original
  1. for (int i!=0; i<5, i++)
  2.     V[i]=random (9)
  3.     // Controlar que no se repita //
  4.     V[i] != V[i-1] hasta i=1
  5.     while (i!=0);
  6.     // Primera parte, para que la PC cargue 5 numeros random del 0 al 9 y no repita//

Porque me parece que no.
No entiendo :(
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #2 (permalink)  
Antiguo 17/11/2011, 09:01
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ingresar numeros random

para empezar hay lineas que no tiene sentido como esta:

V[i] != V[i-1] hasta i=1

Luego estas guardando todos los numeros y luego haces el chequeo. Habria que agregar llaves, y me parece que te falta el do.


Código C:
Ver original
  1. for (int i=0; i<5, i++)
  2.     do {
  3.          n=random (9);
  4.     } while ( serepite(V,i-1,n) != 1 );
  5.     V[i] = n;
  6. }

Ahi tienes un poco de logica. Faltaria crear la funcion "serepite" que verifica que el numero no se repita. Se les pasa como argumento un vector , hasta que posicion buscar y que numero buscar.

Saludos

Última edición por sam90; 17/11/2011 a las 09:37
  #3 (permalink)  
Antiguo 17/11/2011, 09:47
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Ingresar numeros random

Tiene lógica lo que me dices de que no tiene lógica, puesto que estoy aprendiendo en el aire. Estoy haciendo un programa para salvar el curso porque mi profesor nos quiere mandar a todos examen porque no dio nada en la clase y no sabemos nada, y estoy a manotasos de ahogado intentando hacer cosa por cosa.

Te agradezco mucho

El profesor puso que para cargar un vector desde pantalla con 5 casilleros era así
Código C++:
Ver original
  1. for (int i=0; i<5, i++)
  2.     {scanf("%d", v_cargado[i]);
  3.     (flushall);

Sería que integrado a lo que tu me dices quedaría así?

Código C++:
Ver original
  1. for (int i=0; i<5, i++)
  2.     {scanf("%d", v_cargado[i]);
  3.     (flushall);
  4.  do {
  5.          n=random (9);
  6.     } while ( serepite(V,i-1,n) != 1 );
  7.     V[i] = n;

Mi vector debe de llamarse pro ejemplo v_cargado, significa entonces que donde dice V[i] coloco v_cargado[i] ?
Por cierto, lo de serpiente no lo hemos utilizado nunca en la vida, ni se que es eso.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #4 (permalink)  
Antiguo 17/11/2011, 10:30
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Ingresar numeros random

Ok, como veo al parecer no han visto funciones sino que han hecho todo sobre el mismo main, si esto es asi, entonces tendriamos que haceralgo asi:

#include <stdio.h>
#include <time.h>
#include <iostream.h>
using namespace std;

Código C++:
Ver original
  1. int main(){
  2.     int V[5]; // Crear nuestro vector de 5 casillas
  3.     int n; // Aqui guardaremos el numero random que obtengamos con random(9)
  4.     bool existe; // Usaremos para checar si el numero ya esta en el vector
  5.     for(int i = 0; i < 5; i++) // Ir de 0 a 4, que son las casillas en el vector
  6.     {
  7.             srand((unsigned)time(0)); // Es utilizado para que luego al llamar rand(), este genere uno diferente, si no colocmos esto, rand() siempre retornara los mismos numeros
  8.             do{
  9.                 existe = false; // Ponemos el checador en false
  10.                 n = rand() % 10; // Se guarda el numero random en n
  11.                 for(int x = 0; x < i; x++) // Recorremos el vector de 0 a i-1( x < i, es lo mismo a poner x <= i-1)
  12.                 {
  13.                         if(V[x] == n) // Checamos si el valor del vector en la posicion x es igual a n
  14.                         {
  15.                                 existe = true; // Si es asi cambiamos existe a true
  16.                                 break; // Y terminamos el bucle for
  17.                         }
  18.                 }
  19.             }while(existe); // Hara esto mientras existe == true
  20.            
  21.             V[i] = n; // Guardamos en n en el vector en la posicion i
  22.     }
  23.     ///////////////////////////////////////////////
  24.     cout << "Resultado" << endl;
  25.     for(int i = 0; i < 5; i++) // Recorremos el vector de 0 a 4(Los 5 casilleros)
  26.     {
  27.             cout << V[i] << endl;  // Imprimimos el valor del vector en la posicion i
  28.     }
  29.     cin.get();cin.get();
  30.     return 0;
  31. }

P.D. random en C/C++ no existe sino rand() & es usado junto con srand(), random ahi como lo usas creo que es en java.
  #5 (permalink)  
Antiguo 17/11/2011, 10:59
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Ingresar numeros random

Muchas gracias nuevamente. Me ha servido MUCHÍSIMO que me explicaras para que es cada cosa, creo que acabo de aprender más contigo que con el profesor en el año.

Voy a seguir con esto para ver si puedo resolver el programa que necesito.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom
  #6 (permalink)  
Antiguo 17/11/2011, 11:16
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ingresar numeros random

Tambien ten en cuenta, que no tienes que mezclar el llenado del vector de forma aleatoria con el ingreso que hace el usuario. Cuando me constestaste mezclaste los dos.

Este juego primero se cargan los numeros de forma aleatoria. Luego el usuario ingresa cinco numeros. Si no son correcto va a seguir ingresando.

Y con el tema de que no sabes lo que son funciones, creo que las cosas son mucho mas faciles de ver usando funciones. Queda el codigo mas claro y entendible. Seria bueno que algo aprendas de eso.
  #7 (permalink)  
Antiguo 17/11/2011, 12:21
Avatar de valentina4you
Colaborador
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 1.623
Antigüedad: 13 años, 8 meses
Puntos: 285
Respuesta: Ingresar numeros random

Fuf! Si tendré que aprender. Ya estoy buscando libros de programación estructurada y buscando tutoriales básicos y demás para aprender, no sólo C+ sino a programar. Pienso aprender todo lo que el profesor debería habernos enseñado durante el verano.
__________________
Diseño Gráfico Profesional
www.valenn.com | Sigueme @valenncom | facebook/valenncom

Etiquetas: numeros, random
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:43.