En este tema, aprenderemos sobre los operadores y expresiones en REXX, que son fundamentales para realizar cálculos, tomar decisiones y manipular datos. Cubriremos los siguientes puntos:

  1. Operadores Aritméticos
  2. Operadores Relacionales
  3. Operadores Lógicos
  4. Operadores de Concatenación
  5. Precedencia de Operadores
  6. Ejemplos Prácticos
  7. Ejercicios

  1. Operadores Aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas básicas. A continuación se muestra una lista de los operadores aritméticos en REXX:

Operador Descripción Ejemplo
+ Suma a + b
- Resta a - b
* Multiplicación a * b
/ División a / b
// División entera a // b
** Exponenciación a ** b
%% Módulo (residuo) a %% b

Ejemplo:

/* Ejemplo de operadores aritméticos */
a = 10
b = 3

say "Suma: " a + b         /* 13 */
say "Resta: " a - b        /* 7 */
say "Multiplicación: " a * b /* 30 */
say "División: " a / b     /* 3.333333 */
say "División entera: " a // b /* 3 */
say "Exponenciación: " a ** b /* 1000 */
say "Módulo: " a %% b      /* 1 */

  1. Operadores Relacionales

Los operadores relacionales se utilizan para comparar dos valores. Los resultados de estas comparaciones son valores booleanos (1 para verdadero y 0 para falso).

Operador Descripción Ejemplo
= Igual a a = b
\= No igual a a \= b
> Mayor que a > b
< Menor que a < b
>= Mayor o igual que a >= b
<= Menor o igual que a <= b

Ejemplo:

/* Ejemplo de operadores relacionales */
a = 10
b = 3

say "Igual a: " (a = b)        /* 0 (falso) */
say "No igual a: " (a \= b)    /* 1 (verdadero) */
say "Mayor que: " (a > b)      /* 1 (verdadero) */
say "Menor que: " (a < b)      /* 0 (falso) */
say "Mayor o igual que: " (a >= b) /* 1 (verdadero) */
say "Menor o igual que: " (a <= b) /* 0 (falso) */

  1. Operadores Lógicos

Los operadores lógicos se utilizan para combinar expresiones booleanas.

Operador Descripción Ejemplo
& Y lógico (AND) a & b
` ` O lógico (OR)
\ No lógico (NOT) \a

Ejemplo:

/* Ejemplo de operadores lógicos */
a = 1
b = 0

say "Y lógico: " (a & b)       /* 0 (falso) */
say "O lógico: " (a | b)       /* 1 (verdadero) */
say "No lógico: " (\a)         /* 0 (falso) */

  1. Operadores de Concatenación

Los operadores de concatenación se utilizan para unir cadenas de texto.

Operador Descripción Ejemplo
` `

Ejemplo:

/* Ejemplo de operadores de concatenación */
str1 = "Hello"
str2 = "World"

say "Concatenación: " str1 || " " || str2  /* Hello World */

  1. Precedencia de Operadores

La precedencia de operadores determina el orden en que se evalúan las expresiones. A continuación se muestra una tabla con la precedencia de operadores en REXX, de mayor a menor:

Operador Descripción
** Exponenciación
*, /, //, %% Multiplicación, División, Módulo
+, - Suma, Resta
=, \=, >, <, >=, <= Relacionales
& Y lógico (AND)
` `
\ No lógico (NOT)
`

Ejemplo:

/* Ejemplo de precedencia de operadores */
a = 2
b = 3
c = 4

result = a + b * c ** 2
say "Resultado: " result  /* 38 (b * c^2 se evalúa primero, luego a + resultado) */

  1. Ejemplos Prácticos

Ejemplo 1: Cálculo de Área de un Círculo

/* Cálculo del área de un círculo */
radius = 5
pi = 3.14159
area = pi * radius ** 2

say "El área del círculo es: " area  /* 78.53975 */

Ejemplo 2: Comparación de Números

/* Comparación de dos números */
num1 = 10
num2 = 20

if num1 > num2 then
    say num1 "es mayor que" num2
else
    say num1 "no es mayor que" num2  /* 10 no es mayor que 20 */

  1. Ejercicios

Ejercicio 1: Operaciones Aritméticas

Escribe un programa en REXX que tome dos números como entrada y realice las siguientes operaciones: suma, resta, multiplicación, división, división entera, exponenciación y módulo. Muestra los resultados.

Ejercicio 2: Comparación de Valores

Escribe un programa en REXX que compare tres números y determine cuál es el mayor y cuál es el menor.

Ejercicio 3: Concatenación de Cadenas

Escribe un programa en REXX que tome dos cadenas de texto como entrada y las concatene con un espacio en medio. Muestra el resultado.

Soluciones

Solución Ejercicio 1

/* Solución Ejercicio 1 */
say "Introduce el primer número:"
pull num1
say "Introduce el segundo número:"
pull num2

say "Suma: " num1 + num2
say "Resta: " num1 - num2
say "Multiplicación: " num1 * num2
say "División: " num1 / num2
say "División entera: " num1 // num2
say "Exponenciación: " num1 ** num2
say "Módulo: " num1 %% num2

Solución Ejercicio 2

/* Solución Ejercicio 2 */
say "Introduce el primer número:"
pull num1
say "Introduce el segundo número:"
pull num2
say "Introduce el tercer número:"
pull num3

if num1 > num2 & num1 > num3 then
    say num1 "es el mayor"
else if num2 > num1 & num2 > num3 then
    say num2 "es el mayor"
else
    say num3 "es el mayor"

if num1 < num2 & num1 < num3 then
    say num1 "es el menor"
else if num2 < num1 & num2 < num3 then
    say num2 "es el menor"
else
    say num3 "es el menor"

Solución Ejercicio 3

/* Solución Ejercicio 3 */
say "Introduce la primera cadena:"
pull str1
say "Introduce la segunda cadena:"
pull str2

result = str1 || " " || str2
say "Resultado de la concatenación: " result

Conclusión

En esta sección, hemos aprendido sobre los operadores y expresiones en REXX, incluyendo operadores aritméticos, relacionales, lógicos y de concatenación. También hemos visto cómo la precedencia de operadores afecta la evaluación de las expresiones. Los ejemplos prácticos y ejercicios proporcionados te ayudarán a reforzar estos conceptos y prepararte para los siguientes temas en el curso.

© Copyright 2024. Todos los derechos reservados