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

Ayuda con una parte de una práctica

Estas en el tema de Ayuda con una parte de una práctica en el foro de C/C++ en Foros del Web. Me gustaría que me ayudarais a hacer una parte de la práctica ya que no sé muy bien... Bueno lo que tengo que hacer es ...
  #1 (permalink)  
Antiguo 27/12/2006, 05:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Mensaje Ayuda con una parte de una práctica

Me gustaría que me ayudarais a hacer una parte de la práctica ya que no sé muy bien...

Bueno lo que tengo que hacer es que aparezcan 100 números aleatorios entre 1 y 5000 (bien esto si se hacerlo) pero luego hay que poner la frecuencia con la que el números aparece y el porcentaje también. Otro pequeño detalle es que tienen que guardarse los datos y añadirse unos a otros [Esto es por que es parte de una estructura de datos que tiene las opciones de Generar números (que es en lo que necesito ayuda), buscar dato, salir, introducir número, borrar número y ordenar números]. Entonces si se accede a la opción de ordenar numero o buscar deberían salir todos los que han salido en la opción Generar números. En definitiva, lo que yo no se hacer es el porcentaje y la frecuencia, que aparezcan las veces que ha salido un número y su porcentaje todas las veces que se ejecute.

Bueno para no liar tanto la madeja por que no tengo no sé si se me entenderá bien... pues os dejo la parte de Generar números que es lo que necesito:

a)Generar números. Genera 100 números enteros aleatorios entre 1 y 5000. A partir de esto se crean las estructuras de números (que deberían ser 100 con frecuencia 1 si no hay repetición y si hay repetición serían menos de 100 pero alguna tendría frecuencia superior a 1). Para terminar imprime las estructuras por pantalla. Si se selecciona otra vez esta opción., los números se añaden a los ya existentes.


Gracias de antemano. LaCHi Y lo siento si no se me entiende bien pero como soy nueva en programación no sé explicarme bien. XaOoOoOo No se si será determinante, pero es en C
  #2 (permalink)  
Antiguo 27/12/2006, 11:03
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Ayuda con una parte de una práctica

Vale, si te ayudamos!!
Cuando quieras!!

Saludos
  #3 (permalink)  
Antiguo 27/12/2006, 22:49
 
Fecha de Ingreso: junio-2004
Mensajes: 124
Antigüedad: 19 años, 10 meses
Puntos: 2
Re: Ayuda con una parte de una práctica

Cita:
Iniciado por Instru Ver Mensaje
Vale, si te ayudamos!!
Cuando quieras!!

Saludos
jajajaja que delicadeza, sutileza y elegancia para responder!
Acaso la nota de la practica te la pondran a vos Instru?
__________________
GONZALO GOMEZ Argentina
  #4 (permalink)  
Antiguo 28/12/2006, 06:02
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: Ayuda con una parte de una práctica

Anda que el nick "MiNiWini"... Me recuerda a los versos repetitivos de la famosa canción ochentera "Short dick man" del grupo 20 Fingers.

Mini - Wini
Mini - Wini
Mini - Wini
Mini - Wini
Don't want a short dick man...
  #5 (permalink)  
Antiguo 28/12/2006, 08:26
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda con una parte de una práctica

