Generar+valores+aleatorios

=Ejercicio de generacion de valores aleatorios=

Definir una funcíon que genere un numero ENTERO aleatorio dentro de un rango Definir una funcíon que genere un numero REAL aleatorio dentro de un rango Definir una funcíon que genere un carácter aleatorio dentro de un rango

Hacer un programa que utilice las tres funciones para generar: 10 valores enteros entre 2 y 12 10 valores reales entre 2 y 12 10 caracteres entre A y D

Sin utilizar subporgramas
code format="pascal" PROGRAM  ValoresAleatorios ; {- Declaracion de variables del Programa Principal --} VAR i      : Integer ;

BEGIN {- Programa principal } Randomize ; { Inicializar la semilla de generación valores aleatorios }

WriteLn ('Diez numeros enteros aleatorios entre 2 y 12 : ') ; FOR i := 1 TO 10 DO      Write ( Random (11) + 2 : 8) ; Writeln ;

Writeln ; WriteLn ('Diez numeros reales aleatorios entre 2 y 12 : ') ; FOR i := 1 TO 10 DO      Write ( Random * 10 + 2 : 8:1) ; Writeln ;

WriteLn ; WriteLn ('Diez letras aleatorias entre A y D : ') ; FOR i := 1 TO 10 DO      Write (Char (Random ( Ord ('D') - Ord ('A') + 1)  : 8) ;  WriteLn ;

Writeln ('- Para terminar pulsa ENTER -') ; ReadLn ; END. code

Utilizando subporgramas
code format="pascal" PROGRAM  ValoresAleatorios ;

{-- Declaración de funciones para generar valores aleatorios -} FUNCTION fniAleatEntero (Inf, Sup : Integer) : Integer ; BEGIN fniAleatEntero := Random (Sup - Inf + 1) + Inf END;

FUNCTION fnrAleatReal (Inf, Sup : Real) : Real ; BEGIN fnrAleatReal := Random * (Sup - Inf) + Inf END;

FUNCTION fncAleatChar (Inf, Sup : Char) : Char ; BEGIN fncAleatChar := Char (Random ( Ord (Sup) - Ord (Inf) + 1) + Ord (Inf) ) END;

{- Declaracion de variables del Programa Principal --} VAR i      : Integer ;

BEGIN {- Programa principal } Randomize ; { Inicializar la semilla de generación valores aleatorios }

WriteLn ('Diez numeros enteros aleatorios entre 2 y 12 : ') ; FOR i := 1 TO 10 DO      Write ( fniAleatEntero (2, 12) : 8) ; Writeln ;

Writeln ; WriteLn ('Diez numeros reales aleatorios entre 2 y 12 : ') ; FOR i := 1 TO 10 DO     Write ( fnrAleatReal (2, 12) : 8 : 1) ; Writeln ;

WriteLn ; WriteLn ('Diez letras aleatorias entre A y D : ') ; FOR i := 1 TO 10 DO      Write ( fncAleatChar ('A', 'D') : 8) ; WriteLn ;

Writeln ('- Para terminar pulsa ENTER -') ; ReadLn ; END. code