Operaciones

907 views

Published on

Presentación de operaciones elementales en programación, dirigida al lenguaje C/C++

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
907
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Operaciones

  1. 1. Ismael Camarero. 1 Fundamentos de Programación Operadores Matemáticos y Relacionales
  2. 2. Ismael Camarero. 2 • Operadores Matemáticos Básicos • División Entera • Prioridad de Operadores • Operadores Relacionales • Palabras Reservadas • Ejemplos
  3. 3. Ismael Camarero. 3 Repaso – Verdadero/Falso • Cuando la función printf() es llamada, siempre comienza a imprimir al principio de una nueva línea. • Todas la variables deben ser declaradas antes de ser utilizadas. • Esa obligatorio declarar el tipo de dato que va a almacenar una determinada variable. • C considera que las variables numero y NuMero son idénticas. • Un programa en C que imprime tres líneas debe contener tres sentencias printf().
  4. 4. Ismael Camarero. 4 Repaso: Encuentra los Errores a. printf (″El valor es %dn″, &numero); b. scanf (″%d%d″, &numero1, numero2); c. int num1, int num2, int num3; d. int num#1, num#2, num#3; e. ¿Cuál es la salida del siguiente programa? int main() { int x; x = x+1; printf (″%d″, x); return 0; } f. Diferencias entre un error de compilación y un error en tiempo de ejecución.
  5. 5. Ismael Camarero. 5 Operadores Matemáticos Básicos
  6. 6. Ismael Camarero. 6 Operadores Matemáticos Básicos Operación Operador Ejemplo Expresión en C Suma + f + 7 f + 7 Sustracción - p – c p - c Multiplicación * bm b * m División / x / y x / y Módulo % r mod s r % s
  7. 7. Ismael Camarero. 7 División Entera: Problema • Supongamos que tenemos el siguiente código • Con una caluladora, el resultado es 1.75 • Pero x sólo puede guardar valores enteros y 1.75 no lo es. • ¿Qué sucede? ¿Qué valor se guarda en la variable x? int x; x = 7 / 4;
  8. 8. Ismael Camarero. 8 • Para entender la solución, revisa la operación (división entera): • 7/4 = 1 (División entera) • 7%4 = 3 (Módulo de la división) 47 3 1 Cociente 1, resto por defecto 3 División Entera: Solución
  9. 9. Ismael Camarero. 9 División entera en C /* División entera y módulo */ #include <stdio.h> int main() { int x = 5, y =10; printf ("5/10: %dn", x/y); printf ("5%%10: %dn", x%y); return 0; } 5/10: 0 5%10: 5 Para imprimir el % Operador Módulo (%)
  10. 10. Ismael Camarero. 10 Módulo de la división • Otro ejemplo: • La respuesa a la pregunta debe ser “entero” 5%10 = 5 5 10 05 5/10
  11. 11. Ismael Camarero. 11 Números pares e impares • El módulo de la división puede emplearse para determinar si un número es par o impar. • Divídelo por 2. Si el resto (módulo) es 0, el número es par. • Ejemplos: – 14 % 2 = 0 14 es par. – 13 % 2 = 1 Ya que 13 es impar. Error frecuente de programación: La división por 0 no existe y causa errores fatales en el ordenador.
  12. 12. Ismael Camarero. 12 Prioridad de Operadores
  13. 13. Ismael Camarero. 13 Prioridad de Operadores • Otro problema. ¿Cuál es el resultado de la expresión? x = 7 + 3 * 6; • Dos opciones (según el orden de realización de las operaciones): 1) Primero la adición: 7 + 3 = 10  10 * 6 = 60 2) Primero la multiplicación: 3*6 =18  7+18 = 25 • ¿Cuál es la correcta? NO se puede permitir esta ambigüedad
  14. 14. Ismael Camarero. 14 Precedencia de Operadores • Las reglas de precedencia (prioridad) permiten evaluar las expresiones matemáticas. • Casi todos los lenguajes de programación tienen las mismas normas: Operadores Operaciones Orden de Evaluación () Paréntesis Se evalúan los primeros. Si están anidados, se evalúa primero el par de paréntesisi más interno. Si hay varios pares de paréntesis, del mismo nivel (no anidados), se evalúa de izquierda a derecha. *, /, o % Multiplicación, Divisón, Módulos Se evalúan en segundo lugar. Si hay varios, de izquierda a derecha. + o - Suma Sustracción Se evalúan los últimos. . Si hay varios, de izquierda a derecha.
  15. 15. Ismael Camarero. 15 • Por tanto, la opción 2) es siempre correcta (la multiplicación tiene preferencia): • Ejemplo: Calcula la media aritmética de tres variables: • Usando: a + b + c / 3 • Usando: (a + b + c ) / 3 ¿Cuál es la correcta? x = 7 + 3 * 6; Se evalúa como x = 7 + 18 = 25 Precedencia de Operadores
  16. 16. Ismael Camarero. 16 Operadores Relacionales
  17. 17. Ismael Camarero. 17 Toma de decisiones: Igualdad y Operadores Relacionales • Sentencias ejecutables: – Llevan a cabo acciones: calculos, entrada/salida de datos. – Toman decisiones: • Estructura de control if: – Si una condción es verdadera,entonces se ejecuta el cuerpo de la instrucción if. – En otro caso, el cuerpo de la instrucción if es ignorado • C tiene una explícita definición de verdadadero: - 0 es falso, no-cero es verdadero.
  18. 18. Ismael Camarero. 18 Igualdad y operadores relacionales Por tanto, -1 es cierto, 999 es verdad, sólo 0 es falso. Operadores En C Ejemplo en C Significado en C = == x == y x es igual a y No = != x != y x no es igual a y Operadores relacionales > > x > y x es mayor que y < < x < y x es menor que y >= >= x >= y x es mayor o igual que y <= <= x <= y x es menor o igual que y
  19. 19. Ismael Camarero. 19 1 /* Operadores de igualdad y reacionalesc 2 4 #include <stdio.h> 5 6 int main() 7 { 8 int num1, num2; 9 10 printf( “Intro dos enteros y te dirén" ); 11 printf( “la relación que hay entre ellos: " ); 12 scanf( "%d%d", &num1, &num2 ); /* lee dos enteros */ integers */13 14 if ( num1 == num2 ) 15 printf( "%d es igual que %dn", num1, num2 ); 16 17 if ( num1 != num2 ) 18 printf( "%d no es igual que %dn", num1, num2 ); 19 20 if ( num1 < num2 ) 21 printf( "%d es menor que %dn", num1, num2 ); 22 23 if ( num1 > num2 ) 24 printf( "%d es mayor que %dn", num1, num2 ); 25 26 if ( num1 <= num2 ) 27 printf( "%d es menor o igual que %dn", 28 num1, num2 ); Sigue…
  20. 20. Ismael Camarero. 20 29 30 if ( num1 >= num2 ) 31 printf( "%d es mayor o igual que %dn", num1, num2 ); 32 33 34 return 0; /* indica que el programa finaliza bien */ 35 } Intro dos enteros y te diré la relación que hay entre ellos: 3 7 3 no es igual a 7 3 es menor que 7 3 es menor o igual que 7 Intro dos enteros y te diré la relación que hay entre ellos: 22 12 22 no es igual a 12 22 es mayor que 12 22 es mayor o igual que 12 Dos posibles salidas:
  21. 21. Ismael Camarero. 21  Error Común: Confundir el operador de igualdad == con el operador de asignación = Ejemplo: int temperatura = -5; if(temperatura = 25) printf (“¡Clima ideal!”);  La salida es siempre ¡Clima ideal!  ¿Por qué? Porque empleamos el operador de asignación. Temperatura siempre vale 25 en el if().  El condiconal debería ser: if(temperatura == 25) Error muy común de Programación
  22. 22. Ismael Camarero. 22  Error frecuente: colocar punto y coma (;) al final de la condicion if(). Ejemplo: int temperatura = -5; if(temperatura == 25); printf (“¡Clima ideal!”); Independientemente de la temperatura, la salida siempre es: (“¡Clima ideal!”); ¿Por qué? Porque la estructura condicional finaliza inmediatamente (la instruccion printf (“¡Clima ideal!”); no pertenece al bloque del if() Error muy común de Programación
  23. 23. Ismael Camarero. 23 Palabras Reservadas • Palabras Clave: – Son palabras especiales reservadas para C. – No pueden ser usadas como identificadores o nombres de variables: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Palabras Reservadas
  24. 24. Ismael Camarero. 24 Fin Operadores Matemáticos y Relacionales Octubre 2002 Elaborado y Editado por:Elaborado y Editado por: Ismael CamareroIsmael Camarero httphttp://://programandoenc.webcindario.comprogramandoenc.webcindario.com icamarero98@hotmail.com
  25. 25. Ismael Camarero. 25

×