Está en la página 1de 21

SEMANA 3 – PROGRAMACIÓN

PROGRAMACIÓN

SEMANA 3
Expresiones y operadores

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACCemitir, difundir, poner a disposición del público ni
permitido copiar, reproducir, reeditar, descargar, publicar,
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 3 – PROGRAMACIÓN

APRENDIZAJE ESPERADO
• Utilizar diferentes tipos de expresiones y
operadores del lenguaje PHP en
problemáticas de programación que
requieran una solución.

IACC
2
SEMANA 3 – PROGRAMACIÓN

APRENDIZAJE ESPERADO ................................................................................................................ 2


INTRODUCCIÓN.............................................................................................................................. 4
1. EXPRESIONES Y OPERACIONES................................................................................................ 5
1.1 TIPOS DE OPERADORES ................................................................................................... 5
1.1.1 OPERADORES ARITMÉTICOS .................................................................................... 5
1.1.2 OPERADORES RELACIONALES .................................................................................. 7
1.1.3 OPERADORES DE ASIGNACIÓN .............................................................................. 11
1.1.4 OPERADORES DE INCREMENTO Y DECREMENTO ................................................... 12
1.1.5 OPERADORES LÓGICOS ......................................................................................... 13
1.1.6 OPERADORES DE CADENAS ................................................................................... 16
1.1.7 ESPECIALES ........................................................................................................... 16
1.1.8 PRECEDENCIA O JERARQUÍA .................................................................................. 17
COMENTARIO FINAL..................................................................................................................... 19
REFERENCIAS ............................................................................................................................... 20

IACC
3
SEMANA 3 – PROGRAMACIÓN

INTRODUCCIÓN
Al momento de programar en cualquier En ese sentido, es trascendental el poder
lenguaje de programación, además de reconocer de qué manera PHP traduce las
conocer la sintaxis especifica del lenguaje, es expresiones y los operadores, ya que en todos
muy importante también poder representar los lenguajes de programación existen estos
expresiones y conocer los diferentes operadores y se representan para poder
operadores que tendrá el programador como generar las salidas luego de hacer el
herramienta para traducir sus algoritmos en procesamiento de datos de entrada.
códigos fuente.
En esta semana, se estudiarán los diferentes
De esta manera, se podrá representar y tipos de operadores que existen en el
operar los datos introducidos por el usuario a lenguaje PHP, así como la construcción de
fin de ser procesados y generar una respuesta expresiones usando estos operadores, con el
de acuerdo con la naturaleza de estos, ya sea objetivo de manejar y operar los diferentes
por medio de operaciones numéricas o tipos de datos que sean requeridos en un
matemáticas, operaciones lógicas o entre programa informático.
cadenas de caracteres.

El logro más impresionante de la industria del software es su continua anulación de los constantes
y asombrosos logros de la industria del hardware.

Henry Petroski

IACC
4
SEMANA 3 – PROGRAMACIÓN

1. EXPRESIONES Y OPERACIONES
En todo lenguaje de programación existen diferentes tipos de operadores. Estos operadores
permitirán operar datos numéricos, lógicos, alfanuméricos o de distintas naturalezas, y sin el uso
adecuado de los operadores las expresiones que se obtienen generarán errores al ejecutar el
programa. A continuación, se describirán dentro del contexto del lenguaje de programación PHP.

1.1 TIPOS DE OPERADORES


1.1.1 OPERADORES ARITMÉTICOS
PHP dispone de los clásicos operadores aritméticos, que se definen y arrojan un resultado, tal como
se muestra en el siguiente cuadro (ver Tabla 1). Como se puede observar, dichos operadores
representan las principales operaciones matemáticas.

Operación Nombre Resultado


$a + $b Suma Suma de $a y $b
$a - $b Resta Diferencia entre $a y $b
$a * $b Multiplicación Producto de $a y $b
$a / $b División Cociente de $a y $b
$a % $b Módulo Resto de la operación $a / $b
-$a Negación El opuesto de $a
Tabla 1. Operadores numéricos.

Considere que $a y $b son dos variables declaradas en el programa que se están operando.

Ejemplo:

Al ejecutar el siguiente código en PHPtester.net utilizando el operador “suma” para operar dos
números (variable $a y $b), el resultado será de 45 y será visualizado en pantalla, como se muestra
en el siguiente código.

