Pascal/Turbo Pascal - Subprograma Validar clave

 
Vista:

Subprograma Validar clave

Publicado por Pascual (94 intervenciones) el 17/12/2004 16:40:45
Hola necesito hacer un subprograma que me valide una clave que empieza por una letra mayúscula y después la siguen 3 digitos, por ejemplo una clave válida sería A788, no se como cogerlo, ¿alguna idea?. Gracias.
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:Subprograma Validar clave

Publicado por M@rceloL (152 intervenciones) el 18/12/2004 01:28:03
Bueno, a ver:

Un string es, en definitiva, un arreglo (o lista, o como lo llames, un array) de elementos de tipo char. Con lo que uno puede hacer algo así:

var Valida:boolean;
Palabra:string;
begin
Valida:= (length(Palabra)=4) and
((Palabra[1]>='A') and (Palabra[4]<='Z')) and
((Palabra[2]>='0') and (Palabra[2]<='9')) and
((Palabra[3]>='0') and (Palabra[3]<='9')) and
((Palabra[4]>='0') and (Palabra[4]<='9'));
end.

Espero te sirva. Saludos y felices compildas.


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:Subprograma Validar clave

Publicado por Pascual (94 intervenciones) el 18/12/2004 12:08:27
Gracias por la respuesta, no sabía que se podía hacer así, al final lo hice de otra forma, lo hice usando conjuntos. Lo hice así:

PROGRAM clave;
USES Crt;
TYPE
tclave=string[4];
VAR
i :tclave;

FUNCTION PedirClave (VAR x :tclave): Boolean;
BEGIN
REPEAT
ClrScr;
Writeln ('Introduzca la clave del v¡deo');
Readln (x);
IF (x[1] IN ['A'..'Z']) AND (x[2] IN ['0'..'9']) AND (x[3] IN ['0'..'9']) AND (x[4] IN ['0'..'9']) THEN
BEGIN
PedirClave := True;
Writeln ('La clave es v lida.')
END
ELSE
BEGIN
PedirClave := False;
Writeln ('La clave no es v lida.');
Readkey
END
UNTIL (x[1] IN ['A'..'Z']) AND (x[2] IN ['0'..'9']) AND (x[3] IN ['0'..'9']) AND (x[4] IN ['0'..'9'])
END;

BEGIN
PedirClave (i);
Readln
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