¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
System i5 iSeries AS400 Recursos. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Noticias tecnológicas

Documentos
Funciones lógicas en RPG

 
El RPG IV con su instrucción eval, los paréntesis en las expresiones y las variables de tipo boleanas (true/false) nos proporciona una mayor versatilidad a la hora de gestionar operaciones lógicas.

Cuantas veces nos hemos puesto delante de un papel mirando todas las posibilidades ante una pregunta para entender porque razón se cumplía o no cumplía una condición, o nos hemos vuelto locos intentando buscar una pregunta que sustituya un montón de comparaciones.

En este documento trataremos las 6 funciones lógicas que existen en la mayoría de lenguajes y que bien nos pueden servir para nuestra labor.


NOT Invierte el resultado de una expresión

Expresión Resultado
TRUE FALSE
FALSE TRUE

La sintaxis en RPG es: Eval *In25 = Not(Alfa = 'A')

OR Responde a la pregunta: Alguna de las dos expresiones se cumple?

expr1 expr2 Resultado
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE


Correspondería al resultado de la suma de las expresiones.

La sintaxi en RPG es: Eval *In25 = ((Alfa = 'A') or (Alfa = 'B'))

que seria lo mismo que decir:

If Alfa = 'A' or Alfa = 'B'

Eval *In25 = *On

Else

Eval *In25 = *Off

EndIf

AND Responde a la pregunta: Se cumplen las dos expresiones?

expr1 expr2 Resultado
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE

Correspondería a la multiplicación de las expresiones.

La sintaxis en RPG es: Eval *In25 = ((Alfa = 'A') And (Alfa = 'B'))

XOR Responde a la pregunta: Una de las expresiones es cierta y la otra es falsa?

expr1 expr2 Resultado
TRUE TRUE FALSE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE

Se conoce a esta comparación como exclusión lógica.

La sintaxi en RPG es: Eval *In25 = ((Alfa = 'A') <> (Alfa = 'B'))

EQV Responde a la pregunta: Las dos expresiones son idénticas?

expr1 expr2 Resultado
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE TRUE

Se conoce a esta comparación como equivalencia lógica.

La sintaxis en RPG es: Eval *In25 = ((Alfa = 'A') = (Alfa = 'B'))

IMP Responde a la pregunta: Son las dos expresiones iguales o se cumple la segunda expresión?

NOTA: por el momento aún no he encontrado ninguna aplicación práctica a esta instrucción, supongo que el hecho de hacer programas de gestión y no de cálculos matemáticos complejos, tiene algo que ver ;-)

expr1 expr2 Resultado
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE TRUE
FALSE FALSE TRUE

Se conoce a esta comparación como implicación lógica (?).

La sintaxis en RPG es: Eval *In25 = ((Alfa = 'A') <= (Alfa = 'B'))


Àlex Corretge

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 

Ver más documentos
Subir a la parte superior de la web

 

NUESTRA COMUNIDAD EN
ÚNETE Y.... ¡¡ PARTICIPA !!
Dossiers técnicos iSeries y AS400
- Seguridad
- Alta disponibilidad.
Nuestros links favoritos
- Tendencias tecnologías de la información
Expertos en tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware y shareware para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049