Upload
diego-mc
View
5.094
Download
0
Embed Size (px)
Citation preview
Evaluación Evaluación 1 Se desea calcular independientemente la suma de los
números pares e impares comprendidos entre 1 y 200,ambos inclusive
2 C l l i li l l d t d l ú2 Calcular y visualizar la suma y el producto de los númerospares comprendidos entre 20 y 400, ambos inclusive
3 Calcular la suma de los cuadrados de los 100 primeros3 Calcular la suma de los cuadrados de los 100 primerosnúmeros naturales
4 Calcular la media de 500 números e imprimir su resultado
PROGRAMACIÓN ESTRUCTURADA ALGORITMOS ESTRUCTURADA: ALGORITMOS Y ESTRUCTURAS DE DATOS Flujo de control I; Estructuras selectivas
Contenido Contenido
El flujo de control de un programaj p gEstructura secuencialEstructuras selectivasEstructuras selectivasEstructuras de decisión anidadasResumenResumenDeber
El flujo de control de un programaEl flujo de control de un programaCualquier algoritmo puede ser construido utilizando
bi i d d l d fl jcombinaciones de tres estructuras de control de flujoestandarizadas (secuencial, selección, repetitiva o iterativa) y unacuarta 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 ( puntil)Las sentencias de salto o bifurcacion incluyen romper (break)continuar (continue), ir-a (goto), volver (return) y lanzar (throw)( ), (g ), ( ) y ( )
Estructura secuencial Estructura secuencial
Una estructura secuencial es aquella en la que una acciónq q(instrucción) sigue a otra en secuencia
Ejemplo Ejemplo La suma S de los números Proceso sin_titulo
es S=A+B y el producto P es P=A*B
Escribir "suma y producto de dos numeros";
Leer num1;Leer num2;s<-num1+num2;p<-num1*num2;p<-num1 num2;Escribir s;Escribir p;
FinProceso
Estructuras selectivas Estructuras selectivas Las estructuras selectivas se utilizan para tomar decisiones lógicas;d hí l d i bié d d i ióde ahí que se suelen denominar también estructuras de decisión oalternativasLa representación de una estructura selectiva se hace conpalabras de pseudocódigo (if, then, else o bien es español si,entonces, sino), con una figura geométrica en forma de romboLas estructuras selectivas o alternativas pueden ser;p ;
SimplesDoblesmultiplesmultiples
Alternativa simple (si-entonces/if-then)Alternativa simple (si-entonces/if-then)La estructura alternativa simple si-entonces (if-then) ejecuta unap ( ) jdeterminada acción cuando se cumple una determinadacondición. La selección si-entonces evalúa la condición y
Si la condición es verdadera, entonces ejecuta la acción SI ( oacciones en caso de ser SI una acción puede ser compuesta y constarde varias acciones)
Si la condición es falsa, entonces no hacer nada
Estructura doble (si entonces/if-then-else)Estructura doble (si entonces/if-then-else)La estructura anterior es muy limitada y normalmente se necesita unaestructura 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 seSi la condición es verdadera, se ejecuta la acción S1 y, si es falsa, seejecuta la acción S2
Ejemplos Ejemplos
Resolución de una ecuación de primer gradop gSi la ecuación es ax+b=0, a y b son los datos, y las posiblessoluciones son:
a<>0 x=-b/aa=0 b<>o entonces “solución imposible”a=0 b=0 entonces “solución indeterminada”
Ejemplos Ejemplos
Estructura selectiva para averiguar si un año leído delp gteclado es no bisiestoAlgoritmo que nos calcule el área de un triangulo conociendosus lados. La estructura selectiva se utiliza para el control dela entrada de datos en el programa
Alternativa múltiple (según sea caso de/case) Alternativa múltiple (según sea, caso de/case)
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 estosvalores en la condición, se realizara una de las n acciones o lo que esigual el flujo del algoritmo seguirá un determinado camino entre losigual, el flujo del algoritmo seguirá un determinado camino entre losn posibles
Ejemplo Ejemplo
Se desea diseñar un algoritmo que escriba los nombres deg qlos días de la semana en función del valor de una variableDIA introducida por el tecladoPreguntar que día de la semana fue el día 1 del mes actualy calcular que día de la semana es hoy
Estructuras de decisión anidadas Estructuras de decisión anidadas
Las estructuras de selección si-entonces y si entonces-si_noy _implican la selección de dos alternativas. Es posible tambiénutilizar la instrucción si para diseñar estructuras de selecciónque contengan mas de dos alternativas. Por ejemplo, unaestructura si-entonces puede contener otra estructura si-entonces y una estructura si entonces puede contener otra yentonces, y una estructura si-entonces puede contener otra, yasí sucesivamente cualquier numero de veces
Ejemplo Ejemplo Diseñe un algoritmo que lea tres numero A,B,C y visualice enla pantalla el valor del mas grande. Se supone que los 3valores son diferentesEl i i t l it l 3 ú dif t A B CEl siguiente algoritmo lee 3 números diferentes A, B, C eimprime los valores máximo y mínimo. El procedimientoconsistirá en comparaciones sucesivas de parejas de númerosp p jPseudocódigo que nos permita calcular las soluciones de unaecuación de segundo grado, incluyendo los valoresi i iimaginarios
La sentencia ir-a (goto) 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 especificadapor el programa
Las sentencias ir-a pertenece a un grupo de sentencias conocidascomo sentencias de salto (jump). Las sentencias de salto hacen queel flujo de control salte a otra parte del programa. Otrase ujo de co o sa e a o a pa e de p og a a. O assentencias de salto o bifurcación que se encuentra en los lenguajesde programación, tanto tradicionales como nuevos son interrumpir(b k) i ( i ) l ( ) l ( h )(break), continuar (continue), volver (return) y lanzar (throw)
Resumen Resumen
Las estructuras de selección si y según_sea son sentencias dey g _bifurcación que se ejecutaran en función de sus elementosrelacionados en las expresiones o condicionescorrespondientes que se forman con operadores lógicos y decomparación. Estas sentencias permiten escribir algoritmosque realizan tomas de decisiones y relacionan de modosque realizan tomas de decisiones y relacionan de modosdiferentes a datos diferentes
Ejemplos Ejemplos
Leer dos números y deducir si están en orden crecienteyAlgoritmo que nos indique si un numero, entero leído delteclado, tiene 1,2,3, o mas dígitos, considerar los negativos
Deber Deber 4.3 Dados tres números deducir cual es el central 4.10 Un ángulo se considera agudo si es menor de 90grados, obtuso si es mayor de 90 grados y recto si es iguala 90 grados Utilizando esta información escribir una 90 grados. Utilizando esta información, escribir unalgoritmo que acepte un ángulo en grados y visualice eltipo de ángulo correspondiente a los grados introducidosEscribir un programa que seleccione la operación aritméticaa ejecutar entre dos números dependiendo del valor de unavariable denominada selección
FLUJO DE CONTROL IIEstructuras repetitivas
Contenido Contenido
Estructuras repetitivas Estructuras repetitivas Las estructuras que repiten una secuencia deinstrucciones un numero determinado de veces sedenominan bucles y se denomina interacción al hechode repetir la ejecución de una secuencia de accionesde repetir la ejecución de una secuencia de acciones.La acción (o acciones) que se repite en un bucle sedenomina interacciónLas principales preguntas a realizarse en el diseño deun bucle son; Que contiene el bucle? Y cuantas veces sed b ti ?debe repetir?
ContCont..Lo normal es que la condición se indique al final o al principioq q p pdel bucle, y así se consideran tres tipos de instrucciones oestructuras repetitivas o interactivas generales y una enparticular que denominaremos iterar, que contiene la salida enel interior del bucle
ContCont…Los tres casos generales de estructuras repetitivas dependen de lasituación y modo de la condición. La condición se evalúa tan prontose encuentra en el algoritmo y su resultado producirá los tres tiposde estructuras citadas
La condición de salida del bucle se realiza al principio del bucle (estructuramientras)La condición de salida se origina al final del bucle; el bucle se ejecutaLa condición de salida se origina al final del bucle; el bucle se ejecutahasta que se verifica una cierta condiciónLa condición de salida se realiza con un contador que cuenta el numero deiteracionesiteraciones
Ejemplos Ejemplos
Estructura mientras (while)Estructura mientras (while)
Estructura mientras (while)Estructura mientras (while)La estructura repetitiva mientras (while o dowhile) es aquella en quel d l b l i i l d i del cuerpo del bucle se repite mientras se cumple una determinada
condición.Cuando se ejecuta la instrucción mientras, la primera cosa quesucede es que se evalúa la condición. Si se evalúa falsa, no se tomaninguna acción y el programa prosigue en la siguiente instruccióndel bucle. Si la expresión booleana es verdadera, entonces sej t l d l b l d é d l l lú dejecuta el cuerpo del bucle después de lo cual se evalúa de nuevo
la expresión booleana. Este proceso se repite una y otra vezmientras la condición booleana sea verdadera
Ejemplos Ejemplos Leer por teclado un numero que represente unap q pcantidad de números que a su vez se leerán tambiénpor el teclado. Calcular la suma de estos númerosContar los numero enteros positivos introducidos por elteclado. Se consideran dos variables enteras NUMEROY CONTADOR ( l d i i )Y CONTADOR (contara el numero de eneros positivos).Se supone que se leen números positivos y se detiene elbucle cuando se lee un numero negativo o cerobucle cuando se lee un numero negativo o cero
Ejecución de un bucle cero veces e infinito Ejecución de un bucle cero veces e infinito
En una estructura mientras la primera cosa que sucedep qes la evaluación de la expresión booleana; si se evalúafalsa en ese punto, entonces el cuerpo del bucle nuncase ejecutaUn bucle que nunca se termina se denomina buclei fi i i fi L b l i fi i i dinfinito o sin fin. Los bucles sin fin no intencionados sonperjudiciales para la programación y se deben evitarsiempresiempre
Regla práctica Regla práctica Las pruebas o test en las expresiones booleanas esconveniente que sean mayor o menor que en lugar depruebas de igualdad o desigualdad.En el caso de la codificación en un lenguaje deEn el caso de la codificación en un lenguaje deprogramación, esta regla debe seguirse rígidamente en elcaso de numero reales, ya que como estos valores sealmacena en cantidades aproximadas las comparacionesalmacena en cantidades aproximadas las comparacionesde igualdad de valores reales normalmente planteanproblemas. Siempre que realice comparaciones de números
l l l i < < > >reales use las relaciones <,<=,> o >=
Terminación de bucles con datos de entradaTerminación de bucles con datos de entrada
Si un algoritmo o programa esta leyendo una lista deg p g yvalores con un bucle mientras, se debe incluir algún tipode mecanismo para terminar el bucle. Existen cuatrométodos típicos para terminar un bucle de entrada
Preguntar antes de la iteraciónE b l li d d ñEncabezar la lista de datos con su tamañoFinalizar la lista con un valor de entradaA t l d t d t dAgotar los datos de entrada
Ejemplos Ejemplos
Calcular la media de un conjunto de notas deCalcular la media de un conjunto de notas dealumnos. Pondremos un valor centinela de -99 quedetecte el fin del bucledetecte el fin del bucle
Estructura hacer- mientras (do-while) Estructura hacer- mientras (do-while) El bucle hacer mientras es análogo al bucle mientras y elcuerpo del bucle se ejecuta una y otra vez mientras lacondición (expresión booleana) es verdadera. Existe, sinembargo una gran diferencia y es que el cuerpo del bucleg g y q pesta encerrado entre las palabras hacer y mientras, demodo que las sentencias de dicho cuerpo se ejecutan, almenos una vez, antes de que se evalúe la expresiónmenos una vez, antes de que se evalúe la expresiónbooleana. En otras palabras, el cuerpo del bucle siempre seejecuta, al menos una vez, incluso aunque la expresiónbooleana sea falsabooleana sea falsa
Estructura hacer- mientras (do-while) Estructura hacer- mientras (do-while)
Al igual que en el caso del bucle mientras la sentencia en elg qinterior del bucle puede ser simple o compuesta. Todas lassentencias en el interior del bucle se ejecutan al menos una vezantes de que la expresión o condición se evalué. Entonces si laexpresión es verdadera las sentencias del cuerpo del bucle seejecutan una vez masejecutan una vez mas
Estructura repetir (repeat)Estructura repetir (repeat)
Existen muchas situaciones en las que se desea que un bucle seq qejecute al menos una vez antes de comprobar la condición derepetición. En la estructura mientras si el valor de la expresiónbooleana es inicialmente falso el cuerpo del bucle no se ejecutarabooleana es inicialmente falso, el cuerpo del bucle no se ejecutara;por ello, se necesitan otros tipos de estructuras repetitivas
La estructura repetir (repeat) se ejecuta hasta que se cumpla una condicióndeterminada que se comprueba l final del bucle
El bucle repetir-hasta_que se repite mientras el valor de la expresiónbooleana de la condición sea falsa justo la opuesta a la sentencia mientrasbooleana de la condición sea falsa, justo la opuesta a la sentencia mientras
Estructura repetir (repeat)Estructura repetir (repeat)
Ejemplo
Desarrollar el algoritmonecesario para calcular elf t i l d Nfactorial de un numero N queresponda a la formula
N!=N*(N-1)*(N-2)…3*2*1N! N (N ) (N )…3
Diferencias de las estructuras mientras y repetirDiferencias 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 verdaderaEn la estructura repetir el cuerpo del bucle se ejecuta siempreal menos una vez; por el contrario, mientras es mas general ypermite la posibilidad de que el bucle pueda no serj d P l i d bejecutado. Para usar la estructura repetir debe estar seguro
de que el cuerpo del bucle -bajo cualquier circunstancia- serepetirá al menos una vezrepetirá al menos una vez
Estructura desde/para (for)Estructura desde/para (for)
En muchas ocasiones se conoce de antemano el numero deveces que se desean ejecutar las acciones del bucle. En estoscasos, en el que el numero de iteraciones es fijo, se debe usarla estructura desde o para. La estructura desde ejecuta lasacciones del cuerpo del bucle un numero especificado de vecesy de modo automático controla el numero de iteraciones oy de modo automático controla el numero de iteraciones opaso a través del cuerpo del bucle
Estructura desde/para (for)Estructura desde/para (for)
Ejemplo
Calcular la suma de los N primerosnumero enteros
Realización de una estructura desde con una estructura mientrasestructura mientras
Es posible, sustituir una estructura desde por una mientras;
Salidas internas de los bucles Salidas internas de los bucles
Aunque no se incluye dentro de las estructuras básicas de laprogramación estructurada, en ocasiones es necesariodisponer de una estructura repetitiva que permita la salida enun punto intermedio del bucle cuando se cumpla una condiciónun punto intermedio del bucle cuando se cumpla una condición.Esta nueva estructura solo esta disponible en algunos lenguajesde programación específicos; la denominaremos iterar para
fdiferenciarlo de repetir_hasta ya conocida. Las salidas debucles suelen ser validas en estructuras mientras, repetir ydesde
Sentencias de salto interrumpir (break) y continuar (continue)continuar (continue)
Sentencia interrumpir (break)La sentencia interrumpir se puede utilizar para terminar unasentencia de iteración y cuando se ejecuta produce que el flujode control salte fuera a la siguiente sentencia inmediatamente a
d l dcontinuación de la sentencia de iteración. La sentencia interrumpirse puede colocar en el interior del cuerpo del bucle paraimplementar este efecto
ReglaLa sentencia interrumpir (break) se utiliza frecuentemente juntocon una sentencia si (if) actuando como una condición interna del( )bucle
Ejemplo Ejemplo
Sentencia continuar Sentencia continuar
La sentencia continuar (continue) hace que el flujo de ejecuciónsalte el resto de un cuerpo del bucle para continuar con elsiguiente bucle o iteración. Esta característica suele ser útil enalgunas circunstanciasalgunas circunstanciasLa secuencia continuar solo se puede utilizar dentro de unaiteración de un bucle. La sentencia continuar no interfiere conel numero de veces que se repite el cuerpo del bucle comosucede con interrumpir, sino que simplemente influye en el flujode control en cualquier interacción especificade control en cualquier interacción especifica
Ejemplo 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
Estructuras repetitivas anidadasEstructuras repetitivas anidadas
De igual forma que se pueden anidar o encajar estructuras deselección, es posible insertar un bucle dentro de otro. Las reglas paraconstruir estructuras repetitivas anidadas son iguales en ambos casos: laestructura interna debe estar incluida totalmente dentro de la externaestructura interna debe estar incluida totalmente dentro de la externay no puede existir solapamiento
Ejemplo Ejemplo
Calcular el factorial de n números leídos del terminal
Ejemplos Ejemplos Imprimir las 30 primeras potencias de 4, es decir 4^1, 4^2,etcDiseñar el algoritmo para imprimir la suma de los númerosimpares menores o iguales que nimpares menores o iguales que nBuscar y escribir la primera vocal leída del teclado. (sesupone que se leen uno a uno caracteres desde el teclado)Escribir un algoritmo que permita escribir en una pantalla lafrase ?desea continuar? S/N hasta que la respuesta sea S oNN
Deber Deber
Imprimir todos los números primos entre dos y 1000Imprimir todos los números primos entre dos y 1000inclusiveImprima una tabla de multiplicarImprima una tabla de multiplicarCalcular
Patrón de prueba de pantalla panorámica (16:9)
Prueba de la relación de
aspecto
(Debe parecer circular)
16x9
4x3