IDENTIFICATION DIVISION.
PROGRAM-ID. Calculo-Digitos-SS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Numero-Afiliacion PIC X(12) VALUE '123456789012'. -- Reemplaza con tu número de afiliación.
PROCEDURE DIVISION.
DECLARATIVE SECTION.
01 Tarjetas-De-Digitos.
05 Tarjeta.
10 Tarjeta-Inicial PIC X(2).
10 Tarjeta-Final PIC X(2).
END DECLARATIVE.
-- Divide el número de afiliación en tarjetas de 2 dígitos.
MOVE FUNCTION NUMVAL(Numero-Afiliacion(1:2)) TO Tarjeta.Tarjeta-Inicial.
MOVE FUNCTION NUMVAL(Numero-Afiliacion(3:2)) TO Tarjeta.Tarjeta-Final.
-- Realiza cálculos o aplicaciones específicas según las reglas de tu entidad de seguridad social.
-- Por ejemplo, puedes sumar los valores de las tarjetas de 2 dígitos.
-- Calcula los dos últimos dígitos resultantes.
COMPUTE Tarjeta.Tarjeta-Final = Tarjeta.Tarjeta-Final MOD 100.
-- Convierte los dígitos finales en formato de texto si es necesario.
MOVE FUNCTION EDIT(Tarjeta.Tarjeta-Final, '99') TO Numero-Afiliacion(11:2).
-- Muestra el resultado.
DISPLAY 'Número de Afiliación con 2 últimos dígitos calculados: ' Numero-Afiliacion.
STOP RUN.