Clase 3

6,306 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,306
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
54
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 3

  1. 1. Evaluación1 Se desea calcular independientemente la suma de los números pares e impares comprendidos entre 1 y 200, ambos inclusive2 C l l y visualizar l suma y el producto d l números Calcular i li la l d t de los ú pares comprendidos entre 20 y 400, ambos inclusive3 Calcular la suma de los cuadrados de los 100 primeros números naturales4 Calcular la media de 500 números e imprimir su resultado
  2. 2. PROGRAMACIÓNESTRUCTURADA:ESTRUCTURADA ALGORITMOSY ESTRUCTURAS DE DATOSFlujo de control I; Estructuras selectivas
  3. 3. Contenido El flujo de control de un programa j p g Estructura secuencial Estructuras selectivas Estructuras de decisión anidadas Resumen Deber
  4. 4. El flujo de control de un programa Cualquier algoritmo puede ser construido utilizando combinaciones d bi i de tres estructuras d de control dl de fl j flujo estandarizadas (secuencial, selección, repetitiva o iterativa) y una cuarta denominada, invocación o salto (jump) Las sentencias de selección son: si (if) y según sea (switch) Las sentencias de repetición o iterativas son: desde (for), mientras ( (while), hacer-mientras (do-while) o repetir hasta que (repetir- ), ( ) p q ( p until) Las sentencias de salto o bifurcacion incluyen romper (break) continuar (continue), ir-a (goto), volver (return) y lanzar (throw) ( ), (g ), ( ) ( )
  5. 5. Estructura secuencial Una estructura secuencial es aquella en la que una acción q q (instrucción) sigue a otra en secuencia
  6. 6. Ejemplo La suma S de los números Proceso sin_titulo Escribir "suma y producto es S=A+B y el producto P de dos numeros"; es P=A*B Leer num1; Leer num2; s<-num1+num2; p<-num1 num2; p<-num1*num2; Escribir s; Escribir p; FinProceso
  7. 7. Estructuras selectivas Las estructuras selectivas se utilizan para tomar decisiones lógicas; de hí d ahí que se suelen d l denominar también estructuras d d i ió o i bié de decisión alternativas La representación de una estructura selectiva se hace con palabras de pseudocódigo (if, then, else o bien es español si, entonces, sino), con una figura geométrica en forma de rombo Las estructuras selectivas o alternativas pueden ser; p ; Simples Dobles multiples
  8. 8. Alternativa simple (si-entonces/if-then) La estructura alternativa simple si-entonces (if-then) ejecuta una p ( ) j determinada acción cuando se cumple una determinada condición. La selección si-entonces evalúa la condición y Si la condición es verdadera, entonces ejecuta la acción SI ( o acciones en caso de ser SI una acción puede ser compuesta y constar de varias acciones) Si la condición es falsa, entonces no hacer nada
  9. 9. Estructura doble (si entonces/if-then-else) La estructura anterior es muy limitada y normalmente se necesita una estructura que permita elegir entre dos opciones o alternativas posibles, en función del cumplimiento o no de una determinada condición Si la condición es verdadera se ejecuta la acción S1 y si es falsa se verdadera, y, falsa, ejecuta la acción S2
  10. 10. Ejemplos Resolución de una ecuación de primer grado p g Si la ecuación es ax+b=0, a y b son los datos, y las posibles soluciones son: a<>0 x=-b/a a=0 b<>o entonces “solución imposible” a=0 b=0 entonces “solución indeterminada”
  11. 11. Ejemplos Estructura selectiva para averiguar si un año leído del p g teclado es no bisiesto Algoritmo que nos calcule el área de un triangulo conociendo sus lados. La estructura selectiva se utiliza para el control de la entrada de datos en el programa
  12. 12. Alternativa múltiple (según sea, caso de/case) sea La estructura de decisión múltiple evaluara una expresión que podrá tomar n valores distintos, 1,2,3,4,…n. según se elija uno de estos valores en la condición, se realizara una de las n acciones o lo que es igual, igual el flujo del algoritmo seguirá un determinado camino entre los n posibles
  13. 13. Ejemplo Se desea diseñar un algoritmo que escriba los nombres de g q los días de la semana en función del valor de una variable DIA introducida por el teclado Preguntar que día de la semana fue el día 1 del mes actual y calcular que día de la semana es hoy
  14. 14. Estructuras de decisión anidadas Las estructuras de selección si-entonces y si entonces-si_no_ implican la selección de dos alternativas. Es posible también utilizar la instrucción si para diseñar estructuras de selección que contengan mas de dos alternativas. Por ejemplo, una estructura si-entonces puede contener otra estructura si- entonces, entonces y una estructura si entonces puede contener otra y si-entonces otra, así sucesivamente cualquier numero de veces
  15. 15. Ejemplo Diseñe un algoritmo que lea tres numero A,B,C y visualice en la pantalla el valor del mas grande. Se supone que los 3 valores son diferentes El siguiente algoritmo l 3 números dif i i t l it lee ú diferentes A B C e t A, B, imprime los valores máximo y mínimo. El procedimiento consistirá en comparaciones sucesivas de parejas de números p p j Pseudocódigo que nos permita calcular las soluciones de una ecuación de segundo grado, incluyendo los valores imaginarios i i i
  16. 16. La sentencia ir-a (goto) La sentencia ir-a (goto) o sentencia de invocación directa (g ) transfiere el control del programa a una posición especificada por el programa Las sentencias ir-a pertenece a un grupo de sentencias conocidas como sentencias de salto (jump). Las sentencias de salto hacen que e ujo el flujo de control salte a otra parte del programa. Otras co o sa e o a pa e de p og a a. O as sentencias de salto o bifurcación que se encuentra en los lenguajes de programación, tanto tradicionales como nuevos son interrumpir (break), (b k) continuar ( i (continue), volver ( i ) l (return) y l ) lanzar ( h ) (throw)
  17. 17. Resumen Las estructuras de selección si y según_sea son sentencias de g _ bifurcación que se ejecutaran en función de sus elementos relacionados en las expresiones o condiciones correspondientes que se forman con operadores lógicos y de comparación. Estas sentencias permiten escribir algoritmos que realizan tomas de decisiones y relacionan de modos diferentes a datos diferentes
  18. 18. Ejemplos Leer dos números y deducir si están en orden creciente Algoritmo que nos indique si un numero, entero leído del teclado, tiene 1,2,3, o mas dígitos, considerar los negativos
  19. 19. Deber 4.3 Dados tres números deducir cual es el central 4.10 Un ángulo se considera agudo si es menor de 90 grados, obtuso si es mayor de 90 grados y recto si es igual a 90 grados Utilizando esta información escribir un grados. información, algoritmo que acepte un ángulo en grados y visualice el tipo de ángulo correspondiente a los grados introducidos Escribir un programa que seleccione la operación aritmética a ejecutar entre dos números dependiendo del valor de una variable denominada selección
  20. 20. FLUJO DE CONTROL IIEstructuras repetitivas
  21. 21. Contenido
  22. 22. Estructuras repetitivas Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces se denominan bucles y se denomina interacción al hecho de repetir la ejecución de una secuencia de acciones acciones. La acción (o acciones) que se repite en un bucle se denomina interacción Las principales preguntas a realizarse en el diseño de un bucle son; Que contiene el bucle? Y cuantas veces se debe d b repetir?ti ?
  23. 23. Cont..Cont Lo normal es que la condición se indique al final o al principio q q p p del bucle, y así se consideran tres tipos de instrucciones o estructuras repetitivas o interactivas generales y una en particular que denominaremos iterar, que contiene la salida en el interior del bucle
  24. 24. Cont…Cont Los tres casos generales de estructuras repetitivas dependen de la situación y modo de la condición. La condición se evalúa tan pronto se encuentra en el algoritmo y su resultado producirá los tres tipos de estructuras citadas La condición de salida del bucle se realiza al principio del bucle (estructura mientras) La condición de salida se origina al final del bucle; el bucle se ejecuta hasta que se verifica una cierta condición La condición de salida se realiza con un contador que cuenta el numero de iteraciones
  25. 25. Ejemplos
  26. 26. Estructura mientras (while)
  27. 27. Estructura mientras (while) La estructura repetitiva mientras (while o dowhile) es aquella en que el cuerpo d l b l se repite mientras se cumple una d l del bucle i i l determinada i d condición. Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición. Si se evalúa falsa, no se toma ninguna acción y el programa prosigue en la siguiente instrucción del bucle. Si la expresión booleana es verdadera, entonces se ejecuta el cuerpo d l b l d j t l del bucle después d l cual se evalúa d nuevo é de lo l lú de la expresión booleana. Este proceso se repite una y otra vez mientras la condición booleana sea verdadera
  28. 28. Ejemplos Leer por teclado un numero que represente una p q p cantidad de números que a su vez se leerán también por el teclado. Calcular la suma de estos números Contar los numero enteros positivos introducidos por el teclado. Se consideran dos variables enteras NUMERO Y CONTADOR ( (contara el numero d eneros positivos). l de ii ) Se supone que se leen números positivos y se detiene el bucle cuando se lee un numero negativo o cero
  29. 29. Ejecución de un bucle cero veces e infinito En una estructura mientras la primera cosa que sucede p q es la evaluación de la expresión booleana; si se evalúa falsa en ese punto, entonces el cuerpo del bucle nunca se ejecuta Un bucle que nunca se termina se denomina bucle infinito i fi i o sin fi L b l sin fi no i i fin. Los bucles i fin intencionados son i d perjudiciales para la programación y se deben evitar siempre
  30. 30. Regla práctica Las pruebas o test en las expresiones booleanas es conveniente que sean mayor o menor que en lugar de pruebas de igualdad o desigualdad. En el caso de la codificación en un lenguaje de programación, esta regla debe seguirse rígidamente en el caso de numero reales, ya que como estos valores se almacena en cantidades aproximadas las comparaciones de igualdad de valores reales normalmente plantean problemas. Siempre que realice comparaciones de números reales use l relaciones < < > o > l las l i <,<=,> >=
  31. 31. Terminación de bucles con datos de entrada Si un algoritmo o programa esta leyendo una lista de g p g y valores con un bucle mientras, se debe incluir algún tipo de mecanismo para terminar el bucle. Existen cuatro métodos típicos para terminar un bucle de entrada Preguntar antes de la iteración Encabezar l li d d E b la lista de datos con su tamaño ñ Finalizar la lista con un valor de entrada Agotar los datos de t d A t l d t d entrada
  32. 32. Ejemplos Calcular la media de un conjunto de notas de alumnos. Pondremos un valor centinela de -99 que detecte el fin del bucle
  33. 33. Estructura hacer- mientras (do-while) El bucle hacer mientras es análogo al bucle mientras y el cuerpo del bucle se ejecuta una y otra vez mientras la condición (expresión booleana) es verdadera. Existe, sin embargo una gran diferencia y es que el cuerpo del bucle g g q p esta encerrado entre las palabras hacer y mientras, de modo que las sentencias de dicho cuerpo se ejecutan, al menos una vez, antes de que se evalúe la expresión booleana. En otras palabras, el cuerpo del bucle siempre se ejecuta, al menos una vez, incluso aunque la expresión booleana sea falsa
  34. 34. Estructura hacer- mientras (do-while) Al igual que en el caso del bucle mientras la sentencia en el g q interior del bucle puede ser simple o compuesta. Todas las sentencias en el interior del bucle se ejecutan al menos una vez antes de que la expresión o condición se evalué. Entonces si la expresión es verdadera las sentencias del cuerpo del bucle se ejecutan una vez mas
  35. 35. Estructura repetir (repeat) Existen muchas situaciones en las que se desea que un bucle se q q ejecute al menos una vez antes de comprobar la condición de repetición. En la estructura mientras si el valor de la expresión booleana es inicialmente falso el cuerpo del bucle no se ejecutara falso, ejecutara; por ello, se necesitan otros tipos de estructuras repetitivas La estructura repetir (repeat) se ejecuta hasta que se cumpla una condición determinada que se comprueba l final del bucle El bucle repetir-hasta_que se repite mientras el valor de la expresión booleana de la condición sea falsa justo la opuesta a la sentencia mientras falsa,
  36. 36. Estructura repetir (repeat) Ejemplo Desarrollar el algoritmo necesario para calcular el factorial de f t i l d un numero N que responda a la formula N! N (N ) (N )…3 N!=N*(N-1)*(N-2)…3*2*1
  37. 37. Diferencias de las estructuras mientras y repetir La estructura mientras termina cuando la condición es falas, , mientras que repetir termina cuñado la condición es verdadera En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una vez; por el contrario, mientras es mas general y permite la posibilidad de que el bucle pueda no ser ejecutado. P j d Para usar l estructura repetir d b estar seguro la i debe de que el cuerpo del bucle -bajo cualquier circunstancia- se repetirá al menos una vez
  38. 38. Estructura desde/para (for) En muchas ocasiones se conoce de antemano el numero de veces que se desean ejecutar las acciones del bucle. En estos casos, en el que el numero de iteraciones es fijo, se debe usar la estructura desde o para. La estructura desde ejecuta las acciones del cuerpo del bucle un numero especificado de veces y de modo automático controla el numero de iteraciones o paso a través del cuerpo del bucle
  39. 39. Estructura desde/para (for) Ejemplo Calcular la suma de los N primeros numero enteros
  40. 40. Realización de una estructura desde con unaestructura mientras Es posible, sustituir una estructura desde por una mientras;
  41. 41. Salidas internas de los bucles Aunque no se incluye dentro de las estructuras básicas de la programación estructurada, en ocasiones es necesario disponer de una estructura repetitiva que permita la salida en un punto intermedio del bucle cuando se cumpla una condición condición. Esta nueva estructura solo esta disponible en algunos lenguajes de programación específicos; la denominaremos iterar para diferenciarlo de repetir_hasta ya conocida. Las salidas de f bucles suelen ser validas en estructuras mientras, repetir y desde
  42. 42. Sentencias de salto interrumpir (break) ycontinuar (continue) Sentencia interrumpir (break) La sentencia interrumpir se puede utilizar para terminar una sentencia de iteración y cuando se ejecuta produce que el flujo de control salte fuera a la siguiente sentencia inmediatamente a continuación d l sentencia d iteración. La sentencia interrumpir de la de se puede colocar en el interior del cuerpo del bucle para implementar este efecto Regla La sentencia interrumpir (break) se utiliza frecuentemente junto con una sentencia si (if) actuando como una condición interna del ( ) bucle
  43. 43. Ejemplo
  44. 44. Sentencia continuar La sentencia continuar (continue) hace que el flujo de ejecución salte el resto de un cuerpo del bucle para continuar con el siguiente bucle o iteración. Esta característica suele ser útil en algunas circunstancias La secuencia continuar solo se puede utilizar dentro de una iteración de un bucle. La sentencia continuar no interfiere con el numero de veces que se repite el cuerpo del bucle como sucede con interrumpir, sino que simplemente influye en el flujo de control en cualquier interacción especifica
  45. 45. Ejemplo Al ejecutar el bucle anterior se producen estos resultados; 1,2,3,5,6,7,9,10,11,13,14,15,17,18,19
  46. 46. Estructuras repetitivas anidadas De igual forma que se pueden anidar o encajar estructuras de selección, es posible insertar un bucle dentro de otro. Las reglas para construir estructuras repetitivas anidadas son iguales en ambos casos: la estructura interna debe estar incluida totalmente dentro de la externa y no puede existir solapamiento
  47. 47. EjemploCalcular el factorial de nnúmeros leídos del terminal
  48. 48. Ejemplos Imprimir las 30 primeras potencias de 4, es decir 4^1, 4^2, etc Diseñar el algoritmo para imprimir la suma de los números impares menores o iguales que n Buscar y escribir la primera vocal leída del teclado. (se supone que se leen uno a uno caracteres desde el teclado) Escribir un algoritmo que permita escribir en una pantalla la frase ?desea continuar? S/N hasta que la respuesta sea S o N
  49. 49. Deber Imprimir todos los números primos entre dos y 1000 inclusive Imprima una tabla de multiplicar Calcular
  50. 50. Patrón de prueba de pantalla panorámica (16:9) Prueba de la relación de aspecto (Debe parecer circular) 4x316x9

×