You are on page 1of 9

OPERADORES Y EXPRESIONES

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Una expresin es una combinacin de variables, literales y operadores, que representan un valor Operadores aritmticos Operador + * / % Funcin suma resta producto divisin operador mdulo, resto de la divisin entera

Divisin entera: divisin de una cantidad entera por otra => se desprecia la parte decimal del cociente El operador % requiere que los dos operandos sean enteros
Fundamentos de Informtica EUP-ULPGC Jose Torres

Ejemplo 1: Si a = 10 y b = 3 Expresin Valor a+b 13 a-b 7 a*b 30 a/b 3 a%b 1 Ejemplo 2: Si a = 11 y b = -3 Expresin Valor a+b 8 a-b 14 a*b -33 a/b -3 a%b 2 (el signo del primer operando)
Fundamentos de Informtica EUP-ULPGC Jose Torres

Aplicacin de los operadores aritmticos sobre datos de tipo char El tipo char se considera un entero cuyo valor coincide con el cdigo ASCII del carcter char letra = A; printf (Letra = %c; numero = %d, letra, letra); Letra = A; numero = 65 letra = letra + 1; printf (Letra = %c); Letra = B

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Operadores aritmticos. Conversin de tipos En C un operador se puede aplicar a dos variables o expresiones de tipos distintos Los operandos que difieren en tipo pueden sufrir una conversin de tipo Norma general: El operando de menor precisin toma el tipo del operando de mayor precisin Es decir, si se opera un real con un entero, este se convierte en real Hay que tener cuidado con esto
Fundamentos de Informtica EUP-ULPGC Jose Torres

Ejemplo: Programa que convierte grados Fahrenheit a grados centgrados: C = (5/9) * (F - 32) #include <stdio.h> main() { float centigrados; float fahrenheit; printf ("Introduzca una temperatura en grados Fahrenheit: "); scanf ("%f, &fahrenheit); centigrados = 5.0/9 * (fahrenheit - 32); printf("%f grados fahrenheit = %f grados centigrados \n", fahrenheit, centigrados); }
Fundamentos de Informtica EUP-ULPGC Jose Torres

Conversin de tipos Se puede convertir una expresin a otro tipo: (tipo_datos) expresion En el ejemplo anterior 5.0/9 = (float) 5/9 = 0.555556 Pero (float) (5/9) = 0.000000

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Prioridad de los operadores aritmticos Orden en el que se realizan las operaciones aritmticas en una expresin Prioridad Primero Segundo Tercero Cuarto Operacin () negacin (signo menos) *; /; % +; -

Dentro de cada grupo las operaciones se realizan de izquierda a derecha

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Ejemplos: a - b / c * d es equivalente a a - ((b/c) * d) (a - b) / c * (a + c) (a - b) / (c * d)

Operadores de incremento y decremento Operador de incremento ++ incrementa en uno el operando i++ equivale a i = i +1 Operador de decremento -- decrementa en uno el operando i-- equivale a i = i 1

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Operadores relacionales Expresan relacin de orden entre valores Se utilizan para formar expresiones lgicas El valor de una expresin lgica puede ser: - 0, que representa falso - 1, que representa cierto (cualquier valor distinto de 0) Operador < > <= >= == !=
Fundamentos de Informtica

Funcin menor que mayor que menor o igual que mayor o igual que igual que distinto que
EUP-ULPGC Jose Torres

Ejemplo: Si a = 1 y b = 2 => Expresin a<b a>b (a + b) != 3 a == b a == 1 Valor 1 0 0 0 1 Interpretacin cierto falso falso falso cierto

Prioridad de los operadores relacionales Prioridad Primero Segundo Tercero Operacin () >, <, >=, <= ==, !=
EUP-ULPGC Jose Torres

Fundamentos de Informtica

Los operadores aritmticos tienen mayor prioridad que los operadores relacionales Dentro de cada grupo las operaciones se realizan de izquierda a derecha Ejemplo: Si a = 1 y b = 2 => Expresin a < b == a > b (a < b) == (a > b) 1 > (a == 2) a == (b == 2) Valor 0 0 1 1 Interpretacin falso falso cierto cierto

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Operadores lgicos Combinan expresiones lgicas, formando expresiones lgicas ms complejas Operador && || ! Funcin Y lgica (AND) O lgica (OR) NO lgico (NOT)

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Tablas de verdad de los operadores lgicos Expresin Valor Interpretacin 1 && 1 1 cierto 1 && 0 0 falso 0 && 1 0 falso 0 && 0 0 falso Expresin 1 || 1 1 || 0 0 || 1 0 || 0 Expresin !1 !0
Fundamentos de Informtica

Valor 1 1 1 0

Interpretacin cierto cierto cierto falso

Valor Interpretacin 0 falso 1 cierto


EUP-ULPGC Jose Torres

Prioridad de los operadores lgicos Prioridad Operacin Primero ( ) Segundo ! Tercero && Cuarto || Ejemplo 1: si a = 7 y b = 3 => Expresin (a + b) < 10 !((a + b) < 10) (a ! = 2) || ((a +b) <= 10) (a > 4) && (b < 5)

Valor 0 1 1 1

Interpretacin falso cierto cierto cierto

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Ejemplo 2: si a = 7 y b = 3 => Expresin a + b < 10 a ! = 2 || a + b <= 10 a > 4 && b < 5 Valor 0 1 1 Interpretacin falso cierto cierto

Fundamentos de Informtica

EUP-ULPGC

Jose Torres

Operador condicional Forma general: expresion_1 ? expresion_2 : expresion_3 Si expresion_1 es verdadero => devuelve expresion_2 Si expresion_1 es falso => devuelve expresion_3 Ejemplo: si a = 1 => en la sentencia: k = (a < 0) ? 0 : 100; - Primero se evala (a < 0) - Como es falso el operador condicional devuelve 100 - Este valor se asigna a k. Es decir k toma el valor 100
Fundamentos de Informtica EUP-ULPGC Jose Torres

Ejemplo: programa que lee 2 nmeros enteros e imprime el mayor #include <stdio.h> main() { int n1, n2, mayor; printf(Introduzca el primer numero: ); scanf(%d, &n1); printf(Introduzca el segundo numero: ); scanf(%d, &n2); mayor = (n1 > n2) ? n1 : n2; printf(El mayor es %d\n, mayor); }
Fundamentos de Informtica EUP-ULPGC Jose Torres

You might also like