Publicidad
Publicidad

Más contenido relacionado

Publicidad
Publicidad

Ejercicios

  1. ARITMÉTICA DE OPERADORES SESIÓN 02
  2. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • Nuestro siguiente programa utiliza el objeto flujo de entrada std::cin y el operador de extracción de flujo, >>, para obtener dos enteros escritos por el usuario mediante el teclado, calcula la suma de esos valores e imprime el resultado mediante el uso de std::cout. • En la se muestra el programa, junto con los datos de entrada y salida de ejemplo.
  3. PROGRAMA DE SUMA QUE MUESTRA LA SUMA DE DOS ENTEROS INTRODUCIDOS MEDIANTE EL TECLADO.
  4. PROGRAMA DE SUMA QUE MUESTRA LA SUMA DE DOS ENTEROS INTRODUCIDOS MEDIANTE EL TECLADO.
  5. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • Los comentarios en la línea 2 • // Programa de suma que muestra la suma de dos enteros. • indican el nombre del archivo y el propósito del programa. La directiva del preprocesador de C++ • #include <iostream> // permite al programa realizar operaciones de entrada y salida • en la línea 3 incluye el contenido del archivo de encabezado <iostream> en el programa.
  6. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • El programa empieza a ejecutarse con la función main (línea 6). La llave izquierda (línea 7) marca el inicio del cuerpo de main y la correspondiente llave derecha (línea 24) marca el fin de main. • Las líneas 9 a 11 • int numero1; // primer entero a sumar • int numero2; // segundo entero a sumar • int suma; // suma de numero1 y numero2 • son declaraciones. Los identificadores numero1, numero2 y suma son nombres de variables
  7. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • Una variable es una ubicación en la memoria de la computadora, en la que puede almacenarse un valor para usarlo mediante un programa. Estas declaraciones especifican que las variables numero1, numero2 y suma son datos de tipo int, lo cual significa que estas variables contienen valores enteros; es decir, números enteros como 7, –11, 0 y 31914. Todas las variables se deben declarar con un nombre y un tipo de datos antes de poder usarlas en un programa.
  8. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • Pueden declararse diversas variables del mismo tipo en una declaración, o en varias declaraciones. Podríamos haber declarado las tres variables en una declaración, como se muestra a continuación: • int numero1, numero2, suma; • Esto reduce la legibilidad del programa y evita que podamos proporcionar comentarios que describan el propósito de cada variable. Si se declara más de un nombre en una declaración (como se muestra aquí), los nombres van separados por comas (,); a esto se le conoce como lista separada por comas.
  9. BUENA PRÁCTICA DE PROGRAMACIÓN • Coloque un espacio después de cada coma (,) para aumentar la legibilidad de los programas • Algunos programadores prefieren declarar cada variable en una línea separada. Este formato permite insertar fácilmente un comentario descriptivo a un lado de cada declaración
  10. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • Pronto hablaremos sobre el tipo de datos double para especificar números reales, y sobre el tipo de datos char para especificar datos tipo carácter. Los números reales son números con puntos decimales, como 3.4, 0.0 y –11.19. Una variable char puede guardar sólo una letra minúscula, una letra mayúscula, un dígito o un carácter especial (como $ o *). • Los tipos como int, double y char se conocen comúnmente como tipos fundamentales, tipos primitivos o tipos integrados. • Los nombres de los tipos fundamentales son palabras clave y, por lo tanto, deben aparecer todos en minúsculas.
  11. OTRO PROGRAMA EN C++: SUMA DE ENTEROS • El nombre de una variable (como numero1) es cualquier identificador válido que no sea una palabra clave. Un identificador es una serie de caracteres que consisten en letras, dígitos y símbolos de guión bajo ( _ ) que no empieza con un dígito. C++ es sensible a mayúsculas y minúsculas: las letras mayúsculas y minúsculas son distintas, por lo que 𝑎1 𝑦 𝐴1 se consideran identificadores distintos.
  12. ARITMÉTICA • La mayoría de los programas realizan cálculos aritméticos. Los operadores aritméticos se sintetizan en la figura. Observe el uso de varios símbolos especiales que no se utilizan en álgebra. El asterisco (*) indica la multiplicación, y el signo de porcentaje (%) es el operador módulo, el cual describiremos en breve. Los operadores aritméticos en la figura son operadores binarios, ya que funcionan con dos operandos. Por ejemplo, la expresión numero1 + numero2 contiene el operador binario + y los dos operandos numero1 y numero2.
  13. ARITMÉTICA
  14. ARITMÉTICA • La división de enteros (es decir, donde tanto el numerador como el denominador son enteros) produce un cociente entero; por ejemplo, la expresión 7 / 4 da como resultado 1, y la expresión 17 / 5 da como resultado 3. Observe que cualquier parte fraccionaria en una división de enteros se descarta (es decir, se trunca); no ocurre un redondeo.
  15. ARITMÉTICA • C++ proporciona el operador módulo, %, el cual produce el residuo después de la división entera. El operador módulo sólo se puede utilizar con operandos enteros. La expresión 𝑥 % 𝑦 produce el residuo después de que x se divide entre y. Por lo tanto, 7 % 4 produce 3, y 17 % 5 produce 2. Posteriormente consideramos muchas aplicaciones interesantes del operador módulo, como determinar si un número es múltiplo de otro (un caso especial de esta aplicación es determinar si un número es par o impar).
  16. ERROR COMÚN DE PROGRAMACIÓN • Tratar de utilizar el operador módulo (%) con operandos no enteros es un error de compilación
  17. EXPRESIONES ARITMÉTICAS EN FORMATO DE LÍNEA RECTA • En la computadora, las expresiones aritméticas en C++ deben escribirse en formato de línea recta. Por lo tanto, las expresiones como “a dividida entre b” deben escribirse como a / b, de manera que todas las constantes, variables y operadores aparezcan en una línea recta. La siguiente notación algebraica:
  18. EXPRESIONES ARITMÉTICAS EN FORMATO DE LÍNEA RECTA • 𝑎 𝑏 • no es generalmente aceptable para los compiladores, aunque ciertos paquetes de software de propósito especial soportan una notación más natural para las expresiones matemáticas complejas.
  19. PARÉNTESIS PARA AGRUPAR SUBEXPRESIONES • Los paréntesis se utilizan en las expresiones en C++ de la misma manera que en las expresiones algebraicas. Por ejemplo, para multiplicar a por la cantidad b + c, escribimos • 𝑎 ∗ ( 𝑏 + 𝑐 ).
  20. REGLAS DE PRECEDENCIA DE OPERADORES • C++ aplica los operadores en expresiones aritméticas en una secuencia precisa, determinada por las siguientes reglas de precedencia de operadores, que generalmente son las mismas que las que se utilizan en álgebra: 1. Los operadores en las expresiones contenidas dentro de pares de paréntesis se evalúan primero. Se dice que los paréntesis tienen el “nivel más alto de precedencia”. En casos de paréntesis anidados o incrustados, como: ( ( a + b ) + c ) los operadores en el par más interno de paréntesis se aplican primero.
  21. REGLAS DE PRECEDENCIA DE OPERADORES 2. Las operaciones de multiplicación, división y módulo se aplican a continuación. Si una expresión contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Se dice que los operadores de multiplicación, división y residuo tienen el mismo nivel de precedencia. 3. Las operaciones de suma y resta se aplican al último. Si una expresión contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Los operadores de suma y resta tienen el mismo nivel de precedencia.
  22. REGLAS DE PRECEDENCIA DE OPERADORES • El conjunto de reglas de precedencia de operadores define el orden en el que C++ aplica los operadores. Cuando decimos que ciertos operadores se aplican de izquierda a derecha, nos referimos a su asociatividad. Por ejemplo, en la expresión • 𝑎 + 𝑏 + 𝑐 • los operadores de suma (+) se asocian de izquierda a derecha, por lo que a + b se calcula primero, y después se agrega c a esa suma para determinar el valor de toda la expresión. Más adelante veremos que algunos operadores se asocian de derecha a izquierda. En la figura se sintetizan estas reglas de precedencia de operadores
  23. REGLAS DE PRECEDENCIA DE OPERADORES
  24. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++ • Ahora, consideremos varias expresiones en vista de las reglas de precedencia de operadores. Cada ejemplo enlista una expresión algebraica y su equivalente en C++. El siguiente es un ejemplo de una media ( promedio) aritmética de cinco términos: • Álgebra: • 𝑚 = ( 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 ) 5 ; • C++: • 𝑚 = ( 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 ) / 5;
  25. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++ • Los paréntesis son obligatorios, ya que la división tiene una mayor precedencia que la suma. La cantidad completa ( 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 ) va a dividirse entre 5. Si los paréntesis se omiten por error, obtenemos 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 / 5, lo cual da como resultado • 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 5
  26. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++
  27. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++ • Los números dentro de los círculos bajo la instrucción indican el orden en el que C++ aplica los operadores. Las operaciones de multiplicación, residuo y división se evalúan primero, en orden de izquierda a derecha (es decir, se asocian de izquierda a derecha), ya que tienen mayor precedencia que la suma y la resta. Las operaciones de suma y resta se evalúan a continuación. Estas operaciones también se aplican de izquierda a derecha. Después se aplica el operador de asignación
  28. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++
  29. EJEMPLOS DE EXPRESIONES ALGEBRAICAS Y DE C++
  30. ERROR COMÚN DE PROGRAMACIÓN • Algunos lenguajes de programación usan los operadores ∗∗ 𝑜 ^ para representar la exponenciación. C++ no soporta estos operadores de exponenciación; si se utilizan para este fin, se producen errores
  31. BUENA PRÁCTICA DE PROGRAMACIÓN • El uso de paréntesis redundantes en expresiones aritméticas complejas puede hacer que éstas sean más fáciles de leer
  32. TOMA DE DECISIONES: OPERADORES DE IGUALDAD Y RELACIONALES • Presentaremos una versión simple de la instrucción if de C++, la cual permite que un programa tome una acción alternativa, con base en la verdad o falsedad de cierta condición. Si se cumple la condición (es decir, si es verdadera), se ejecuta la instrucción que está en el cuerpo de la instrucción if. Si la condición no se cumple (es falsa), el cuerpo no se ejecuta. Veremos un ejemplo en breve.
  33. TOMA DE DECISIONES: OPERADORES DE IGUALDAD Y RELACIONALES • Las condiciones en las instrucciones if pueden formarse utilizando los operadores de igualdad y los operadores relacionales, que se sintetizan en la figura. Los operadores relacionales tienen todos el mismo nivel de precedencia y se asocian de izquierda a derecha. Los dos operadores de igualdad tienen el mismo nivel de precedencia, que es menor que la precedencia de los operadores relacionales, y se asocian de izquierda a derecha
  34. TOMA DE DECISIONES: OPERADORES DE IGUALDAD Y RELACIONALES
  35. ERROR COMÚN DE PROGRAMACIÓN • Se producirá un error de sintaxis si cualquiera de los operadores ==, !=, >= y <= aparece con espacios entre su par de símbolos.
  36. ERROR COMÚN DE PROGRAMACIÓN • Invertir el orden del par de símbolos en cualquiera de los operadores !=, >= y <= (al escribirlos como =!, => y =<, respectivamente) es comúnmente un error de sintaxis. En algunos casos, escribir != como =! no será un error de sintaxis, sino casi con certeza será un error lógico, el cual tiene un efecto en tiempo de ejecución. Un error lógico fatal hace que un programa falle y termine antes de tiempo. Un error lógico no fatal permite que un programa continúe ejecutándose, pero por lo general produce resultados incorrectos
  37. ERROR COMÚN DE PROGRAMACIÓN • Confundir el operador de igualdad == con el operador de asignación = produce errores lógicos. El operador de igualdad se debe leer como “es igual a”, y el operador de asignación se debe leer como “obtiene” u “obtiene el valor de”, o “se le asigna el valor de”. Algunas personas prefieren leer el operador de igualdad como “doble igual”.
  38. ERROR COMÚN DE PROGRAMACIÓN • El siguiente ejemplo utiliza seis instrucciones if para comparar dos números introducidos por el usuario. Si la condición en cualquiera de estas instrucciones if es verdadera, se ejecuta la instrucción de salida asociada con esa instrucción if. En la figura se muestra el programa y los diálogos de entrada/salida de tres ejecuciones del ejemplo. • Las líneas 6 a 8 • using std::cout; // el programa usa cout • using std::cin; // el programa usa cin • using std::endl; // el programa usa endl
  39. ERROR COMÚN DE PROGRAMACIÓN • son declaraciones using, las cuales eliminan la necesidad de repetir el prefijo std::, como hicimos en programas anteriores. • Una vez que insertamos estas declaraciones using, podemos escribir cout en lugar de std::cout, cin en vez de std::cin y endl en lugar de std::endl, respectivamente, en el resto del programa.
  40. ERROR COMÚN DE PROGRAMACIÓN
  41. ERROR COMÚN DE PROGRAMACIÓN
  42. ERROR COMÚN DE PROGRAMACIÓN
  43. EJERCICIO • Utilizando las instrucciones que escribió anteriormente, escriba un programa completo que calcule e imprima el producto de tres enteros. Agregue comentarios al código donde sea apropiado. [Nota: necesitara escribir las declaraciones using necesarias.]
Publicidad