A continuación se muestra una fórmula que se implementa al aplicar el código César en el campo {Cliente.Nombre del cliente} de la base de datos Xtreme:
Local StringVar inString := {Customer.Customer Name};
Local NumberVar shift := 5;
Local StringVar outString := "";
Local NumberVar i;
For i := 1 To Length(inString) Do
(
Local StringVar inC := inString [i];
Local StringVar outC;
Local BooleanVar isChar :=
LowerCase(inC) In "a" To "z";
Local BooleanVar isUCaseChar :=
isChar And (UpperCase (inC) = inC);
inC := LCase(inC);
If isChar Then
(
Local NumberVar offset :=
(Asc(inC) + shift - Asc("a")) Mod
(Asc("z") - Asc("a") + 1);
outC := Chr(offset + Asc("a"));
If isUCaseChar Then outC := UpperCase(outC)
)
Else
outC := inC;
outString := outString + outC
);
outStringEn el ejemplo anterior hay una expresión If anidada dentro del bloque de expresión del ciclo For. Esta expresión If es responsable de los detalles precisos de mover un solo carácter. Por ejemplo, las letras se tratan en forma diferente que la puntuación y los espacios. En particular, los signos de puntuación y los espacios no se codifican. Lo esencial es que las estructuras de control pueden anidarse dentro de otras estructuras de control y que se pueden incluir varias expresiones en los bloques de expresión (incluidos entre paréntesis) de otras estructuras de control.
No hay comentarios:
Publicar un comentario