Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sentencia, secuencia y bloque

281 views

Published on

Sentencia, secuencia y bloque

Published in: Education
  • Be the first to comment

  • Be the first to like this

Sentencia, secuencia y bloque

  1. 1. Sentencia, Secuencia y Bloque CLASE 04
  2. 2. Sentencia, Secuencia y Bloque En C++ la unidad básica de acción es la sentencia, y expresamos la composición de sentencias como una secuencia de sentencias terminadas cada una de ellas por el carácter “punto y coma“ (;), de tal forma que su flujo de ejecución es secuencial, es decir, se ejecuta una sentencia, y cuando esta termina, entonces se ejecuta la siguiente sentencia, y así sucesivamente. Un bloque es una unidad de ejecución mayor que la sentencia, y permite agrupar una secuencia de sentencias como una unidad. Para ello enmarcamos la secuencia de sentencias entre dos llaves para formar un bloque. Es posible el anidamiento de bloques.
  3. 3. Sentencia, Secuencia y Bloque
  4. 4. Declaraciones Globales y Locales Distinguiremos dos clases de declaraciones: globales y locales. Entidades globales son aquellas que han sido definidas fuera de cualquier bloque. Su ámbito de visibilidad comprende desde el punto en el que se definen hasta el final del fichero. Respecto a su tiempo de vida, se crean al principio de la ejecución del programa y se destruyen al finalizar este. Normalmente serán constantes simbólicas, definiciones de tipos, declaración de prototipos de subprogramas y definiciones de subprogramas.
  5. 5. Declaraciones Globales y Locales Entidades locales son aquellas que se definen dentro de un bloque. Su ámbito de visibilidad comprende desde el punto en el que se definen hasta el final de dicho bloque. Respecto a su tiempo de vida, se crean en el punto donde se realiza la definición, y se destruyen al finalizar el bloque. Normalmente serán constantes simbólicas y variables locales.
  6. 6. EJEMPLO 1(EJ7_1) Programa que hace el uso de variables locales y globales sobre la conversión de dólares a pesos mexicanos
  7. 7. EJEMPLO (EJ7_1)
  8. 8. EJEMPLO (EJ7_1)
  9. 9. Declaraciones Globales y Locales Respecto al ámbito de visibilidad de una entidad, en caso de declaraciones de diferentes entidades con el mismo identificador en diferentes niveles de anidamiento, la entidad visible será aquella que se encuentre declarada en el bloque de nivel de anidamiento más interno. Es decir, cuando se solapa el ámbito de visibilidad de dos entidades con el mismo identificador, en dicha zona de solapamiento será visible el identificador declarado/definido en el bloque más interno. Sin embargo, no es una buena practica de programación ocultar identificadores al redefinirlos en niveles de anidamiento mas internos, ya que conduce a programas difíciles de leer y propensos a errores.
  10. 10. Declaraciones Globales y Locales
  11. 11. Sentencias de Asignación La sentencia de asignación permite asignar a una variable el resultado de evaluar una expresión aritmética expresada en notación infija, de tal forma que primero se evalúa la expresión, considerando las reglas de precedencia y asociatividad de los operadores y a continuación el valor resultante se asigna a la variable, que pierde. Por ejemplo:
  12. 12. Sentencias de Asignación
  13. 13. Sentencias de Asignación Además, se definen las siguientes sentencias de incremento/decremento
  14. 14. Sentencias de Asignación
  15. 15. Sentencias de Asignación Nota: las sentencias de asignación vistas anteriormente se pueden utilizar en otras formas muy diversas, pero nosotros restringiremos su utilización a la expresada anteriormente, debido a que otras utilizaciones pueden dificultar la legibilidad y aumentar las posibilidades de cometer errores de programación.
  16. 16. Sentencias de Asignación Nota: las sentencias de asignación vistas anteriormente se pueden utilizar en otras formas muy diversas, pero nosotros restringiremos su utilización a la expresada anteriormente, debido a que otras utilizaciones pueden dificultar la legibilidad y aumentar las posibilidades de cometer errores de programación.
  17. 17. Sentencias de Selección Las sentencias de selección alteran el flujo secuencial de ejecución de un programa, de tal forma que permiten seleccionar flujos de ejecución alternativos y excluyentes dependiendo de expresiones lógicas. La más simple de todas es la sentencia de selección condicional if cuya sintaxis es la siguiente:
  18. 18. Sentencias de Selección
  19. 19. Sentencias de Selección y cuya semántica consiste en evaluar la expresión lógica, y si su resultado es Verdadero (true) entonces se ejecuta la secuencia de sentencias entre las llaves. Ejemplo de programa que imprime el valor mayor de tres números:
  20. 20. EJEMPLO (EJ7_2) y cuya semántica consiste en evaluar la expresión lógica, y si su resultado es Verdadero (true) entonces se ejecuta la secuencia de sentencias entre las llaves. Ejemplo de programa que imprime el valor mayor de tres números:
  21. 21. EJEMPLO (EJ7_2)
  22. 22. EJEMPLO (EJ7_2)
  23. 23. ESTRUCTURAS DE CONTROL Otra posibilidad es la sentencia de selección condicional compuesta, que tiene la siguiente sintaxis:
  24. 24. EJEMPLO (EJ7_3) y cuya semántica consiste en evaluar la expresión lógica, y si su resultado es Verdadero (true) entonces se ejecuta la <secuencia de sentencias v> . Sin embargo, si el resultado de evaluar la expresión lógica es Falso (false) entonces se ejecuta la <secuencia de sentencias f> . La sentencia de selección condicional se puede encadenar de la siguiente forma con el flujo de control esperado:
  25. 25. EJEMPLO (EJ7_3)
  26. 26. ESTRUCTURAS DE CONTROL La sentencia switch es otro tipo de sentencia de selección en la cual la secuencia de sentencias alternativas a ejecutar no se decide en base a expresiones lógicas, sino en función del valor que tome una determinada expresión de tipo ordinal, es decir, una relación de igualdad entre el valor de una expresión y unos determinados valores constantes de tipo ordinal especificados. Su sintaxis es la siguiente:
  27. 27. ESTRUCTURAS DE CONTROL
  28. 28. ESTRUCTURAS DE CONTROL en la cual se evalúa la expresión, y si su valor coincide con <valor 1> entonces se ejecuta la <secuencia de sentencias 1> . Si su valor coincide con <valor 2> o con <valor 3> se ejecuta la <secuencia de sentencias 2> y así sucesivamente. Si el valor de la expresión no coincide con ningún valor especificado, se ejecuta la secuencia de sentencias correspondiente a la etiqueta default (si es que existe). Nótese que la sentencia break; termina la secuencia de sentencias a ejecutar para cada caso. Ejemplo:
  29. 29. EJEMPLO (EJ7_4)
  30. 30. EJEMPLO (EJ7_4)
  31. 31. EJEMPLO (EJ7_5)
  32. 32. EJEMPLO (EJ7_5)

×