Lo de MiNiWiNi viene de un apodo simplemente ^^
Gonza en ningun momento dije que se me haga la práctica -.- solo que no sé como hacer lo de la frecuencia... el resto, aunque esté todas las Navidades trabajándolo, lo hago yo solita. ¬¬

Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int numero,x,por;
int frec=0;
int main (void) 
{
    printf("Numeros aleatorios\tFrecuencia\tPorcentaje\n\n\n");
    srand(time(NULL));
    {
                      if (numero==numero)
                         (frec==frec++);
    }
    for (x=1; x<=100; x++)
    {
        numero = rand()%5000 +1; 
        printf("%d\t\t\t%d \n\n",numero,frec);
    }       
 
 
 
 
system ("pause"); /* Ejecuta el comando de pausa de MS-DOS */ 
                       

}
Esto es lo que tengo. Pero no funciona -.- Lo que quiero es que haga que si dos números aleatorios se repiten en la lista de los 100, en vez de ponerlos dos veces, que en la frecuencia ponga un 2. De momento tengo esto, pero no vale por que si se reducen los límites de los aleatorios entre 1 y 10 se ven repetidos numerosas veces y la frecuencia me sigue poniendo 1.
Lo del if yo quería poner que si un número aleatorio es igual a otro número aleatorio la frecuencia (frec) sea la frecuencia (de valor uno) más uno... pero lo dicho parece ser que así no es... ¿me podríais dar alguna pequeña pista de como continuar?
Gracias
XaOoO
P.S. Gracias por responderme =), me siento escuchada jeje
  #6 (permalink)  
Antiguo 28/12/2006, 11:02
 
Fecha de Ingreso: junio-2004
Mensajes: 124
Antigüedad: 19 años, 10 meses
Puntos: 2
Re: Ayuda con una parte de una práctica

Cita:
Iniciado por MiNiWiNi Ver Mensaje

Código:
                      if (numero==numero)
                         (frec==frec++);

Lo del if yo quería poner que si un número aleatorio es igual a otro número aleatorio la frecuencia (frec) sea la frecuencia (de valor uno) más uno... pero lo dicho parece ser que así no es..
El problema es que numero siempre va a ser igual a numero en tu clausula del if, por ende frec siempre se incrementara....
Lo que se me ocurre es crear un vector de 0..5000 de enteros, y simplemente haces vector[numero]++.... luego lo recorres e imprimees la frecuencia de repeticion...
No estoy muy seguro en cuanto al consumo de recursos al crear esta estructura ( me refiero al vector por el tamaño, si es adecuado o no), pero no creo que haya otra solucion.....
Saludos y suerte!
__________________
GONZALO GOMEZ Argentina
  #7 (permalink)  
Antiguo 28/12/2006, 13:57
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Ayuda con una parte de una práctica

Cita:
if (numero==numero)
(frec==frec++);
Bueno no se, pero esto me parece algo estupido, sin ofender.
Si la manzana es igual a ella misma la pera tambien?

numero siempre va a ser igual numero.
tendrias que tener una lista de todos los numero que generas y luego comparar la lista con cada uno de ellos, e ir incrementando frec si vez numeros repetidos.
El algoritmo es muy sencillo, pero es algo que te dejo pa que estudies.

Namas corrige el frec==frec++, esto siempre va a dar falso, no va a sumar nada, es un error comun en programadores novatos.

tendria que ser
frec++
nadamas ò
frec+=1;
o para que se vea mas didactico
frec=frec+1;

Saludos
  #8 (permalink)  
Antiguo 28/12/2006, 14:46
 
Fecha de Ingreso: diciembre-2006
Mensajes: 3
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda con una parte de una práctica

Muchas gracias por ayudarme. No se me da muy bien por que todavía llevo muy poco tiempillo y además hace poco he tenido un accidentillo lo que no me permitió estar muy al día =(.
Gracias gonza por lo de los vectores pero no me suena así que no lo he dado aún jeje. Cambiaré lo de frec.. =)Bueno lo dicho, XaoOo ^^
  #9 (permalink)  
Antiguo 29/12/2006, 08:04
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Re: Ayuda con una parte de una práctica

Para que tu programa pueda analizar los numeros generados aleatoriamente
tendrias que almacenarlos dentro de una vector(array) de numeros.
de esta forma los podrias comparar, buscar, ordenar etc.

Código:
int aleatorios[100];

for(...;...;...)
{
    aleatorios[i] = rand....
}
de esta forma los guardarias, y posterior mente haces las siguientes operaciones.
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 04:55.