Título: Duda pascal Publicado por: netca en 25 Marzo 2011, 21:22 pm //Crea un programa que pida al usuario su contraseña. Deberá terminar cuando
//introduzca como contraseña la palabra "acceso", pero volvérsela a pedir //tantas veces como sea necesario. Program while; var contrasena:char; acceso:boolean; begin acceso:=true; while acceso do begin Writeln('Introduzca su contrasenaa por favor: '); Readln(contrasena); if (contrasena='acceso' )then acceso:=false; end; end. Que es lo que estoy haciendo mal? o.o , porque si pongo acceso sigue pidiendo la contreña.... Título: Re: Duda pascal Publicado por: Khronos14 en 26 Marzo 2011, 00:10 am Hola netca, te comento:
- Dependiendo del compilador que uses, utilizar la ñ como identificador de constantes, variables y funciones puede no estar soportado. La ñ forma parte del ASCII extendido, por eso puede que te de un error ahí. Delphi 2010 si que lo admite. - La variable contraseña la estas declarando como tipo char, que sólo almacena un caracter. Deberías declararla como un array o utilizar el tipo string. - El fallo de la condición es ese, contraseña sólo puede almacenar un caracter, por eso la condición nunca se va a cumplir. Saludos. Título: Re: Duda pascal Publicado por: netca en 30 Marzo 2011, 20:57 pm Si , gracias por responder. El problema principal es que la variable la puse en char y tenia que ponerla en string. Error de parte mia.
Saludos! Título: Re: Duda pascal Publicado por: d(-_-)b en 30 Marzo 2011, 21:46 pm Una simple sugerencia por si te sirve de algo.
Una forma sencilla de permitir al programa introducir contraseña en minúscula como en mayúscula. Código
Suerte. saludos... Título: Re: Duda pascal Publicado por: skapunky en 3 Abril 2011, 22:08 pm Hecho en falta una cosa:
while Acceso do Mientras "accéso" igual a que? en todo caso : Mientras Acceso = true También se puede ahorrar un if, utilizando una instrucción "OR" cuando se comprueva si PASS = ACCESO. if (Pass = 'acceso') or (Pass = 'ACCESO') then Acceso := false Nada, solamente estos dos detalles. |