elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 21:44  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  Duda pascal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda pascal  (Leído 1,296 veces)
netca

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Duda pascal
« en: 25 Marzo 2011, 21:22 »

 //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....
                                     


En línea
Khronos14

Desconectado Desconectado

Mensajes: 285


A lie is a lie


Ver Perfil WWW
Re: Duda pascal
« Respuesta #1 en: 26 Marzo 2011, 00:10 »

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.


En línea

netca

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Duda pascal
« Respuesta #2 en: 30 Marzo 2011, 20:57 »

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!
En línea
el-viejo


Desconectado Desconectado

Mensajes: 1.257



Ver Perfil WWW
Re: Duda pascal
« Respuesta #3 en: 30 Marzo 2011, 21:46 »

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
program User;
 
{$APPTYPE CONSOLE}
 
uses
 SysUtils;
 
var
Pass: String;
Acceso: Boolean;
begin
 Acceso := true;
 
 while Acceso do
 
  begin
   Writeln('Introduzca su Password por favor:');
   Readln(Pass);
 
  if (Pass = 'acceso') then
      Acceso := false
 
  else if (Pass = 'ACCESO') then
     Acceso := false;
 
  end;
end.

Suerte.

saludos...
En línea

skapunky
Electronik Engineer &
CoAdmin
***
Conectado Conectado

Mensajes: 3.440



Ver Perfil WWW
Re: Duda pascal
« Respuesta #4 en: 3 Abril 2011, 22:08 »

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.    
« Última modificación: 3 Abril 2011, 22:10 por skapunky » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda Pascal
Programación C/C++
NaSaRiD15 1 400 Último mensaje 14 Agosto 2008, 02:42
por Flakito81
duda pascal
Programación General
pintuflas 1 577 Último mensaje 11 Octubre 2008, 00:00
por pintuflas
Duda Pascal
Ejercicios
-iSiS- 1 1,161 Último mensaje 22 Enero 2010, 12:25
por Festor
Duda con Pascal
Programación General
yako-_- 4 868 Último mensaje 24 Junio 2010, 06:28
por yako-_-
Duda pascal calculadora
Programación General
netca 1 1,447 Último mensaje 12 Abril 2011, 02:20
por Nakp
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines