Professional Documents
Culture Documents
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) *; /; % +; -
Fundamentos de Informtica
EUP-ULPGC
Jose Torres
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
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
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