IACC
5
SEMANA 3 – PROGRAMACIÓN

Ejemplo:

Suponga que quiere obtener el promedio de edades de 5 personas:

• Persona 1: 50 años
• Persona 2: 35 años
• Persona 3: 33 años
• Persona 4: 18 años
• Persona 5: 21 años

De tal modo, primero se deben sumar todas las edades y dividir entre el número de personas. En
el código de PHP quedaría de la siguiente manera:

En el ejemplo anterior, el resultado que se muestra es 31,4. Observe que en este ejemplo se utilizó
el operador de la suma y el operador de la división.

IACC
6
SEMANA 3 – PROGRAMACIÓN

• En el siguiente enlace, se comparan los diferentes operadores


aritméticos y se muestran ejercicios para complementar el
contenido anterior:

https://bit.ly/2Srywnn

1.1.2 OPERADORES RELACIONALES


Los operadores relacionales o de comparación permiten comparar los valores de dos variables. Estos
operadores son:

Operación Nombre Resultado


Compara si las dos variables tienen el
$a == $b Igualdad
mismo valor
Compara si tiene el mismo valor, y si
$a === $b Identidad
coinciden en el tipo
Se cumple si las dos variables no tienen
$a != $b No igual
el mismo valor
Se cumple si las variables no son iguales
$a !== $b No idéntico
y no tienen el mismo tipo
$a < $b Menor que $a es menor que $b

$a > $b Mayor que $a es mayor que $b

$a <= $b Menor o igual que $a es menor o igual que $b

$a >= $b Mayor o igual que $a es mayor o igual que $b

$a < > $b No igual El valor de $a no es igual al de $b


Tabla 2. Operadores relacionales.

Es usual que estos operadores se utilicen en estructuras condicionales, en donde se requiere de


una condición para ejecutar algunas tareas o líneas de código.

IACC
7
SEMANA 3 – PROGRAMACIÓN

Ejemplo:

En el siguiente programa, se declaran dos variables A y B, y por medio de una condición (if), se
pregunta: si A es menor o igual a 3 y B es diferente de 9 entonces se cumple la condición; de lo
contrario, no se cumple.

Ahora, cambiando los valores de A y B, ocurre lo siguiente:

En vista de este cambio, en el ejemplo anterior no se cumple la condición ya que A es mayor a 3 y


además B es igual a 9.

• En PHP, estos operadores generan un resultado lógico o


booleano, es decir, si se cumple la condición se
representa como un 1 o “true” y, de lo contrario, la
relación es “false” o 0.

IACC
8
SEMANA 3 – PROGRAMACIÓN

1.1.2.1 EJEMPLOS ADICIONALES

Dados los valores A = 10, B = 3 y C = -12, pruebe en PHP las siguientes expresiones:

Ejemplo a):

A es igual a 10 y 10 es mayor a 3, por lo tanto, se cumple la condición y a la salida, se observa un 1.

Ejemplo b):

Observe que la salida es 1 ya que 10 es mayor que -12

IACC
9
SEMANA 3 – PROGRAMACIÓN

Ejemplo c):

Note cómo el resultado se muestra vacío o en 0, ya que no se cumple la condición que se evalúa
con los operadores. Esto se asume como un resultado false (falso).

Ejemplo d):

Como 3 no es menor que -12, la condición tampoco se cumple en este caso.

Ejemplo e):

Como B es diferente de C, se cumple la condición y el resultado es 1 o true.

Ejemplo f):

Como A no es igual a 3, la condición no se cumple y es false.

IACC
10
SEMANA 3 – PROGRAMACIÓN

Ejemplo g):

En este caso, se pregunta en la condición si la multiplicación de A y B es igual a 15. Como A = 10 y B


= 3, entonces no se cumple la igualdad.

• En el siguiente enlace, se muestran más ejercicios utilizando


los operadores relacionales:

https://bit.ly/2zfEyyA

1.1.3 OPERADORES DE ASIGNACIÓN


El operador de asignación es “=”, lo que significa que el operando va a tomar el valor de la expresión
de la igualdad, es decir, “tomar el valor de”. Por ejemplo:

$a = ($b = 4) + 5;

El valor de la variable a es igual ahora a 9

También existen los operadores combinados para las operaciones aritméticas y de cadenas que sean
binarias. Ello permite usar una variable en una expresión y luego establecer el valor de esa variable
como resultado de la expresión. Por ejemplo:

