Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Programacion condicional (https://www.clubdelphi.com/foros/showthread.php?t=91684)

serka 01-04-2017 23:37:57

Programacion condicional
 
hola a todos buenos dias, tardes o noches

Me pueden ayudar con este código estoy al atrapado en su logica me sería de utilidad su generosa ayuda:

Código Delphi [-]
var
  nombre, identificar:String;
  identificacion, pasidentificar, pass2:Integer;
  nompass, password:Boolean;
begin

    (* Porgrama Principal *)

    write('Ingrese su nombre por favor: ');      // Modulo de Entrada
    readln(nombre);

    identificar:= 'Cesar';
    nompass:= (nombre = identificar);
    identificarpasidentificar:=
    pass2:= 1234;
    password:= (pasidentificar = pass2);

        if nompass then begin
              write('Ingrese su contasena por favor: ');
              readln(pasidentificar);

                  if password then begin
                      writeln('Bienvenido hermano entre por favor');
                  end else begin
                      writeln('Contrasena Incorrecta');
                  end;
                  
        end else begin
              writeln('Ese NO es tu nombre');
        end;
    readln
end.

sin mas por el momento y en espera de su generosa ayuda

serka

Casimiro Notevi 01-04-2017 23:42:01

¿Y qué quieres saber?

AgustinOrtu 02-04-2017 00:49:45

El programa no es sintacticamente correcto, es decir, no compila

serka 02-04-2017 08:35:09

si compila
 
lo que pasa es que no me reconoce una de las variables la de "pasidentificar" me indica el ide de delphi que nunca se ha usado y no he podido encontrar la solución por esa razón acudo a ustedes

De ante mano muchas gracias por por su ayuda

serka

mamcx 02-04-2017 21:52:08

Empieze por mejorar como escribes el codigo. La indentación que tienes es muy rara. Si prestas atencion, por ejemplo, el BEGIN siempre se usa para iniciar un bloque y no se acompaña con nada (y es raro ver "then begin", es mas idiomatico "then ENTER begin").

Usa un formateador de codigo y veras como la diferencia.

A proposito, chequea la guia oficial de como se escribe pascal:

http://edn.embarcadero.com/article/10280

En vez de inventar tu propio estilo, apegate al estilo que se usa de forma general por la comunidad y el codigo que trae delphi. Puede que hayan un par de cosas que es mejor cambiar, pero para arrancar es mejor ceñirse de forma estrica a una norma (y entenderla) antes de "innovar".

---
Con respecto al error, busca en google lo que es. Los errores del compilador SIEMPRE son ciertos, aunque no siempre parecen lógicos.

Es buena idea que recorras el programa y en voz alta describas lo que hace, LUEGO, usa el depurador y chequea si lo que dices coincide.

Si el error no permite empezar a depurar, entonces siendo esto un codigo muy corto, reescribelo (o comenta las lineas) y vuelve a hacerlo. Verás que hay algo que siempre se te pasa por alto ;)

--
P.D: Si logro entender lo que estas haciendo, quieres hacer una validacion de clave. Si es asi, estas complicando el como se hace eso.

AgustinOrtu 02-04-2017 23:12:40

Cita:

Empezado por serka (Mensaje 515025)
lo que pasa es que no me reconoce una de las variables la de "pasidentificar" me indica el ide de delphi que nunca se ha usado y no he podido encontrar la solución por esa razón acudo a ustedes

De ante mano muchas gracias por por su ayuda

serka

Pues a mi el codigo que pegaste no me compila, esto me indica el compilador:

Código Delphi [-]
[dcc32 Error] Project1.dpr(23): E2003 Undeclared identifier: 'identificarpasidentificar'
[dcc32 Error] Project1.dpr(24): E2064 Left side cannot be assigned to

Si elimino la linea 23 entonces si compila y arroja estos warnings y hints:

Código Delphi [-]
1 - [dcc32 Hint] Project1.dpr(28): H2077 Value assigned to 'pasidentificar' never used
2 - [dcc32 Warning] Project1.dpr(24): W1036 Variable 'pasidentificar' might not have been initialized
3 - [dcc32 Hint] Project1.dpr(12): H2164 Variable 'identificacion' is declared but never used in 'Project1'

El primero, se produce en esta linea de codigo:

Código Delphi [-]
readln(pasidentificar);

El procedimiento Readln lee una linea de texto de la entrada estandar (o de un archivo de texto), y almacena el valor en la variable que le pasas como parametro. Tu nunca utilizas ese valor en el resto del programa y eso produce el hint

El segundo es un warning, este ya es un poco mas "serio". Este te indica que estas usando el valor de una variable que no inicializaste antes, si miramos el programa:

Código Delphi [-]
    (* Porgrama Principal *)

    write('Ingrese su nombre por favor: ');      // Modulo de Entrada
    readln(nombre);

    identificar:= 'Cesar';
    nompass:= (nombre = identificar);
    pass2:= 1234;
    password:= (pasidentificar = pass2);

Que valor tendra pasidentificar cuando se ejecute la comparacion (pasidentificar = pass2)? Como el valor no esta definido, contiene "basura", es decir, lo que habia en la memoria en ese momento, que podria ser cualquier cosa

El tercer hint esta avisando que tenes una variable llamada identificacion que nunca usas. Si la eliminas el programa aun se puede compilar. Debes revisar a ver si hay un error de tu parte (te olvidaste de usarla) o quizas es una variable que ya no necesitas

serka 03-04-2017 02:32:13

Muchas gracias por sus respuestas
 
Muchas gracias por sus respuestas ya corregí mi problema aquí les pongo el código:

Código Delphi [-]
// procedimiento de password
procedure password;
var
  clave: Boolean;
  pasidentificar: Integer;
  pass2: Integer;
begin
  Writeln('Ingrese su clave');
  ReadLn(pasidentificar);
  pass2 := 1234;
  clave := pasidentificar=pass2;

  if clave then
    begin
      Writeln('Bienvenido mi hermano');
    end
    else
    begin
      Writeln('Contrasena incorrecta');
    end;
end;

  // Programa principal  
var
  identificar: String;
  nombre: String;
  nompass: Boolean;
begin
  Writeln('Ingrese su nombre');
  ReadLn(nombre);
  identificar := 'Cesar';
  nompass := nombre=identificar;

    if nompass then
    begin
        password();
    end
    else
    begin
        Writeln('Ese no es tu nombre');
    end;
  Readln;
End.

De nuevo muchas gracias por su ayuda

sin mas por el momento

serka


La franja horaria es GMT +2. Ahora son las 19:25:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi