Está en la página 1de 33

ICAI – 1º Grado en Ingeniería en

Tecnologías Industriales

Fundamentos de Informática

Tema 4
Operadores

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 1
Contenidos

Sección 1:
• Introducción
• Operador de asignación
• Operadores aritméticos
• Operadores monarios
Sección 2:
• Operadores relacionales
• Operadores lógicos
• Funciones de biblioteca

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 2
Sección 1
• Introducción
• Operador de asignación
• Operadores aritméticos
• Operadores monario
1

Introducción
Introducción

• OPERADOR: Entidades que actúan sobre los datos para modificarlos.

1. Operador de asignación
2. Operadores aritméticos
3. Operadores monarios
4. Operadores relacionales
5. Operadores lógicos

• OPERANDOS: Datos sobre los que actúan los operadores.


‐ Variables, constantes,...

• EXPRESIONES: Distintas formas de agrupar Operandos y Operadores.

5
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 5
2

Operador de Asignación
Operador de asignación
• Operador asignación simple (=)
• El formato de este operador es:
identificador = expresión;
• Cuando la expresión y el operador sean de distinto tipo, el valor de la expresión
de la derecha se convertirá automáticamente al tipo del identificador de la
izquierda
• Ejemplos:
a = 3; /* Guarda el valor 3 en la variable a */
x = y; /* Guarda el valor que tenga la variable y en la variable x */
suma = a + b; /*Guarda la suma de los valores de a y b en la variable suma */
area = longitud * anchura;
/*Guarda la multiplicación de los valores de las variables longitud
y anchura en la variable area */

Variable Un valor final

Asigna los resultados de la derecha a la variable de la izquierda


Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 7
Operador de asignación
• Suponiendo i y j variables enteras y j=5

Expresión Valor almacenado en i


i=j 5
i=j/2 2
i=2*j/2 5
i = 2 * (j / 2) 4

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 8
Operadores de asignación
• Operador de asignación múltiple:
identificador1 = identificador2 = ...... = expresion;
• Se asigna de derecha a izquierda
• Equivalente a:
identificador2 = expresión;
identificador1 = identificador2;
• Mejor no utilizarlo

• Operadores de asignación compuestos:


+=, ‐=, *=, /=, %=
Por ejemplo:
identificador += expresion2;
Es lo mismo que:
identificador = identificador + expresion2;
• Si plantea alguna duda, mejor no utilizarlo.
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 9
3

Operadores aritméticos
Operadores aritméticos
• Realizan operaciones con resultado numérico
• Sus operandos deben ser numéricos
• Tipos de operadores:
• Operador suma (+)
• Operador resta (‐)
• Operador multiplicación (*)
• Operador división (/)
• Divisor distinto de cero
• Si dividendo y divisor son:
• Enteros: El resultado será un entero truncado.
• Float: El resultado será un float.
• Entero y float: El resultado será un float.
• Operador resto de división entera (%)
• Ambos operadores deben ser enteros y el divisor no nulo
• Se conserva en el resultado el signo del primer operando
• Se utiliza mucho para saber si un número es múltiplo de otro (resto 0)
• El lenguaje C no dispone de operador para realizar potencias
• Utilizar la función pow() de la biblioteca math.h, pero no para el cuadrado.
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 11
Operadores aritméticos
 Si a=10 b=3 (enteros)  Si a=12.5 b=2.0 (reales)
expresión resultado expresión resultado
a+b 13 a+b 14.5
a‐b 7 a‐b 10.5
a*b 30 a*b 25.0
a/b 3 a/b 6.25
a%b 1 a%b TIPOS INCORRECTOS

 Si a=‘P’ b=‘T’ expresión resultado


ASCII ‘P’=80 a 80
a+b 164
ASCII ‘T’=84
a+b+5 169
ASCII ‘5’=53
a + b + ’5’ 217

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 12
Operadores aritméticos
• Conversión sobre operandos que difieran en tipo:
El resultado final se expresará con la mayor precisión posible y de
forma consistente con los tipos de datos de los operandos.
• Regla general (cuando ninguno de los operandos sea unsigned):
Se promueve el tipo “inferior” al tipo “superior”, obteniendo un
resultado que es de tipo “superior”.
• Si cualquier operando es de tipo long double
Se convierte el otro operando a long double
• Si no: Si cualquier operando es de tipo double
Se convierte el otro operando a double
• Si no: Si cualquier operando es de tipo float
Se convierte el otro operando a float
• Si no: Si cualquier operando es de tipo long int
Se convierte el otro operando a long int
• Si no:
Se convierte char y short a int
(aunque sean los dos del mismo tipo char o short)
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 13
Operadores aritméticos
Si i = 7 (entera)
f = 5.5 (coma flotante double)
c = ‘w’ (char)

expresión resultado tipo

i+f 12.5 doble precisión

i+c 126 entero

i + c – ‘0’ 78 entero

(i + c) – (2 * f / 5) 123.8 doble precisión

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 14
Operadores aritméticos
• Conversión de tipos o "cast":
• Permite transformar el tipo de datos resultado de una expresión a un tipo
de datos específico
• No modifica el tipo de datos original sino su valor dentro de la expresión.
(tipo de datos) expresión
• Al aplicar la conversión de tipos se modifica el valor dentro de la expresión
en la que se encuentra, no se modifica el tipo de datos original.
• Si i=7 (entero) f=8.5 (float)
(i+f) % 4 : EXPRESIÓN NO VÁLIDA
( (int) (i+f) ) % 4 : EXPRESIÓN VÁLIDA utilizando la conversión
• Orden de precedencia en los operadores aritméticos:
Los operadores con mayor precedencia se evalúan antes que los de menor
precedencia.

Grupo 1 de precedencia Grupo 2 de precedencia


* / % + ‐

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 15
4

Operadores monarios
Operadores monarios
• Características:
• Con un único operando
• Mayor precedencia que los operadores aritméticos
• Tipos de operadores monarios:
• Operador signo (‐)
• Cambia de signo el operando
• Operador incremento (++)
• Incrementa en uno el operando
• Puede ir delante o detrás del operando
El incremento se realiza antes o después de utilizar el operando con otro fin
• Operador decremento (‐‐)
• Decrementa en uno el operando
• Puede ir delante o detrás del operando
El incremento se realiza antes o después de utilizar el operando con otro fin
• Operador sizeof ()
• Devuelve el tamaño de su operando en bytes
Operando puede ser una variable o un tipo de dato
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 17
Operadores monarios
• Si i=1
La salida por pantalla es:
Dado:
i=1
printf (“i = %d\n”, i);
i=2
printf (“i = %d\n”, ++i);
i=2
printf (“i = %d\n”, i++);
printf(““i = %d\n”, i); i = 3;
i++; i = 4;
printf(““i = %d\n”, i); i = 5;
++i;
printf(““i = %d\n”, i);

• Si i=1
Dado: La salida por pantalla es:
printf (“i = %d\n”, i); i=1
printf (“i = %d\n”, i++); i=1
printf (“i = %d\n”, i); i=2

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 18
Operadores monarios
• Si se ha declarado:
int i; char c;
float x; double d;
• La salida del siguiente programa:
printf (“Entero: %d\n”, sizeof(i));
printf (“\nComa flotante: %d\n”, sizeof(x));
printf (“\nDoble precision: %d\n” sizeof(d));
printf (“\nCaracter: %d\n”, sizeof (c));
• Sería:
Entero: 4
Coma flotante: 4
Doble precision: 8
Caracter: 1

• Se podría haber utilizado también el tipo del dato:


printf (“Entero: %d\n”, sizeof (int));
printf (“Coma flotante: %d\n”, sizeof (float));
printf (“Doble precisión: %d\n” sizeof (double));
printf (“Carácter: %d\n”, sizeof (char));
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 19
Sección 2

• Operadores relacionales
• Operadores lógicos
• Funciones de biblioteca
5

Operadores relacionales
Operadores relacionales
• Características:
• El resultado siempre es un valor lógico: VERDADERO (>=1) o FALSO (0).
• Los operadores se utilizan para formar expresiones lógicas
• Los operadores relacionales tienen menor precedencia que los
operadores monarios y aritméticos
• Los operadores relacionales tienen mayor precedencia que los
operadores de igualdad
• Asociatividad de izquierda a derecha dentro de una expresión

Operador Función Operador Función


Relacional de Igualdad
< menor que == igual que
<= menor o igual que != no igual que
> mayor que
>= mayor o igual que
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 22
Operadores relacionales

• Si i=1, j=2, k=3 variables enteras

expresión interpretación Valor


i<j cierto 1 ó !=0
(i+j) >= k cierto 1 ó !=0
(j+k)>(i+5) falso 0
k!=3 falso 0

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 23
6

Operadores lógicos
Operadores lógicos
• Características:
• Actúan sobre operandos que son expresiones lógicas
• Permiten combinar expresiones lógicas sencillas para generar
expresiones lógicas más complejas
Operador Significado
– Operadores lógicos de dos && y
operandos:
|| o
&& AND lógico
|| OR lógico ! Negación
– Operadores lógicos de un TABLAS DE VERDAD
solo operando (monarios) p q p && q p || q !p
! Negación Falso Falso Falso Falso Cierto
Falso Cierto Falso Cierto Cierto
Cualquier valor no nulo se
considera cierto. Cierto Falso Falso Cierto Falso
Cierto Cierto Cierto Cierto Falso

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 25
Operadores lógicos
• Si i=7 (entero) f=5.5 (float) y c=‘w’ (char) (ASCII 119)

expresión interpretación Valor


(i >= 6) && (c == ‘w’) cierto 1
(i >= 6) || (c == 119) cierto 1
(f < 11) && (i > 100) falso 0
(c != ‘p’) || ((i+f) <= 10) cierto 1
(i >= 6) || (c == 65) cierto 1

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 26
Tabla de precedencias
Consejo: Utilizar paréntesis siempre y así no hay dudas

Categoría Operadores
Monarios ‐, ++, ‐‐, !, sizeof(), (tipo) + Prioritarios
Multiplicación, división y *, /, %
resto aritméticos

suma y resta aritméticas +, ‐


operadores relacionales <, <=, >, >=
operadores de igualdad ==, !=
AND lógico &&
OR lógico ||
‐ Prioritarios
operadores de asignación =, +=, ‐=, *=, /=, %=
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 27
7

Funciones de biblioteca
Funciones de biblioteca

• Realizan operaciones y cálculos de uso frecuente


• Las funciones de biblioteca no son parte del lenguaje C, pero las incluyen
todos los compiladores
• Están agrupadas en archivos de biblioteca separados, como por ejemplo:
• Entrada/salida (stdio.h)
• Funciones de uso matemático (math.h)
• Funciones de gestión de cadenas (string.h)
• Deben incluirse dentro del programa con la directiva
# include <stdio.h>
# include <math.h>
……

Fundamentos de Informática Tema 4: Operadores


ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 29
Funciones de biblioteca
Función Tipo de dato de Propósito
retorno
abs(i) int Devuelve el valor absoluto de i
cos(d) double Devuelve el coseno de d
cosh(d) double Devuelve el coseno hiperbólico de d
exp(d) double Eleva e a la potencia d
fabs(d) double Devuelve el valor absoluto de d
getchar() int Introducir un carácter desde el dispositivo de entrada
log(d) double Devuelve el logaritmo natural de d
pow(d1,d2) double Devuelve d1 elevado a la potencia d2
printf(....) int Manda datos al dispositivo de salida estándar
putchar(c) int Manda un carácter al dispositivo de salida estándar
rand() int Devuelve un entero positivo aleatorio
sin(d) double Devuelve el seno de d
sqrt(d) double Devuelve la raíz cuadrada de d
srand(u) void Inicializa el generador de números aleatorios
scanf(....) int Introduce datos del dispositivo de entrada estándar
tan(d) double Devuelve la tangente de d
toascii(c) int Convierte el valor del argumento a ASCII
tolower(c) int Convierte una letra a minúscula
toupper(c) int Convierte una letra a mayúscula
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 30
Ejercicio 1
/*
... Este programa calcula el cociente y el resto de una división entera
*/
// Directivas del precompilador
#include <stdio.h>

// Programa principal
Int main (void)
{
int numerador;
int denominador;
int cociente;
int resto;
printf (“\nIntroduzca un numero entero para el numerador: ");
scanf ("%d", &numerador);
printf (“\nIntroduza otro numero entero para el denominador: ");
scanf ("%d", &denominador);
cociente = numerador / denominador;
resto = numerador % denominador;

printf ("%d / %d = %d, resto %d", numerador, denominador, cociente, resto);


return 0;
}
31
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 31
Ejercicio 2
/*
... Este programa pasa una temperatura Celsius a Reamur, Fahrenheit y Kelvin
*/
// Directivas del precompilador
#include <stdio.h>
// Programa principal
int main (void)
{
float celsius;
float reamur;
float fahrenheit;
float kelvin;
printf (“\n**** INICIO PROGRAMA CONVERSION DE TEMPERATURAS ****");
printf ("\n\nIntroduzca una temperatura en la escala Celsius (centigrada). ");
scanf ("%f", &celsius);
reamur = 0.8 * celsius;
fahrenheit = ( 1.8 * celsius ) + 32;
kelvin = celsius + 273;
printf ("\nEl valor de temperatura en la escala Reamur es...%.2f",reamur);
printf ("\nEl valor de temperatura en la escala Fahrenheit es...%.2f",fahrenheit);
printf ("\nEl valor de temperatura en la escala Kelvin es...%.2f",kelvin);
return 0;
} 32
Fundamentos de Informática Tema 4: Operadores
ICAI – 1º Grado en Ingeniería en Tecnologías Industriales 32
Escuela Técnica Superior de Ingeniería ICAI
Alberto Aguilera 25
28015 Madrid
Tel +34 91 542 28 00
Fax + 34 91 542 31 76
Iwww.icai.comillas.edu

www.comillas.edu

También podría gustarte