$a = 3;
$a += 5 ; //asigna a la variable a el valor de
8
$b = hola
$b .= “como estás?” // establece en b la cadena: hola
como estas?

IACC
11
SEMANA 3 – PROGRAMACIÓN

1.1.4 OPERADORES DE INCREMENTO Y DECREMENTO


PHP soporta operadores de pre y post decremento e incremento, similar al lenguaje de
programación C. Dichos operadores no afectan a valores booleanos. Estos operadores son:

Operación Nombre Resultado


++$a Pre-incremento Incrementa 1 en $a, y lo muestra
$a++ Post-incremento Muestra $a y luego lo incrementa en 1
--$a Pre-decremento Decrementa 1 en $a, y lo muestra
$a-- Post-decremento Muestra $a y luego lo incrementa en 1
Tabla 3. Operadores de incremento y decremento.

El siguiente programa muestra el uso de estos cuatro operadores utilizando PHPtester:

<?php
echo "<h3>Postincremento</h3>";
$a = 5;
echo "Debe ser 5: " . $a++ . "<br />\n";
echo "Debe ser 6: " . $a . "<br />\n";

echo "<h3>Preincremento</h3>";
$a = 5;
echo "Debe ser 6: " . ++$a . "<br />\n";
echo "Debe ser 6: " . $a . "<br />\n";

echo "<h3>Postdecremento</h3>";
$a = 5;
echo "Debe ser 5: " . $a-- . "<br />\n";
echo "Debe ser 4: " . $a . "<br />\n";

echo "<h3>Predecremento</h3>";
$a = 5;
echo "Debe ser 4: " . --$a . "<br />\n";
echo "Debe ser 4: " . $a . "<br />\n";
?>

IACC
12
SEMANA 3 – PROGRAMACIÓN

La siguiente imagen muestra la salida en pantalla del programa anterior:

1.1.5 OPERADORES LÓGICOS


Estos operadores realizan operaciones dependiendo del valor booleano de los operandos. Los
operadores lógicos son:

Operación Nombre Resultado


$a and $b Y Cierto si $a y $b son ciertos
$a or $b O Cierto si $a o $b son ciertos
$a xor $b O Exclusivo Cierto si $a o $b son ciertos, pero no ambos
! $a No Cierto si $a es falso
$a && $b Y Cierto si $a y $b son ciertos
$a | | $b O Cierto si $a o $b son ciertos
Tabla 4. Operadores lógicos.

IACC
13
SEMANA 3 – PROGRAMACIÓN

• La razón por la que hay dos operadores distintos para


operaciones Y y O lógicas, es que tienen distinta precedencia
o jerarquía. También es importante considerar que estos
operadores suelen presentarse con operadores relacionales
o aritméticos de forma combinada.

Para probar la lógica de estos operadores, se evaluará un conjunto de expresiones con estos
operadores. Considere entonces las variables de tipo entero con valores $A = 5, $B = 3, $C = -12

a) ($A+$B == 8) && ($A-$B == 2)


b) $A > 3 && $B > 3 && $C < 3
c) ($A+$B == 8) || ($A-$B == 6)
d) $A > 3 && $B >= 3 && $C < -3

Ejemplo a):

Al evaluar la expresión a), el resultado es 1, ya que se cumplen las dos condiciones tal como lo
señala la lógica de operación del operador “Y” (and, &&)

Observe que la primera condición es que A + B debe ser igual a 8, como A es igual a 5 y B = 3 se
cumple la igualdad. Por otro lado A – B = 2, por lo tanto, la segunda condición también es afirmativa.
Si ambas condiciones implicadas en una operación && se cumplen, entonces el resultado es true o
1.

Ejemplo b):

IACC
14
SEMANA 3 – PROGRAMACIÓN

En este caso se tienen 3 condiciones,:

• La primera condición: A > 3, se cumple, ya que A = 5.


• La segunda condición: B > 3, no se cumple, ya que B = 3 y, por lo tanto, no es mayor.
• La tercera condición: C > 3, se cumple, ya que C = -12 y, por lo tanto, no es mayor a 3.

Sin embargo, para que la salida sea true o 1 se deben cumplir todas las condiciones presentes.

Ejemplo c):

En este caso hay dos condiciones.

La primera se cumple ya que A + B es igual a 8, pero la segunda condición no se cumple.

