Pensamiento Algoritmico 3-Flujo de Control
Pensamiento Algoritmico 3-Flujo de Control
Pensamiento Algoritmico 3-Flujo de Control
FLUJO DE CONTROL
Introduccin
Uno de los mas importantes avances fue el reconocimiento a finales del los sesenta de que cualquier algoritmo, no importaba su complejidad, poda ser construido utilizando combinaciones de tres estructuras de control estandarizadas: secuencial, seleccin, repetitiva o iterativa; y una cuarta denominada invocacin o salto. Seleccin: if, switch Repeticin: for, while, do-while Salto o bifurcacin: break, continue, goto, return, throw
ESTRUCTURA SECUENCIAL
Estructura secuencial
Es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. Ejercicio: Calculo de la suma y producto de dos nmeros:
Inicio leer(A) leer(B) sA+B pA*B escribir(s,p) fin
ESTRUCTURA SELECTIVA
Estructura selectiva
Se utilizan para tomar decisiones lgicas, de ah que suelen denominarse tambin estructuras de decisin o alternativas. En las estructuras selectivas se evala una condicin y en funcin del resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas. Pueden ser: Simples Dobles Mltiples
Alternativa simple - if
Ejecuta una determinada accin cuando se cumple una determinada condicin. La seleccin if evala la condicin y: Si la condicin es verdadera, entonces ejecuta la accin S1 (o acciones). Si la condicin es falsa, entonces no hace nada
si <condicion> <acciones> fin_si
Ejemplo
Empleo de la estructura selectiva para averiguar si un ao ledo de teclado es o no bisiesto.
si (ao%4==0) y (ao%100!=0) o (ao%100==0) imprima(ao bisiesto) si_no imprima(ao no bisiesto) fin si
Ejemplo
Se desea disear un algoritmo que escriba los nombres de los das de la semana en funcin del valor de una variable DIA introducida por teclado.
ESTRUCTURA REPETITIVA
Introduccin
Muchos problemas requieren de caractersticas de repeticin en las que algunos clculos o secuencia de instrucciones se repiten una y otra vez, utilizando diferentes conjuntos de datos (ej.Validacin de datos). Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces se denominan bucles y se denomina iteracin al hecho de repetir la ejecucin de una secuencia de acciones.
Ejemplo
Se desea sumar una lista de nmeros escritos desde el teclado. El medio conocido hasta ahora es leer los nmeros y aadir sus valores a una variable suma que contenga las sucesivas sumas parciales
algoritmo suma entero suma, num inicio suma=0 leer(num) suma=suma+num leer(num) suma=suma+num leer(num) suma=suma+num fin
Ejemplo
Y asi sucesivamente para cada nmero de la lista. En otras palabras, el algoritmo repite muchas veces las acciones:
leer(num) suma=suma+num
Tales operaciones repetidas se denominan bucle o lazos. La accin o acciones que se repiten en un bucle se denominan iteracin. Las dos principales preguntas de un bucle son: Qu contiene el bucle? Y Cuntas veces se debe repetir?
Estructura de un bucle
Cuando se utiliza un bucle para sumar una lista de nmeros se necesita saber cuntos nmeros se han de sumar. Para ello necesitamos conocer algn medio para detener el bucle. En el ejemplo anterior se le puede solicitar al usuario que digite la cantidad N de nmeros que desea sumar. Existen dos procedimientos para contar el nmero de iteraciones:
Inicio total=N suma=0 mientras total>0 hacer leer(numero) suma=suma+numero total=total-1 fin_mientras fin
Ejercicios
1.
Ejercicios
1.
Contar los nmeros enteros positivos introducidos por teclado. Se consideran dos variables enteras NUMERO y CONTADOR (contar el nmero de enteros positivos). Se supone que se leen nmeros positivos y se detiene el bucle si se lee un nmero negativo o cero.
Variables contadoras
Como su nombre lo indica estas variables se usan fundamentalmente para contar, por lo tanto debe ser del tipo entero. Una variable contadora se incrementa (o decrementa) en un valor constante en cada iteracin del ciclo. Es as como en el algoritmo presentado anteriormente para resolver el problema de calcular la cantidad de nmeros que el usuario ha digitado, la variable c es una variable contadora.
Variables acumuladoras
La funcin de una variable acumuladora es almacenar valores numricos que generalmente se suman (o multiplican) en cada iteracin, por lo tanto la variable debe ser de tipo entero o real. Por ejemplo, en los diferentes algoritmos presentados para solucionar el problema de calcular la suma de los nmeros naturales desde 1 hasta n, la variable suma es una variable acumuladora.
Variable bandera
Una variable bandera es utilizada dentro de la condicin de un ciclo, para determinar cundo un ciclo se sigue iterando o cuando no. De esta manera una variable bandera debe ser de tipo booleano o entero. Un ejemplo podra ser: realizar un programa que lea una serie de nmeros reales y los sume. El programa debe preguntar al usuario cuando desea ingresar un siguiente dato. Si el usuario desea continuar ingresando datos se debe seguir solicitando datos y si el usuario confirma su deseo de salir, el programa debe mostrar la suma de los datos ledos y terminar.
Laboratorio
1. 2. 3.
4.
5. 6.
Escribir los nmeros del 1 al 100 Validacin de datos: mes 1 a 12 Disear algoritmo para imprimir la suma de los nmeros impares menores o iguales a un n dado por el usuario. Leer sucesivamente nmeros del teclado hasta que aparezca un nmero comprendido entre 1 a 5. Calcular el mximo de una serie de 20 nmeros. Determinar simultneamente los valores, mximo y mnimo de 20 nmeros.