Hola :hola:Verás, es que el programa es en C, asi que no me sirve eso que me has puesto.
Para generar un numero aleatorio con rand() tienes que hacer estoCódigo: Text
//Debes incluir estas dos librerias #include <cstdlib> #include <ctime> void main() { int valor; srand(time(NULL)); // generacion de una semilla a partir de los segundos del reloj valor= 1 + (rand() % 10); // en valor se almacena el numero aleatorio }
Espero que te sirva de ayuda, un saludo :kicking:
Hola :hola:Verás, es que el programa es en C, asi que no me sirve eso que me has puesto.
Para generar un numero aleatorio con rand() tienes que hacer estoCódigo: Text
//Debes incluir estas dos librerias #include <cstdlib> #include <ctime> void main() { int valor; srand(time(NULL)); // generacion de una semilla a partir de los segundos del reloj valor= 1 + (rand() % 10); // en valor se almacena el numero aleatorio }
Espero que te sirva de ayuda, un saludo :kicking:
HolaGracias, es que resulta que este ejercicio es de un libro de C, de Programacion en C, y no sé si es que el modo de usar numeros aleatorios es un modo antiguo. Pero podias porfavor ayudarme a usar el modo que tu me dices en esta practica. Es que soy nueva en esto, gracias.
Ese codigo que te he puesto es de C, y creo que te deberia funcionar, sobre la funcion randomize no tengo ni idea, yo use ese codigo para un programilla y va perfectamente
Un saludo :hola:
Holas :hola:Gracias me has ayudado mucho, eres muy amable, si puedes lee mi pregunta esa de las estructuras, a ver si entiendo mejor el fallo, porque es que no le entiendo.
Como veo que estas bastante preocupada con el programa ese, te he hecho un miniprograma que calcula las matrices aleatorias y las muestra por pantalla, lo he hecho pasando en las funciones variables float[4][5] en vez de puntero por que yo lo veo mas facil asi para recorrerlas
Los problemas de generar numeros , matrices o lo que sea aleatorio normalmente llevan asociados un rango de valores posibles, aunque no especificas entre que valores.Calcular valores aleatorios entre 0 y infinito no suele ser factible, asi que en el ejemplo lo he hecho con valores float entre 1,00 y 100,99 para que se vea mejor.Aunque tu puedes modificarlo a tu gusto :comp:
En el codigo te explico mas o menos como va el asunto,aunque hay un problema a la hora de generar los numeros aleatorios ya que la velocidad del procesador es bastante mayor que la del reloj, entonces no da tiempo a generar nuevas semillas entre componente y componente de la matriz.He solucionado esto un poco chapuceramente metiendole un retardo con un for, que siempre dependera del ordenador, por eso es una chapuza, si se te ocurre otra forma mejor que lo cambies.Código: Text
#include <stdio.h> #include <stdlib.h> #include <cstdlib> #include <ctime> float generarNumeroAleatorio(); void generarMatriz(float m[4][5]); void mostrarMatriz(float m[4][5]); void main() { do { float mat[4][5]; generarMatriz(mat); mostrarMatriz(mat); printf("\n\n Desea generar otra matriz---SI=ENTER / NO=n"); } while(getchar()!='n'); } // GENERACION DEL NUMERO ALEATORIO // Partiendo de que se quiere un numero aleatorio float entre 1 y 100, la parte decimal // la he restringido a 2 digitos float generarNumeroAleatorio() { float valor,entera,decimal;// valor sera el numero decimal aleatorio final,entera la parte // entera del numero y decimal la parte decimal srand(clock()); // tomo una semilla a partir de los segundos del reloj interno entera= 1 + (rand() % 100); // como rand() nos dara un numero entero del que no sabemos // entre que numeros estara debemos hacer %100 para restringirlo // entre 0 y 99, ademas le sumamos 1 a ese valor para que el // numero este entre 1 y 100 decimal= 1 + (rand() % 100); // para la parte decimal se procede igual que con la entera decimal/=100; // pero luego la divido por 100 para que sea decimal valor=entera+decimal; // finalmente sumo las dos partes y se lo asigno a valor return valor; // y lo devuelvo } //GENERAR UNA MATRIZ void generarMatriz(float m[4][5]) { int i,j; //indices apra recorrer la matriz for(i=0; i<4; i++) // recorro las filas { for(j=0; j<5; j++) // recorro las columnas { float numero=generarNumeroAleatorio(); //le asigno a numero el valor aleatorio m[i][j]=numero; // a cada valor de la matriz un numero aleatorio // que devuelve generarNumeroAleatorio() for(int t=0;t<1200000;t++) // Retardo para darle tiempo a srand a coger otra semilla { // para el siguiente numero aleatorio.UN poco chapucero¡¡¡ } } } } // FUNCION QUE MUESTRA LA MATRIZ EN PANTALLA void mostrarMatriz(float m[4][5]) { int i,j; printf("\n\n"); for(i=0; i<4; i++) { printf("("); for(j=0; j<5; j++) { printf(" %3.2f",m[i][j]); } printf(" )"); printf(" \n"); } }
Espero que te sirva de ayuda y no te lie mas........ :lol:
Un saludo y suerte :kicking:
PD: te he adjuntado el fichero cpp
Holas :hola: Me alegro que te sirviera de ayudaVerás ayudarme en el sentido de comprender más o menos lo que dices si, pero en mi práctica insisto es de C, y no admite la libreria <cstdlib>, sino stdlib.h.
Si puedes adjunta el archivo cpp para echarle un vistazo, que se ven mejor los errores desde el compilador.
ht luego