Las sentencias condicionales en COBOL permiten que un programa tome decisiones y ejecute diferentes bloques de código en función de ciertas condiciones. Este es un concepto fundamental en la programación, ya que permite que los programas sean dinámicos y respondan a diferentes situaciones.
Conceptos Clave
- IF-ELSE: La estructura básica de decisión en COBOL.
- EVALUATE: Similar a la sentencia
switch
en otros lenguajes de programación. - CONDICIONES: Cómo definir y utilizar condiciones en COBOL.
IF-ELSE
La sentencia IF-ELSE
en COBOL se utiliza para ejecutar un bloque de código si una condición es verdadera y otro bloque si la condición es falsa.
Sintaxis
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. IfElseExample. DATA DIVISION. WORKING-STORAGE SECTION. 01 NUM1 PIC 9(2) VALUE 10. 01 NUM2 PIC 9(2) VALUE 20. 01 RESULT PIC X(20). PROCEDURE DIVISION. IF NUM1 > NUM2 THEN MOVE "NUM1 is greater" TO RESULT ELSE MOVE "NUM2 is greater" TO RESULT END-IF. DISPLAY RESULT. STOP RUN.
Explicación
- IDENTIFICATION DIVISION: Define el nombre del programa.
- DATA DIVISION: Declara las variables
NUM1
,NUM2
yRESULT
. - PROCEDURE DIVISION: Contiene la lógica del programa. La sentencia
IF
comparaNUM1
yNUM2
y mueve el resultado correspondiente a la variableRESULT
.
EVALUATE
La sentencia EVALUATE
en COBOL es similar a la sentencia switch
en otros lenguajes de programación. Permite evaluar una expresión y ejecutar diferentes bloques de código basados en el valor de esa expresión.
Sintaxis
EVALUATE expression WHEN value-1 statement-1 WHEN value-2 statement-2 WHEN OTHER statement-3 END-EVALUATE.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. EvaluateExample. DATA DIVISION. WORKING-STORAGE SECTION. 01 DAY-OF-WEEK PIC 9 VALUE 3. 01 DAY-NAME PIC X(10). PROCEDURE DIVISION. EVALUATE DAY-OF-WEEK WHEN 1 MOVE "Monday" TO DAY-NAME WHEN 2 MOVE "Tuesday" TO DAY-NAME WHEN 3 MOVE "Wednesday" TO DAY-NAME WHEN 4 MOVE "Thursday" TO DAY-NAME WHEN 5 MOVE "Friday" TO DAY-NAME WHEN 6 MOVE "Saturday" TO DAY-NAME WHEN 7 MOVE "Sunday" TO DAY-NAME WHEN OTHER MOVE "Invalid" TO DAY-NAME END-EVALUATE. DISPLAY DAY-NAME. STOP RUN.
Explicación
- DAY-OF-WEEK: Variable que contiene el día de la semana como un número.
- EVALUATE: Evalúa el valor de
DAY-OF-WEEK
y mueve el nombre correspondiente del día aDAY-NAME
.
Condiciones
Las condiciones en COBOL se utilizan para comparar valores y pueden ser simples o compuestas.
Condiciones Simples
Condiciones Compuestas
Ejercicios Prácticos
Ejercicio 1
Escribe un programa COBOL que lea un número del usuario y determine si es positivo, negativo o cero.
Solución
IDENTIFICATION DIVISION. PROGRAM-ID. PositiveNegativeZero. DATA DIVISION. WORKING-STORAGE SECTION. 01 USER-NUMBER PIC S9(4). PROCEDURE DIVISION. DISPLAY "Enter a number: " WITH NO ADVANCING. ACCEPT USER-NUMBER. IF USER-NUMBER > 0 THEN DISPLAY "The number is positive." ELSE IF USER-NUMBER < 0 THEN DISPLAY "The number is negative." ELSE DISPLAY "The number is zero." END-IF. STOP RUN.
Ejercicio 2
Escribe un programa COBOL que determine el mayor de tres números.
Solución
IDENTIFICATION DIVISION. PROGRAM-ID. LargestOfThree. DATA DIVISION. WORKING-STORAGE SECTION. 01 NUM1 PIC 9(2). 01 NUM2 PIC 9(2). 01 NUM3 PIC 9(2). 01 LARGEST PIC 9(2). PROCEDURE DIVISION. DISPLAY "Enter first number: " WITH NO ADVANCING. ACCEPT NUM1. DISPLAY "Enter second number: " WITH NO ADVANCING. ACCEPT NUM2. DISPLAY "Enter third number: " WITH NO ADVANCING. ACCEPT NUM3. IF NUM1 >= NUM2 AND NUM1 >= NUM3 THEN MOVE NUM1 TO LARGEST ELSE IF NUM2 >= NUM1 AND NUM2 >= NUM3 THEN MOVE NUM2 TO LARGEST ELSE MOVE NUM3 TO LARGEST END-IF. DISPLAY "The largest number is: " LARGEST. STOP RUN.
Conclusión
En esta sección, hemos aprendido sobre las sentencias condicionales en COBOL, incluyendo IF-ELSE
y EVALUATE
. Estas estructuras permiten que los programas tomen decisiones basadas en condiciones, lo que es fundamental para crear programas dinámicos y flexibles. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En el próximo módulo, exploraremos los constructos de bucle en COBOL.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL