Pascal/Turbo Pascal - Pregunta de novato, urgente !!

 
Vista:

Pregunta de novato, urgente !!

Publicado por Thunderstorm (1 intervención) el 25/10/2004 19:58:53
A ver, estoy empezando en esto de Pascal y me ha surgido una duda..

El usuario de cierto programa debe introducir 9 digitos, como por ejemplo 123456789 . El programa debe operar con cada dígito por separado, por lo que asigno a cada dígito una variable distinta.
Pero, ¿como puedo hacer para que al leer la entrada del usuario se lea y se asigne cada dígito a una variable entera distinta p.ej.(a,b,c,d,e,f,g,h,i) ???

Cuando luego pongo "readln(a,b,c,d,e,f,g,h,i)", asigna a la variable "a" todo el numero de 9 cifras !!
Si se introdujeran los 9 dígitos con espacios no habria problema, pero quiero que el usuario los ponga de la forma 123456789...
hay forma de que cada dígito se asigne a una variable ??
Si alguien lo sabe que me cuente el procedimiento más sencillo posible, y gracias por adelantado !!!!!!! :)
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:Pregunta de novato, urgente !!

Publicado por pcx56 (38 intervenciones) el 25/10/2004 21:25:05
Lo que podés usar en este caso es el procedimiento "ReadKey".
Este procedimiento asigna el valor de la tecla pulsada a una variable de tipo CHAR, y no espera a que se pulse ENTER como el procedimiento READ.
El inconveniente es que luego vos necesitas variables de tipo INTEGER. Para eso tendrás que hacer una re-asignación de CHAR a INTEGER con el procedimiento ORD(). Y lo mejor que podés hacer, es guardar los valores ingresados en un array para luego poder realizar las acciones que necesites.
Por ejemplo:

uses Crt;
const
LIMITE = 10;
type
item = integer;
lista = array[1..LIMITE] of item;
var
c : char;
i : integer;
L : lista;
begin
for i := 1 to LIMITE do
begin
c := ReadKey; { Leo y acciogno caracter pulsado a variable }
Write(c); { Imprimo caracter pulsado }
L[i] := Ord(c) - 48 { Assigno valor ordinal en el conjunto ASCII, menos el desplazamiento al caracter '0' }
end;
WriteLn;
{ Acciones a realizar... }
Write('Pulse una tecla para salir...');
ReadKey;
end.

No olvides usar la cláusula USES CRT.
Suerte. Espero que te sirva.
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