Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error en la codificación (https://www.clubdelphi.com/foros/showthread.php?t=88801)

JPSepu96 02-08-2015 04:34:42

Error en la codificación
 
Hola a todos!
Soy nuevo en el foro e inauguro con una consulta.
Estoy estudiando Analisis de Sistemas y estoy en el primer año, por lo que empezamos a ver Delphi hace poco. Nos dieron para hacer un trabajo obligatorio de un software de control de Stock y tengo un error que no puedo ver donde está!
Me pueden ayudar?
Gracias

AgustinOrtu 02-08-2015 04:56:40

Bienvenido a ClubDelphi

Copia y peganos el codigo fuente en la parte que te da error y cual es el error, no acostumbramos a subir archivos para compartir codigo

nlsgarcia 02-08-2015 06:13:06

JPSepu96,

Cita:

Empezado por JPSepu96
...Nos dieron para hacer un trabajo obligatorio de un software de control de Stock y tengo un error que no puedo ver donde está...

¡Bienvenido al Club Delphi! :D

Por favor toma en consideración las siguientes recomendaciones:
Cita:

Guía Estándar

7- Formular las preguntas con el mayor detalle posible evitando todo tipo de ambigüedad, facilita el análisis del problema planteado y aumenta la probabilidad de obtener una solución a la consulta realizada.

8- Especificar siempre la versión del SO, lenguaje, BD y componentes utilizados, para una mejor comprensión del entorno del problema.
Tomado de : Guía de estilo de los foros.

¡Gracias por tu cooperación! :) ^\||/

Nelson.

JPSepu96 02-08-2015 14:01:31

Repeat que da error
 
Acá les pego el repeat que me da error.
Código Delphi [-]
  Repeat
  Write ('Ingrese el codigo del producto (1-5): '); Readln (producto);
  If (producto > 0) and (producto < 6) then
    Write ('Ingrese el movimiento a realizar (E/S): '); Readln (movimiento);
      If ( upcase (movimiento)='E') or (upcase (movimiento)='S') then
            Write ('Ingrese la cantidad de unidades: '); Readln (unidades);
             if (unidades > 0) then
                {Calculo de stock y movimientos}
                Case producto of
                  1: begin
                      if (upcase (movimiento) = 'E' )
                        then
                          begin
                           entrada1:=entrada1+1;
                           stock11:=stock11+unidades;
                           unentrante1:=unentrante1+unidades;
                           end
                        else
                          if (stock11 > unidades)
                              then
                                begin
                                 salida1:=salida1+1;
                                 stock11:=stock11-unidades;
                                 unsalida1:=unsalida1+unidades;
                                end
                              else
                                Writeln ('La cantidad a extraer supera el stock');
                      end;
                  2: begin
                      if (upcase (movimiento) = 'E' )
                        then
                          begin
                           entrada2:=entrada2+1;
                           stock22:=stock22+unidades;
                           unentrante2:=unentrante2+unidades;
                           end
                        else
                          if (stock22 > unidades)
                            then
                               begin
                                salida2:=salida2+1;
                                stock22:=stock22-unidades;
                                unsalida2:=unsalida2+unidades;
                               end
                            else
                             Writeln ('La cantidad a extraer supera el stock');
                      end;
                  3: begin
                      if (upcase (movimiento) = 'E' )
                        then
                          begin
                           entrada3:=entrada3+1;
                           stock33:=stock33+unidades;
                           unentrante3:=unentrante3+unidades;
                          end
                        else
                          if (stock33 > unidades)
                           then
                             begin
                              salida3:=salida3+1;
                              stock33:=stock33-unidades;
                              unsalida3:=unsalida3+unidades;
                             end
                           else
                            Writeln ('La cantidad a extraer supera el stock');
                     end;
                  4: begin
                      if (upcase (movimiento) = 'E' )
                        then
                          begin
                           entrada4:=entrada4+1;
                           stock44:=stock44+unidades;
                           unentrante4:=unentrante4+unidades;
                           end
                        else
                             if (stock44 > unidades)
                               then
                                begin
                                 salida4:=salida4+1;
                                 stock44:=stock44-unidades;
                                 unsalida4:=unsalida4+unidades;
                                end
                               else
                              Writeln ('La cantidad a extraer supera el stock');
                     end;
                  5: begin
                      if (upcase (movimiento) = 'E' )
                        then
                          begin
                           entrada5:=entrada5+1;
                           stock55:=stock55+unidades;
                           unentrante4:=unentrante5+unidades;
                           end
                        else
                            if (stock55 > unidades)
                              then
                                begin
                                salida5:=salida5+1;
                                stock55:=stock55-unidades;
                                unsalida5:=unsalida5+unidades;
                                 end
                               else
                                Writeln ('La cantidad a extraer supera el stock');
                     end;
                end
             Else
              Writeln ('La cantidad de unidades deben ser mayores a 0')
       Else
        Writeln ('Movimiento invalido')
  Else
    Writeln ('Codigo de producto invalido');

    Write ('Desea cargar otra operacion? S/N '); readln (op);

 until upcase(op) = 'N';