A pesar de esto, la salida es 1 ya que el operador lógico que está presente es una “o” (or, ||).

Ejemplo d):

En este caso, se tiene una operación AND con 3 condiciones y las 3 se cumplen.

IACC
15
SEMANA 3 – PROGRAMACIÓN

• En el siguiente enlace se muestran ejercicios utilizando los


operadores lógicos para complementar el material descrito.

https://bit.ly/2RpF5pn

1.1.6 OPERADORES DE CADENAS


Para operar con cadenas solo se dispone de un operador, donde la concatenación de cadenas se
representa por el punto ‘.’. Por ejemplo:

Este ejemplo da como asignación a $c la cadena “El resultado de 1 + 2 es 3”.

1.1.7 ESPECIALES
Los operadores especiales, se pueden observar en la siguiente tabla:

Operación Resultado
$a = (int) $b $a toma el valor de $b convertido en un entero
$a = obj.var1 $a toma valores de la variable de clase o
método invocado.
$a = ($a + $b) * $c $a toma el valor resultante al realizar
operaciones acorde a la jerarquía de operadores
Tabla 5. Operadores especiales.

IACC
16
SEMANA 3 – PROGRAMACIÓN

1.1.8 PRECEDENCIA O JERARQUÍA


La procedencia de los operadores resuelve el orden en el que se evalúa una expresión múltiple que
no ha sido delimitada con paréntesis. Por ejemplo: si se tiene la siguiente suma 5 + 3 * 7, PHP lo
interpretaría como 5 + (3*7)= 26 y no (5+3)*7=56. Esto se debe a que el producto tiene mayor
precedencia que la suma.

Esta jerarquía se puede ver representada en el siguiente esquema:

()
Paréntesis

^
Exponenciación
*, /
Multiplicación, división
+, -,
Suma, resta
=, < >, >, <, >=, <=
Igual, distinto, mayor que, menor que, mayor o igual
que, menor o igual que
No (Not)
No se cumple que
y (And)
Y se cumple que
o (Or)
O se cumple que

Figura 1. Precedencia de los operadores en PHP.


Fuente: Elaboración propia basada en https://goo.gl/tqBikB

En la siguiente tabla, se muestra la precedencia de acuerdo con los tipos de operadores que tiene
PHP:

IACC
17
SEMANA 3 – PROGRAMACIÓN

Asociatividad Operandos
Izquierda ,
Izquierda Or
Izquierda Xor
Izquierda And
Derecha = += -= *= /= .= %= &= |= ^= ~= <<= >>=
Izquierda ? :
Izquierda | |
Izquierda &&
Izquierda |
Izquierda ^
Izquierda &
No asociativo == != === !==
No asociativo < <= > >=
Izquierda << >>
Izquierda + - .
Izquierda * / %
Derecha !
No asociativo ~ - (int) (float) (string) (array) (object) (bool) @
No asociativo ++ --
Izquierda [
No asociativo Clone new
Tabla 6. Precedencia de los operadores.

La tabla muestra la asociatividad de los operandos en PHP, y está ordenada en orden creciente de
precedencia (los más prioritarios al final). La asociatividad de izquierda quiere decir que la expresión
es evaluada desde la izquierda a derecha, mientras que la asociatividad de derecha significa lo
contrario.

IACC
18
SEMANA 3 – PROGRAMACIÓN

COMENTARIO FINAL
Siempre que se operen datos existirán operadores y expresiones de todos los tipos mencionados en
esta unidad. Por esta razón, es fundamental que el programador reconozca los tipos de operadores
y sea capaz de distinguirlos, identificándolos para poder incorporarlos dentro de la lógica de
programación de sus algoritmos.

Además, es importante que un programador conozca en detalle los operadores y su clasificación,


pues estos representan la base para estructuras de datos más complejas, las que son necesarias a
la hora de diseñar programas informáticos.

IACC
19
SEMANA 3 – PROGRAMACIÓN

REFERENCIAS
Sintes, B. (2018). Programación Web en PHP (sitio web). Recuperado de: https://bit.ly/2EQT1Hu

The PHP Group. (2001 – 2018). PHP. Consultado en www.php.net

PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:

IACC (2018). Expresiones y Operadores. Programación. Semana 3.

IACC
20
SEMANA 3 – PROGRAMACIÓN

IACC
21