Pascal/Turbo Pascal - Problemas con Randomize

 
Vista:

Problemas con Randomize

Publicado por Ignacio (12 intervenciones) el 26/12/2007 20:04:13
Hola buenas escribo para ver si me pueden solucionar 3 dudas:
1) ¿Es posible asignar con la orden Randomize a una variable numeros aleatorios reales?
Por ejemplo yo quiero asignarle a mi variable i un valor entre 0 y 3000 pero que sean reales. Es que no se si es posible trabajar con reales. A mi solo me salen numeros aleatorios enteros si hago lo siguiente:

Program 1;
Var i:integer
Begin Randomize;
i:=Random(3000);
write(i)
End.

2) La siguiente duda es mas o menos parecida, a otra variable le quiero asignar dos caracteres de forma aleatoria, esos caracteres solo pueden ser en mayuscula (A,B,C,D,E)

3) La última de todas es como asignar a una variable la hora que tiene en ese momento la computadora, es decir fecha y hora completa.

Muchas gracias, si quieren me pueden enviar un email a [email protected]
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

RE:Problemas con Randomize

Publicado por Laysquad (47 intervenciones) el 26/12/2007 22:29:53
Hola que tal^^ aqui Laysquad, aqui van las respuestas.

1) no puedes hacer un random de numeros reales con randomize, pero puedes hacerlo de otra forma, por ejemplo :

var
entero, decimal : integer
numero: real ;

begin
randomize ;
entero := random(3000) ;
decimal := random(100) ; {solo para el ejemplo, ya que puedes cambiarlo}
numero := entero+(decimal div 100); {el numero 100 se cambia segun el random decimal}
end .

2)no puedes hacer eso!, lo que tienes que hacer es crear una tabla de numeros y letras, es decir:

var
tabla :array[0..26] of char ;
letra :char ;
x: integer ;

begin
randomize ;
tabla[0] := 'A'
for x := 1 to 26 do tabla[x] := suc(tabla[x-1]) ; {son mayusculas}
letra := tablar[andom(26)] ; {se elige al azar y funciona}
writeln(letra) ;
readkey ;
end ;

3)tienes que usar la libreria ' dos' y usar las funciones gettime y getdate

sintaxis:
gettime(hora,minutos,segundos,milesimas) ;
getdate(año,mes,dia,diadelasemana) ;

ejemplo :

program cosa;
uses crt, DOS ;
var
dia, mes, anno, diadelasemana :WORD ;
hora, minutos, segundos, mil : WORD ;

begin
clrscr ;
gettime(hora,minutos,segundos,mil) ;
getdate(anno, mes, dia,diadelasemana) ;
writeln('la hora es : ',hora,':',minuto,`:',segundos) ;
writeln('la fecha es: ',dia,' de',mes,'de',anno) ;
readkey ;
end ;

espero que eso resulva tus dudas, a y por cierto no te lo mandé a tu correo porque puede que alguien más tengas las mismas dudas ^^, saludos.
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

RE:Problemas con Randomize

Publicado por Diego Romero (996 intervenciones) el 26/12/2007 23:31:12
Corrijo tu respuesta al punto 2. Sí puedes usar random para obtener caracteres aleatorios, solamente tienes que usar un poco de aritmética:

var
c:char;
begin
randomize;
c:=chr(random(26)+65);
Write(c);
end.

chr() regresa un caracter dando su número ASCII, random(26) regresa un número entre 0 y 25 que al sumarle 65 resulta en un número entre el 65 y 90 que son las 26 letras mayúsculas en la tabla ASCII.
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

RE:Problemas con Randomize

Publicado por Ignacio (12 intervenciones) el 27/12/2007 10:14:39
Muchas gracias
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

RE:Problemas con Randomize

Publicado por ats (1 intervención) el 02/06/2010 03:29:33
como hago la funcion con randomize para buscar un titulo de una pelicula q esta guardada en un fichero de texto.
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
sin imagen de perfil

RE:Problemas con Randomize

Publicado por Willy (177 intervenciones) el 28/12/2007 03:21:11
Hola.
No vengo a corregir nada pero cabe aquí hacer esta observación.

Recuerden que Usando Random con argumento por ejemplo
Random(10) regresa un entero aleatorio de la lista 0,1,2,..9
Pero usando Random sin argumento, se genera un número decimal
aleatorio entre 0 y 1.
Yo uso "if random < 0.5" para que solo hayan 2 probabilidades de 50%
cada una.


Program Aleatorio;
Uses Crt;

Begin
ClrScr;
Randomize;
if random < 0.5 then
write('si')
else write('no');
ReadKey
End.
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

RE:Problemas con Randomize

Publicado por lkjkljlkhjggg (1 intervención) el 07/06/2009 00:34:39
Torpes que les pasa
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