elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda en c++  (Leído 1,731 veces)
howaboutno

Desconectado Desconectado

Mensajes: 38


Ver Perfil
ayuda en c++
« en: 25 Abril 2013, 19:29 pm »

Hola! tengo un pequeño problema de donde no consigo avanzar.
Necesito generar unos datos aleatoriamente y me he tapado con:
tengo un string numero_empleado de dimension 6.
para las 2 primeros digitos tiene que ser 05 o 06 o 08 y  los restantes cualquier numero.
había pensado en ponerlo como numero_empleado[1]='05' y así sucesivamente
pero luego me di cuenta de que eso no me servía.
Alguna idea?ayuda?


En línea

diskontrol

Desconectado Desconectado

Mensajes: 89


RAWR!


Ver Perfil
Re: ayuda en c++
« Respuesta #1 en: 25 Abril 2013, 19:50 pm »

Una forma rápida de hacerlo es generar números aleatorios sin repetir del 1 al 3; si sale 1 pon un 5, si sale 2 por un 6...


En línea

Siempre ten tus cosas cuando las necesites con @Dropbox. ¡Una cuenta de 2 GB es gratis! http://db.tt/YxRhsCI
howaboutno

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: ayuda en c++
« Respuesta #2 en: 29 Abril 2013, 15:23 pm »

habia pensado en algo asi, alguien me puede decir si está bien?
Código:
int filtro (char num_emple[6])
{
if(strlen(num_emple)!=6)
{
return 0; //incorrecto
}
else if (strchr("0",num_emple[0])==NULL)
{
return 0;
}
else if(strchr("123",num_emple[1])==NULL)
{
return 0;
}
return 1; // correcto
}
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda en c++
« Respuesta #3 en: 30 Abril 2013, 14:40 pm »

Si se trata de generar un numero como ya te comentaron puedes utilizar las funciones srand para inicializar la semilla y rand para generar el siguiente numero aleatorio, los prototipos de ambas funciones se encuentran en el encabezado <cstdlib>.

En el caso de C basta con utilizar sprintf. Por ejemplo:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main(void)
  6. {
  7.   char *pref[] = {
  8.   "05",
  9.   "06",
  10.   "08"
  11.   };
  12.   int num;
  13.   char codigo[7];
  14.  
  15.   srand((unsigned) time(NULL));
  16.  
  17.   sprintf(codigo, "%s%04d", pref[rand() % 3], rand() % 10000);
  18.   printf("%s\n", codigo);
  19.  
  20.   return EXIT_SUCCESS;
  21. }

En el caso de C++ (C++98) hay algunos problemas ya que este no provee una función para la conversión de un entero a cadena
(en su lugar se debe utilizar un objeto de la clase stringstream). Con el nuevo estándar de C++ (C++11) se puede utilizar to_string.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines