104 Fundamentos de programación
3.9. LA OPERACIÓN DE ASIGNACIÓN
La operación de asignación es el modo de almacenar valores a una variable. La operación de asignación se represen-
ta con el símbolo u operador ← (en la mayoría de los lenguajes de programación, como C, C++, Java, el signo de la
operación asignación es =). La operación de asignación se conoce como instrucción o sentencia de asignación cuan-
do se refiere a un lenguaje de programación. El formato general de una operación de asignación es
<nombre de la variable> ← <expresión>
expresión es igual a expresión, variable o constante
La flecha (operador de asignación) se sustituye en otros lenguajes por = (Visual Basic, FORTRAN), := (Pascal)
o = (Java, C++, C#). Sin embargo, es preferible el uso de la flecha en la redacción del algoritmo para evitar ambi-
güedades, dejando el uso del símbolo = exclusivamente para el operador de igualdad.
La operación de asignación:
A ← 5
significa que a la variable A se le ha asignado el valor 5.
La acción de asignar es destructiva, ya que el valor que tuviera la variable antes de la asignación se pierde y se
reemplaza por el nuevo valor. Así, en la secuencia de operaciones
A ← 25
A ← 134
A ← 5
cuando éstas se ejecutan, el valor último que toma A será 5 (los valores 25 y 134 han desaparecido).
La computadora ejecuta la sentencia de asignación en dos pasos. En el primero de ellos, el valor de la expresión
al lado derecho del operador se calcula, obteniéndose un valor de un tipo específico. En el segundo caso, este valor
se almacena en la variable cuyo nombre aparece a la izquierda del operador de asignación, sustituyendo al valor que
tenía anteriormente.
X ← Y + 2
el valor de la expresión Y + 2 se asigna a la variable X.
Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignación. Por ello, acciones
como
N ← N + 1
tienen sentido; se determina el valor actual de la variable N, se incrementa en 1 y a continuación el resultado se
asigna a la misma variable N. Sin embargo, desde el punto de vista matemático no tiene sentido N ← N + 1.
Las acciones de asignación se clasifican según sea el tipo de expresiones en: aritméticas, lógicas y de ca-
racteres.
Estructura general de un programa 105
3.9.1. Asignación aritmética
Las expresiones en las operaciones de asignación son aritméticas:
AMN ← 3 + 14 + 8 se evalúa la expresión 3 + 14 + 8 y se asigna a la variable AMN, es decir,
25 será el valor que toma AMN
TER1 ← 14.5 + 8
TER2 ← 0.75 * 3.4
COCIENTE ← TER1/TER2
Se evalúan las expresiones 14.5 + 8 y 0.75 * 3.4 y en la tercera acción se dividen los resultados de cada ex-
presión y se asigna a la variable COCIENTE, es decir, las tres operaciones equivalen a COCIENTE ← (14.5 + 8)/
(0.75 * 3.4).
Otro ejemplo donde se pueden comprender las modificaciones de los valores almacenados en una variable es el
siguiente:
A ← 0 la variable A toma el valor 0
N ← 0 la variable N toma el valor 0
A ← N + 1 la variable A toma el valor 0 + 1, es decir 1.
El ejemplo anterior se puede modificar para considerar la misma variable en ambos lados del operador de asig-
nación:
N ← 2
N ← N + 1
En la primera acción N toma el valor 2 y en la segunda se evalúa la expresión N + 1, que tomará el valor 2 +
1 = 3 y se asignará nuevamente a N, que tomará el valor 3.
3.9.2. Asignación lógica
La expresión que se evalúa en la operación de asignación es lógica. Supóngase que M, N y P son variables de tipo
lógico.
M ← 8 < 5
N ← M o (7 <= 12)
P ← 7 > 6
Tras evaluar las operaciones anteriores, las variables M, N y P tomarán los valores falso, verdadero, verdadero.
3.9.3. Asignación de cadenas de caracteres
La expresión que se evalúa es de tipo cadena:
x ← '12 de octubre de 1942'
La acción de asignación anterior asigna la cadena de caracteres '12 de octubre de 1942' a la variable tipo
cadena x.
3.9.4. Asignación múltiple
Todos los lenguajes modernos admiten asignaciones múltiples y con combinaciones de operadores, además de la
asignación única con el operador ← . Así se puede usar el operador de asignación (←) precedido por cualquiera de
los siguientes operadores aritméticos: +, –, *, /, %. La sintaxis es la siguiente:
<nombre_variable> ← <variable> <operador> <expresión>
106 Fundamentos de programación
y es equivalente a:
variable operador ← expresión
EJEMPLO
c ← c + 5 equivale a c +← 5
a ← a * (b + c) equivale a a *← b + c
o si lo prefiere utilizando el signo de asignación (=) de C, C++, Java o C#.
Caso especial
Los lenguajes C, C++, Java y C# permiten realizar múltiples asignaciones en una sola sentencia
a = b = c = d = e = n +35;
Tabla 3.10. Operadores aritméticos de asignación múltiple
Operador de asignación Ejemplo Operación Resultado
Entero a = 3, b= 5, c = 4, d = 6, e = 10
*= a += 8 a = a+8 a = 11
-= b -= 5 b = b-5 b = 0
*= c *= 4 c = c*4 c = 16
/= d /= 3 d = d/3 d = 2
%= e %= 9 e = e%9 e = 1