Una expresión es una combinación de variables, literales y operadores, que representan un valor Operadores aritméticos Operador + * / %
Función suma resta producto división operador módulo, resto de la división entera
División entera: división de una cantidad entera por otra => se desprecia la parte decimal del cociente El operador % requiere que los dos operandos sean enteros Fundamentos de Informática
EUP-ULPGC
Jose Torres
Ejemplo 1: Si a = 10 y b = 3 Expresión Valor a+b 13 a-b 7 a*b 30 a/b 3 a%b 1 Ejemplo 2: Si a = 11 y b = -3 Expresión Valor a+b 8 a-b 14 a*b -33 a/b -3 a%b 2 (el signo del primer operando) Fundamentos de Informática
EUP-ULPGC
Jose Torres
Aplicación de los operadores aritméticos sobre datos de tipo char El tipo char se considera un entero cuyo valor coincide con el código ASCII del carácter char letra = ‘A’; printf (“Letra = %c; numero = %d”, letra, letra); Letra = A; numero = 65 letra = letra + 1; printf (“Letra = %c”); Letra = B
Fundamentos de Informática
EUP-ULPGC
Jose Torres
Operadores aritméticos. Conversión 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 conversión de tipo Norma general: El operando de menor precisión toma el tipo del operando de mayor precisión Es decir, si se opera un real con un entero, este se convierte en real Hay que tener cuidado con esto Fundamentos de Informática
EUP-ULPGC
Jose Torres
Ejemplo: Programa que convierte grados Fahrenheit a grados centígrados: C = (5/9) * (F - 32) #include 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 Informática
EUP-ULPGC
Jose Torres
Conversión de tipos Se puede convertir una expresión 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 Informática
EUP-ULPGC
Jose Torres
Prioridad de los operadores aritméticos Orden en el que se realizan las operaciones aritméticas en una expresión Prioridad Primero Segundo Tercero Cuarto
Operación () negación (signo menos) *; /; % +; -
Dentro de cada grupo las operaciones se realizan de izquierda a derecha
Fundamentos de Informática
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 Informática
EUP-ULPGC
Jose Torres
Operadores relacionales Expresan relación de orden entre valores Se utilizan para formar expresiones lógicas El valor de una expresión lógica puede ser: - 0, que representa falso - 1, que representa cierto (cualquier valor distinto de 0) Operador < > = == != Fundamentos de Informática
Función 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 => Expresión ab (a + b) != 3 a == b a == 1
Valor 1 0 0 0 1
Interpretación cierto falso falso falso cierto
Prioridad de los operadores relacionales Prioridad Primero Segundo Tercero
Operación () >, =, Expresión a < b == a > b (a < b) == (a > b) 1 > (a == 2) a == (b == 2)
Prioridad de los operadores lógicos Prioridad Operación Primero ( ) Segundo ! Tercero && Cuarto || Ejemplo 1: si a = 7 y b = 3 => Expresión (a + b) < 10 !((a + b) < 10) (a ! = 2) || ((a +b) 4) && (b < 5)
Fundamentos de Informática
Valor 0 1 1 1
Interpretación falso cierto cierto cierto
EUP-ULPGC
Jose Torres
Ejemplo 2: si a = 7 y b = 3 => Expresión a + b < 10 a ! = 2 || a + b 4 && b < 5
Fundamentos de Informática
Valor 0 1 1
Interpretación falso cierto cierto
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 evalúa (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 Informática
EUP-ULPGC
Jose Torres
Ejemplo: programa que lee 2 números enteros e imprime el mayor #include 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 Informática