Pascal/Turbo Pascal - Problema con función random

   
Vista:

Problema con función random

Publicado por Pedro (2 intervenciones) el 30/11/2017 03:08:07
El problema está que cuando quiero recoger el valor de los números aleatorios entre 1 y 5 generados por el código en otro subprograma poniendo: "aleat[i]" me sale siempre un mismo tipo de valor para cada asignación.
Es decir, si tengo numero del 1-10 y quiero asignarles a cada uno un valor diferente de string aleatorio me sale siempre el mismo para los 10.
Me gustaría a ver si pueden echarme un cable.
Gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PROCEDURE estados9 (VAR aleat: tAleatorio);
    VAR
    	a, n: integer;
        opcion: integer;
        x: string;
    BEGIN {1}
        n := 1;
        randomize;
        REPEAT
        BEGIN
            a := random (100) +1;
            IF (a <= 20) THEN BEGIN
                opcion:= random (4) + 1;
                CASE opcion OF
                    1: x:= 'Averia en la linea';
                    2: x:= 'Averia en el vagon';
                    3: x:= 'Problema en la estacion';
                    4: x:= 'Otro problema';
                END;
                n:= n +1;
                aleat [i]:= x;
 
        END
        ELSE BEGIN
            n:= n +1;
            x:= 'Disponible';
            aleat [i]:= x;
        END;
    END;
        UNTIL (n = 10);
 
    END;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con función random

Publicado por David (18 intervenciones) el 30/11/2017 09:24:01
prueba a poner el randomize dentro del repeat para inicializar la semilla antse de generar cada nuevo número.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con función random

Publicado por Pedro (2 intervenciones) el 30/11/2017 15:09:09
Hola David, gracias por contestar.
Haciendo lo que me dijiste me sale aun así el mismo resultado.
aleat [ i ] no me imprime diferentes random, para cada numero, siempre coge el mismo y se repite.
Si sale 'Problema en la estación' todos me saldrán así.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar