Estructura general de un programa 97
Operadores de incremento y decremento
Los lenguajes de programación C/C++, Java y C# soportan los operadores unitarios (unarios) de incremento, ++, y
decremento, --. El operador de incremento (++) aumenta el valor de su operando en una unidad, y el operador de
decremento (--) disminuye también en una unidad. El valor resultante dependerá de que el operador se emplee como
prefijo o como sufijo (antes o después de la variable). Si actúa como prefijo, el operador cambia el valor de la varia-
ble y devuelve este nuevo valor; en caso contrario, si actúa como sufijo, el resultado de la expresión es el valor de la
variable, y después se modifica esta variable.
++i Incrementa i en 1 y después utiliza el valor de i en la correspondiente expresión.
i++ Utiliza el valor de i en la expresión en que se encuentra y después se incrementa en 1.
--i Decrementa i en 1 y después utiliza el nuevo valor de i en la correspondiente expresión.
i-i-- Utiliza el valor de i en la expresión en que se encuentra y después se incrementa en 1.
EJEMPLO:
n = 5
escribir n
escribir n++
escribir n
n = 5
escribir n
escribir ++n
escribir n
Al ejecutarse el algoritmo se obtendría:
5
5
6
5
6
6
3.7.2. Reglas de prioridad
Las expresiones que tienen dos o más operandos requieren unas reglas matemáticas que permitan determinar el orden
de las operaciones, se denominan reglas de prioridad o precedencia y son:
1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis
anidados (interiores unos a otros), las expresiones más internas se evalúan primero.
2. Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad:
• operador ( )
• operadores ++, – – + y – unitarios,
• operadores *, /, % (producto, división, módulo)
• operadores +, – (suma y resta).
En los lenguajes que soportan la operación de exponenciación, este operador tiene la mayor prioridad.
En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre parén-
tesis, el orden de prioridad en este caso es de izquierda a derecha, y a esta propiedad se denomina asociatividad.
Estructura general de un programa 99
(A * B) + 3 A y B se multiplican primero y a continuación se suma 3.
A + (B + C) + D esta expresión equivale a A + B + C + D
(A + B/C) + D equivale a A + B/C + D
A * B/C * D equivale a ((A * B)/C) * D y no a (A * B)/(C * D).
EJEMPLO 3.6
Evaluar la expresión 12 + 3 * 7 + 5 * 4.
En este ejemplo existen dos operadores de igual prioridad, * (multiplicación); por ello los pasos sucesivos son:
12 + 3 * 7 + 5 * 4
{
21
12 + 21 + 5 * 4
{
20
12 + 21 + 20 = 53
3.7.3. Expresiones lógicas (booleanas)
Un segundo tipo de expresiones es la expresión lógica o booleana, cuyo valor es siempre verdadero o falso. Recuer-
de que existen dos constantes lógicas, verdadera (true) y falsa (false) y que las variables lógicas pueden tomar sólo
estos dos valores. En esencia, una expresión lógica es una expresión que sólo puede tomar estos dos valores, verda-
dero y falso. Se denominan también expresiones booleanas en honor del matemático británico George Boole, que
desarrolló el Álgebra lógica de Boole.
Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas,
utilizando los operadores lógicos not, and y or y los operadores relacionales (de relación o comparación) =, <,
>, <=, >=, <>.
Operadores de relación
Los operadores relacionales o de relación permiten realizar comparaciones de valores de tipo numérico o carácter.
Los operadores de relación sirven para expresar las condiciones en los algoritmos. Los operadores de relación se
recogen en la Tabla 3.4. El formato general para las comparaciones es
expresión1 operador de relación expresión2
y el resultado de la operación será verdadero o falso. Así, por ejemplo, si A = 4 y B = 3, entonces
A > B es verdadero
Tabla 3.4. Operadores de relación
Operador Significado
< menor que
> mayor que
=, == igual que
<= menor o igual que
>= mayor o igual que
<>, != distinto de
Estructura general de un programa 101
Operadores lógicos
Los operadores lógicos o booleanos básicos son not (no), and (y) y or (o). La Tabla 3.5 recoge el funciona-
miento de dichos operadores.
Tabla 3.5. Operadores lógicos
Operador lógico Expresión lógica Significado
no (not), ! no p (not p) negación de p
y (and), && p y q (p and q) conjunción de p y q
o (o), || p o q (p o q) disyunción de p y q
Las definiciones de las operaciones no, y, o se resumen en unas tablas conocidas como tablas de verdad.
a no a
verdadero falso no (6>10) es verdadera
falso verdadero ya que (6>10) es falsa.
a b a y b
verdadero verdadero verdadero a y b es verdadera sólo
verdadero falso falso si a y b son verdaderas.
falso verdadero falso
falso falso falso
a b a o b
verdadero verdadero verdadero a o b es verdadera cuando
verdadero falso verdadero a, b o ambas son verdaderas.
falso verdadero verdadero
falso falso falso
En las expresiones lógicas se pueden mezclar operadores de relación y lógicos. Así, por ejemplo,
(1 < 5) y (5 < 10) es verdadera
(5 > 10) o ('A' < 'B') es verdadera, ya que 'A' < 'B'
EJEMPLO 3.7
La Tabla 3.6 resume una serie de aplicaciones de expresiones lógicas.
Tabla 3.6. Aplicaciones de expresiones lógicas
Expresión lógica Resultado Observaciones
(1 > 0) y (3 = 3) verdadero
no PRUEBA verdadero ∙PRUEBA es un valor lógico falso.
(0 < 5) o (0 > 5) verdadero
(5 <= 7) y (2 > 4) falso
no (5 <> 5) verdadero
(numero = 1) o (7 >= 4) verdadero ∙numero es una variable entera de valor 5.