El lenguaje es Delphi y no se utiliza ninguna base de datos.

Gracias

ecfisa 02-08-2015 17:07:52

Hola JPSepu96.

¿ Y cuál es el error que te da ?

Saludos :)

JPSepu96 02-08-2015 17:13:50

El error me lo marca en el anteultimo else. Me tira:" Se esperaba Until pero Else ha sido encontrado".
Ya revise todo y todos los If están con los then y else correspondientes.

Gracias!

ecfisa 02-08-2015 17:39:01

Hola JPSepu96.

Intentalo así:
Código Delphi [-]
  repeat
    Write ('Ingrese el codigo del producto (1-5): ');
    Readln (producto);
    if (producto > 0) and (producto < 6) then
    begin   // (*)
      Write ('Ingrese el movimiento a realizar (E/S): ');
      Readln (movimiento);  // (*)
      if (Upcase(movimiento)='E') or (Upcase (movimiento)='S') then
      begin   // (*)
        Write ('Ingrese la cantidad de unidades: ');
        Readln (unidades);
        if (unidades > 0) then
        begin
          case producto of
            1: begin
                 if (upcase (movimiento) = 'E' )then
                 begin
                   entrada1:=entrada1+1;
                   stock11:=stock11+unidades;
                   unentrante1:=unentrante1+unidades;
                 end
                 else if (stock11 > unidades) then
                 begin
                   salida1:=salida1+1;
                   stock11:=stock11-unidades;
                   unsalida1:=unsalida1+unidades;
                 end
                 else
                   Writeln ('La cantidad a extraer supera el stock');
               end;
            2: begin
                 if (upcase (movimiento) = 'E' )then
                 begin
                   entrada2:=entrada2+1;
                   stock22:=stock22+unidades;
                   unentrante2:=unentrante2+unidades;
                 end
                 else if (stock22 > unidades) then
                 begin
                   salida2:=salida2+1;
                   stock22:=stock22-unidades;
                   unsalida2:=unsalida2+unidades;
                 end
                 else
                   Writeln ('La cantidad a extraer supera el stock');
               end;
            3: begin
                 if (upcase (movimiento) = 'E' ) then
                 begin
                   entrada3:=entrada3+1;
                   stock33:=stock33+unidades;
                   unentrante3:=unentrante3+unidades;
                 end
                 else if (stock33 > unidades) then
                 begin
                   salida3:=salida3+1;
                   stock33:=stock33-unidades;
                   unsalida3:=unsalida3+unidades;
                 end
                 else
                   Writeln ('La cantidad a extraer supera el stock');
               end;
            4: begin
                 if (upcase (movimiento) = 'E' )then
                 begin
                   entrada4:=entrada4+1;
                   stock44:=stock44+unidades;
                   unentrante4:=unentrante4+unidades;
                 end
                 else if (stock44 > unidades) then
                 begin
                   salida4:=salida4+1;
                   stock44:=stock44-unidades;
                   unsalida4:=unsalida4+unidades;
                 end
                 else
                   Writeln ('La cantidad a extraer supera el stock');
               end;
            5: begin
                 if (upcase (movimiento) = 'E' )then
                 begin
                   entrada5:=entrada5+1;
                   stock55:=stock55+unidades;
                   unentrante4:=unentrante5+unidades;
                 end
                 else if (stock55 > unidades) then
                 begin
                   salida5:=salida5+1;
                   stock55:=stock55-unidades;
                   unsalida5:=unsalida5+unidades;
                 end
                 else
                   Writeln ('La cantidad a extraer supera el stock');
               end;
            end { case }
        end { if (unidades > 0)... }
        else
          Writeln ('La cantidad de unidades deben ser mayores a 0');
      end { if (Upcase(movimiento)='E')... }
      else
        Writeln ('Movimiento invalido')
    end { if (producto > 0)... }
    else
      Writeln ('Codigo de producto invalido');

    Write ('Desea cargar otra operacion? S/N ');
    Readln (op);
  until Upcase(op) = 'N';
Revisa las líneas faltantes comentadas por: "(*)".

Sólo verifiqué los errores de compilación, no sé si la lógica del código cumple su cometido.

Saludos :)

JPSepu96 02-08-2015 17:57:05

Perfecto!! Era eso!
Me faltan los begin y end de los if.
Muchisimas Gracias!!


La franja horaria es GMT +2. Ahora son las 13:21:17.

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