Clase 3

50
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 Cl l i li l l d t d l ú 2 Calcular y visualizar la suma y el producto de los números pares comprendidos entre 20 y 400, ambos inclusive 3 Calcular la suma de los cuadrados de los 100 primeros 3 Calcular la suma de los cuadrados de los 100 primeros números naturales 4 Calcular la media de 500 números e imprimir su resultado

Transcript of Clase 3

Page 1: Clase 3

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

Page 2: Clase 3

PROGRAMACIÓN ESTRUCTURADA ALGORITMOS ESTRUCTURADA: ALGORITMOS Y ESTRUCTURAS DE DATOS Flujo de control I; Estructuras selectivas

Page 3: Clase 3

Contenido Contenido

El flujo de control de un programaj p gEstructura secuencialEstructuras selectivasEstructuras selectivasEstructuras de decisión anidadasResumenResumenDeber

Page 4: Clase 3

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 ( )

Page 5: Clase 3

Estructura secuencial Estructura secuencial

Una estructura secuencial es aquella en la que una acciónq q(instrucción) sigue a otra en secuencia

Page 6: Clase 3

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

Page 7: Clase 3

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

Page 8: Clase 3

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

Page 9: Clase 3

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

Page 10: Clase 3

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”

Page 11: Clase 3

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

Page 12: Clase 3

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

Page 13: Clase 3

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

Page 14: Clase 3

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

Page 15: Clase 3

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

Page 16: Clase 3

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)

Page 17: Clase 3

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

Page 18: Clase 3

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

Page 19: Clase 3

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

Page 20: Clase 3

FLUJO DE CONTROL IIEstructuras repetitivas

Page 21: Clase 3

Contenido Contenido

Page 22: Clase 3

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?

Page 23: Clase 3

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

Page 24: Clase 3

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

Page 25: Clase 3

Ejemplos Ejemplos

Page 26: Clase 3

Estructura mientras (while)Estructura mientras (while)

Page 27: Clase 3

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

Page 28: Clase 3

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

Page 29: Clase 3

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

Page 30: Clase 3

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 >=

Page 31: Clase 3

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

Page 32: Clase 3

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

Page 33: Clase 3

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

Page 34: Clase 3

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

Page 35: Clase 3

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

Page 36: Clase 3

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

Page 37: Clase 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

Page 38: Clase 3

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

Page 39: Clase 3

Estructura desde/para (for)Estructura desde/para (for)

Ejemplo

Calcular la suma de los N primerosnumero enteros

Page 40: Clase 3

Realización de una estructura desde con una estructura mientrasestructura mientras

Es posible, sustituir una estructura desde por una mientras;

Page 41: Clase 3

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

Page 42: Clase 3

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

Page 43: Clase 3

Ejemplo Ejemplo

Page 44: Clase 3

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

Page 45: Clase 3

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

Page 46: Clase 3

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

Page 47: Clase 3

Ejemplo Ejemplo

Calcular el factorial de n números leídos del terminal

Page 48: Clase 3

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

Page 49: Clase 3

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

Page 50: Clase 3

Patrón de prueba de pantalla panorámica (16:9)

Prueba de la relación de

aspecto

(Debe parecer circular)

16x9

4x3