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
switchen 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,NUM2yRESULT. - PROCEDURE DIVISION: Contiene la lógica del programa. La sentencia
IFcomparaNUM1yNUM2y 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-WEEKy 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
