• Domingo 22 de Diciembre de 2024, 11:01

Autor Tema:  Randomizar Letras ?  (Leído 4136 veces)

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Randomizar Letras ?
« en: Jueves 29 de Enero de 2004, 14:06 »
0
Hola soy nuevo y tengo una duda acerca de como se puede sacar rapidamente letras al azar en turbo pascal que no sea :

Numero:=Random(10)+1;
Case Numero Of
   1:Letra:='A';
   2:Letra:='B';
   3:Letra:='C;...............Etc ;)

_.B._

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Randomizar Letras ?
« Respuesta #1 en: Jueves 29 de Enero de 2004, 19:32 »
0
Saludos!.
Código: Text
  1. procedure RandomAZ;
  2.   var Resp:char;
  3.   begin
  4.     repeat
  5.       write (Chr (Random (26)+65))
  6.     until KeyPressed;
  7.     Resp:=ReadKey
  8.   end;
  9.  
Debe servir B)
Muestra random de la A a la Z.

Bernardo L. :comp:
¡Olmo, dame peras!
www.BernardoLG.net

chujkero

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Randomizar Letras ?
« Respuesta #2 en: Jueves 29 de Enero de 2004, 19:37 »
0
..·¨·..·>Mu wenas, verás, la cosa esta en utilizar el código ASCII:
   
    La letra 'A' tiene el codigo 65, la 'B' el 66...  y así hasta llegar a la 'Z' que tiene el 90; Para las letras en minúsculas van desde el codigo 97 (letra a) hasta el 122(letra z). De todas formas, esto lo puedes consultar en cualquier libro o pagina de internet.
   
    Ahora utiliza la funcion "chr". Verás, esta funcion toma un entero como parámetro, de modo que devuelve el simbolo ASCII que se corresponde con el numero pasado:
    write(chr(65)); { escribe por pantalla la letra 'A' }
    write(chr(66)); { escribe por pantalla la letra 'B' }
    ..............
    ..............

    Solo tienes que hacer un "random" que devuelva un numero entre 65 y 90 si quieres letras mayusculas, o entre 97 y 122 si quieres minusculas, y despues utilizar la funcion "chr" para mostrar por pantalla la letra a la que corresponde el numero que salio.

     Una cosa así mas o menos:
         
     program letras_aleatorias;
     uses ...... { creo que con libreria dos o crt basta }
     var  
       r:integer;
     begin
       clrscr;
       randomize; {para dar mas aleatoriedad, una sola vez en el progranma}
       repeat
          r:=random(90)+1;
       until (r>=65) and (r<=90); { para que salga un nº entre 65 y 90 }
       writeln('Ha salido la letra : ',chr®); { con chr muestras el simbolo }
       writeln('pulsa para salir);
       readkey;
     end.

     Bueno despues de todo el rollo que te he soltado espero que te sirva de ayuda,
saludos de chujkero.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Randomizar Letras ?
« Respuesta #3 en: Jueves 29 de Enero de 2004, 20:25 »
0
:P Gracias!
                Me ha sido de gran ayuda ya que intentaba hacer el algoritmo para el juego de Hundir La Flota el que hace que el ordenador  saque varias posiciones de naves al azar .( De mi manera tarda mucho mas , YA LO COMPROBE)
                                            :comp: EugenioEnko