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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Generar matriculas aleatorias
« en: 6 Marzo 2011, 22:14 pm »

TENGO QUE HACER UN PROGRAMITA QUE GENERE MATRÍCULAS ALEATORIAS. UNA MATRIZ DE 20 FILAS X 8 ELEMENTOS CADA UNA. DE CADA FILA, DEL 0 AL 3 CONTENDRAN CIFRAS ALEATORIAS (DEL 0 AL 9), EL 4 SERA UN ESPACIO EN BLANCO, Y DEL 5 AL 7 SERAN LETRAS MAYUSCULAS GENERADAS ALEATORIAMENTE.
LUEGO, MOSTRARLA EN FORMA DE MATRICULA POR LINEA.
SOLO E PODIDO HACER DE MOMENTO LO QUE PONGO A CONTINUACIÓN, ESTOY EN ELLO...

SE ADMITEN SUGERENCIAS

Código
  1. #include <stdio.h>
  2. #define nfi 20
  3. #define nco 8
  4.  
  5. // Función Principal
  6. main ()
  7. {
  8. char letra[nfi][nco];
  9. int fila,num,col;
  10.  
  11. for (fila=0;fila<nfi;fila++)
  12.    for (col=0;col<nco;col++)
  13. fflush(stdin);
  14. getchar();
  15. }
  16.  


En línea

Mr.Blue


Desconectado Desconectado

Mensajes: 441



Ver Perfil WWW
Re: Generar matriculas aleatorias
« Respuesta #1 en: 6 Marzo 2011, 23:10 pm »

Código
  1. char matriz [20] [8];
  2.  
  3. for (i=0;i<21;i++){
  4. for (j=0;j<9;j++){
  5. if (j==4){
  6. matriz [i][j]=" ";
  7. else if (matriz [i][j]>=0 && matriz [i][j]<4){
  8. srand (1);
  9. int n=0; //en el main
  10. if (n<=9){
  11. rnd= rand();
  12. matriz [i][j]=rnd;
  13. n++;

Esta echo a las apuradas asiq puede aver algun error.
es como trabajar con cadenas, en si podes generar 20 matriculas de 8 digitos + 1 espacio
lo primero que pregunto cuando entro a recorrer la cadena es si j=4 si es asi es un espacio. Primera parte resuelta.
si no preguntas si la matriz en la pos i;j es mayor o igual q 0 y menor que 4.
Si es asi generas un numero aleatorio de 0 a 9 y lo guardas en la pos de la matriz.

El resto te lo dejo a vos, ya que no se realizan tareas.

Ultima pista para las letras aleatorias (Mira la tabla ascii)

Saludos-


En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Generar matriculas aleatorias
« Respuesta #2 en: 7 Marzo 2011, 03:44 am »

Bueno, te propongo esta solución, antes de nada tengo que decirte que no se si compila porque no estoy en linux y no puedo compilarlo, por otro lado no se si estará completamente correcto y si te valdrá la solución en C++, si no es así modificalo a tu gusto. Espero te sirva de ejemplo.

Código
  1. #include<iostream>
  2. using namespace std;
  3. int matricula[20][8]; //Variable global, cada fila representa una matricula
  4. /*
  5. Metodo que inicializa la matriz de las matriculas
  6. */
  7. void inicializa(void){
  8. for(int i=0;i<20;i++){//Recorremos todas las filas
  9. for(int j=0;j<3;j++) //Recorremos las tres primeras columnas para insertar números aleatorios
  10. matricula[i][j]=rand() % 10;//Con esta funcion se obtiene un numero aleatorio, se hace el modulo con 10 para obtener un valor entre 0 y 9
  11. matricula[i][3]=int(' ');//Asignamos el entero correspondiente al espacio en blanco
  12. for(int j=4;j<8;j++) //Recorremos el resto de columnas
  13. matricula[i][j]=rand () % (90-65+1) + 65; //Con esta funcion se asigna un valor entre 65 y 90 que son los valores decimales que representan los caracteres en mayusculas
  14. }
  15. }
  16. /*
  17. Metodo para mostrar por pantalla el contenido de la matriz
  18. */
  19. void muestra_por_pantalla(){
  20. for(int i=0;i<20;i++){
  21. for(int j=0;j<3;j++)
  22. cout<<matricula[i][j];//Primero mostramos los tres numeros
  23. cout<<char(matricula[i][3]); //Mostramos el espacio en blanco (se pone char porque la matriz es de enteros y lo que queremos mostrar es el caracter)
  24. for(int j=4;j<8;j++)
  25. cout<<char(matricula[i][j]);//Volvemos a hacer lo mismo pero para las letras
  26. cout<<endl;//Imprimimos retorno de carro
  27. }
  28. }
  29.  
  30. int main(void){
  31. while(true){//Bucle infinito, modificalo a tu gusto con la condición que quieras
  32. inicializa();
  33. muestra_por_pantalla();
  34. cin.get();
  35. }
  36. }

PD: Lo he compilado online y funcionaba perfectamente, espero te sirva.
PPD: Sr.Blanco los indices de los bucles están mal, si declaras la matriz de 20x8 en los bucles debes recorrerla mientras i<20 y mientras j<8 puesto que la numeración de bucles en casi todos los lenguajes va desde 0 hasta el valor con el se declaró menos uno. Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como generar una cadena de letras aleatorias... « 1 2 »
Programación Visual Basic
Danieldark 11 12,376 Último mensaje 17 Agosto 2007, 06:17 am
por HaDeS, -
DEMO: Intranet : Matriculas - Notas - Pagos
Desarrollo Web
Hadess_inf 4 3,778 Último mensaje 4 Noviembre 2010, 14:32 pm
por seele
Centinela, el programa que vigila las matrículas de nuestras carreteras
Noticias
wolfbcn 1 1,469 Último mensaje 4 Octubre 2015, 05:11 am
por Gambinoh
Problema de generar palabras aleatorias [URGENTE]
Java
IsmaelBFH 5 6,114 Último mensaje 12 Noviembre 2015, 16:18 pm
por PabloPbl
Esta web te permite generar caras aleatorias basadas en IA de gente que no ...
Noticias
wolfbcn 0 1,372 Último mensaje 14 Febrero 2019, 14:59 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines