1. 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 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 inclusive
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
3. Contenido
El flujo de control de un programa
j p g
Estructura secuencial
Estructuras selectivas
Estructuras de decisión anidadas
Resumen
Deber
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. Estructura secuencial
Una estructura secuencial es aquella en la que una acción
q q
(instrucción) sigue a otra en secuencia
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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. 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. 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
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. 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. 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. 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. 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. Ejemplos
Calcular la media de un conjunto de notas de
alumnos. Pondremos un valor centinela de -99 que
detecte el fin del bucle
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. 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. 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. 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. 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. 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
40. Realización de una estructura desde con una
estructura mientras
Es posible, sustituir una estructura desde por una mientras;
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. Sentencias de salto interrumpir (break) y
continuar (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
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. 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. 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
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. Deber
Imprimir todos los números primos entre dos y 1000
inclusive
Imprima una tabla de multiplicar
Calcular
50. Patrón de prueba de pantalla panorámica (16:9)
Prueba de la
relación de
aspecto
(Debe parecer circular)
4x3
16x9