Foros Club Delphi

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

serka 01-03-2017 01:36:31

Programacion en delphi
 
Hola buenos días, tardes o noches

Llevo ya algún tiempo aprendiendo programación por mi cuenta desde cero y estoy algo avanzado en programación estructurada principalmente con delphi o pascal (como lo quieran nombrar) y me gustaría compartir mis conocimientos así mismo solicitar su amable asistencia cuando lo requiera.

por ejemplo estoy atorado en un programa con delphi 7 en una estructura condicional de hecho son dos estructuras en una el problema es que cuando es falsa la condición me saltan dos mensajes el condigo fuente es este:

Código Delphi [-]
var
numero:Integer;
espositivo:Boolean;
esnegativo:Boolean;
begin
    // programa principal
    write('Escriba un numero: ');
    readln(numero);
    esnegativo:= (numero < 0);
    espositivo:= (numero > 0);
        if esnegativo then
        begin
            writeln('El numero es negativo.');
        end else begin
        end; if espositivo then begin
            writeln('El numero es positivo.');
        end else begin
            writeln('El numero es cero.');
        end;
        readln
end.

CarlosReyesg 01-03-2017 02:50:08

antes de todo deberías de leer la guía de estilo para postear código
el código de las condiciones están malas según entiendo con lo que quieres hacer

si me permites darte un consejo
todos tenemos nuestros propios estilo
pero cuando escribas código ten el cuidado de escribir de una formas mas adecuada
se que es un problema de novatos.

y este mismo consejo les doy a mis alumnos en la programación
"escriban código pensando que otros lo puedan leerlo y entenderlo"

Código Delphi [-]
var
   numero      : Integer;
   espositivo  : Boolean;
   esnegativo  : Boolean;
begin
   // programa principal
   write('Escriba un numero: ');
   readln(numero);
   esnegativo := (numero < 0);
   espositivo := (numero > 0);

   if esnegativo then
   begin
      writeln('El numero es negativo.');
   end
   else
   if espositivo then
   begin
      writeln('El numero es positivo.');
   end
   else
   begin
      writeln('El numero es cero.');
   end;
   readln
end.

saludos

ecfisa 01-03-2017 03:42:53

Hola serka bienvenido a los foros de Club Delphi :)

Como bién te ha aconsejado Carlos, revisa nuestra guía de estilo y cuando incluyas código en tus mensajes, por favor usa las etiquetas de este modo:



Una observación personal; tanto begin/end innecesario me hace el código difícil de leer, me resulta mas limpio así:
Código Delphi [-]
var
  numero      :Integer;
  espositivo  : Boolean;
  esnegativo  : Boolean;
begin
  Write('Escriba un numero: ');
  ReadLn(numero);

  espositivo  := numero > 0;
  esnegativo  := numero < 0;

  if espositivo then
    WriteLn('El numero es negativo.')
  else if esnegativo then
    WriteLn('El numero es positivo.')
  else
    WriteLn('El numero es cero.');

  Readln;
end.
Y que, obviando fines didácticos, podría resumirse a:
Código Delphi [-]
var
  numero :Integer;
begin
  Write('Escriba un numero: ');
  ReadLn(numero);

  if numero < 0 then
    WriteLn('El numero es negativo.')
  else if numero > 0 then
    WriteLn('El numero es positivo.')
  else
    WriteLn('El numero es cero.');

  Readln;
end.

Saludos :)

serka 01-03-2017 19:42:04

Gracias por su generosa ayuda
 
Ante todo una enorme disculpa debí haber leído la guía de estilo hago un llamado a su tolerancia por favor disculpe mi imprudencia

Es un enorme placer ser asistido con su generosa ayuda les vuelvo a reiterar mi agradecimiento ya corregí el error del código del código
en cuestión fue un problema de encadenamiento de condicionales ya lo solucione

Código Delphi [-]
     var
     numero: Integer;
     espositivo: Boolean;
     esnegativo: Boolean;
     begin
            // programa principal

         write('Escriba un numero: ');
         readln(numero);
         
         esnegativo:= (numero < 0);
         espositivo:= (numero > 0);
                

                 if esnegativo then
                 begin
                        writeln('El numero es negativo.');
                 end 
                 else 
                 begin
                 if espositivo then begin
                        writeln('El numero es positivo.');
                 end 
                 else 
                 begin
                        writeln('El numero es cero.');
                 end;
           end;
        readln
      end.

olbeup 02-03-2017 08:26:08

Hola serka,

Si estas aprendiendo a programar, hazlo con estilo como el consejo que te da, CarlosReyesg, o el código limpio que te da ecfisa, facil de seguir y entender.

Un saludo.

P.D.: Se tu mismo, pero limpio y con estilo


La franja horaria es GMT +2. Ahora son las 05:12:00.

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