You are on page 1of 15

Universidad San Pedro

Semana 03 ESTRUCTURAS ALGORTMICA REPETITIVA E ITERATIVAS.

Semana 03 y 04

Las estructuras repetitivas o iterativas son aquellas en las que las acciones se ejecutan un nmero determinado de veces y dependen de un valor predefinido o el cumplimiento de una determinada accin. Son operaciones que se deben ejecutar un nmero repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto nmero de veces, se llama Ciclo, Bucle o Lazo. Iteracin es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. Fases de un Programa Cclico: 1. Entrada de datos e instrucciones previas 2. Lazo o bucle 3. Instrucciones finales o resto del proceso 4. Salida de resultado

Ejemplo de bucle infinito:

En el flujograma anterior, observa que la flecha que se regresa hacia arriba nos est indicando que hay que volver a evaluar la expresin. En ese caso como el bucle es infinito, no se tiene una condicin para terminar y se estar haciendo siempre. En el siguiente ejemplo, ya se agreg una condicin, la cual nos permitir finalizar la ejecucin del bucle en el caso en que la condicin se cumpla.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


Ejemplo de bucle finito:

Semana 03 y 04

Bucles Repetitivos: A continuacin, te muestro tres diseos de estructuras cclicas: las independientes son cuando los bucles se realiza uno primero hasta que se cumple la condicin y solo en ese caso se entra al bucle B. En los ciclos anidados, al entrar a una estructura de repeticin, dentro de ella se encuentra otra. La ms interna se termina de realizar y se contina con la externa hasta que la condicin se cumple. En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras goto (saltos) para pasar al bucle externo y se quedan entrelazados. Esto puede ocasionar que el programa pierda el control de cul proceso se est ejecutando y podamos obtener resultados errneos. Veamos grficamente el diseo de estas tres formas cclicas:

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

Caractersticas Las estructuras repetitivas permiten representar aquellas acciones que pueden descomponerse en otras sub-acciones primitivas. Es una estructura con una entrada y una salida en la cual se repite una accin un nmero determinado o indeterminado de veces En una Estructura Repetitiva Mientras (While) se repite una accin mientras se cumpla la condicin que controla el bucle. La caracterstica principal de esta estructura es que la condicin es evaluada siempre antes de cada repeticin. La estructura repetitiva Desde (FOR) permite que las instrucciones las cuales contiene en su mbito, se ejecuten un nmero de veces determinado. Entre las estructuras repetitivas se encuentran: 1. Mientras (while) 2. Repetir (repeat) 3. Para (For)

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


1. ESTRUCTURA MIENTRAS (WHILE)

Semana 03 y 04

La estructura repetitiva while, es aqulla en que el cuerpo del bucle se repite mientras se cumple una determinada condicin, Se llama Mientras a la estructura algortmica que se ejecuta mientras la condicin evaluada resulte verdadera. Se evala la expresin booleana y, si es cierta, se ejecuta la instruccin especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresin booleana, y si todava es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluacin de la expresin booleana y ejecucin del cuerpo se repite mientras la expresin sea cierta. Cuando se hace falsa, finaliza la repeticin. Se usan cuando no se conoce con anticipacin el nmero de veces que se ejecutar la accin. Representacin grfica es: NASSI Representacin

Observa en el flujograma, que se necesita una variable contadora (un ndice), para llevar la cuenta de las veces que entramos al cuerpo del ciclo. Tambin es importante notar que esta variable se inicializa antes de entrar al cuerpo del ciclo y dentro del cuerpo se incrementa en una cantidad constante, por lo general en uno. Esta variable a la vez, nos sirve para compararla con el valor dado en la condicin, cuando se cumple la condicin, se sale del ciclo. Representacin pseudocodificada: Pseudocdigo en espaol Mientras condicin hacer Accin S1 Accin S2 : accin Sn Fin_mientras

Pseudocdigo en ingls while condicin do <Acciones> : End_while

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

1er. Ejemplo: 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 cuando se lee un nmero negativo o cero. Pseudocdigo Inicio contador 0

Leer (numero) Mientras numero > 0 hacer contador Leer (numero) Fin_Mientras Escribir('El nmero de enteros positivos es : ', contador) Fin Diagrama de Flujo 1er. Ejemplo contador+1

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

2do ejemplo: Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado. Solucin.

Centinelas y banderas. Cuando no se conoce a priori el nmero de iteraciones que se van a realizar, el ciclo puede ser controlado por centinelas. Centinelas. En un ciclo While controlado por tarea, la condicin de While especifica que el cuerpo del ciclo debe continuar ejecutndose mientras la tarea no haya sido completada. En un ciclo controlado por centinela el usuario puede suspender la introduccin de datos cuando lo desee, introduciendo una seal adecuada llamada centinela. Un ciclo Repetir controlado por centinela es cuando el usuario digita una letra para salir como por ejemplo S o N para indicar si desea continuar o no. El bucle debe repetirse hasta que la respuesta del usuario sea "n" o "N".

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

Cuando una decisin toma los valores de -1 o algn posible valor que no est dentro del rango vlido en un momento determinado, se le denomina centinela y su funcin primordial es detener el proceso de entrada de datos en una corrida de programa. Por ejemplo, si se tienen las calificaciones de un test (comprendida entre 0 y 100); un valor centinela en esta lista puede ser -999, ya que nunca ser una calificacin vlida y cuando aparezca este valor se terminar de ejecutar el bucle. Si la lista de datos son nmeros positivos, un valor centinela puede ser un nmero negativo. Los centinelas solamente pueden usarse con las estructuras Mientras y Repetir, no con estructuras Desde/Para. Ejemplo: Suponga que debemos obtener la suma de los gastos que hicimos en nuestro ltimo viaje, pero no sabemos exactamente cuntos fueron. Si definimos gasto1, gasto2, gasto3, ...., -1 donde gastoi: real es el gasto nmero i y sumgas: real es el acumulador de gastos efectuados. -1 es el centinela de fin de datos. Algoritmo: Inicio Sumgas. 0 Leer (gasto) Mientras gasto <> -1 hacer Sumgas . sumgas + gasto Leer (gasto) Fin_mientras Escribir (sumgas) Fin Banderas. Conocidas tambin como interruptores, switch, flags o conmutadores, son variables que pueden tomar solamente dos valores durante la ejecucin del programa, los cuales pueden ser 0 1, o bien los valores booleanos True o False. Se les suele llamar interruptores porque cuando toman los valores 0 1 estn simulando un interruptor abierto/cerrado o encendido/apagado. Ejemplo 1: Leer un nmero entero N y calcular el resultado de la siguiente serie: 1 - 1/2+ 1/3 - 1/4 +.... +/- 1/N. Algoritmo: Inicio Serie . 0 I.1 Leer (N) Band . "T" Mientras I <= N hacer Si band = "T" entonces Serie . serie + (1/I) Band . "F"

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


Sino Serie . serie - (1/I) Band . "T" Fin_si II+1 Fin_mientras Escribir (serie) Fin 2. ESTRUCTURA REPETIR (REPEAT):

Semana 03 y 04

Se llama Repetir a la estructura algortmica que se ejecuta un nmero definido de veces hasta que la condicin se torna verdadera. Se ejecuta al menos una vez. El bucle repetir-Hasta_que se repite mientras el valor de la expresin booleana de la condicin sea falsa, justo la opuesta de la sentencia mientras.

Pseudocdigo en Espaol Repetir <acciones> : Hasta que <condicin> Diagrama de Flujo de Repetir

Pseudocdigo en Ingls Repeat <acciones> : Until <condicin>

1er. Ejemplo: Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


3. ESTRUCTURA DESDE/PARA (FOR):

Semana 03 y 04

Esta sentencia incluye una expresin que especifica el valor inicial de un ndice, otra expresin que determina cuando se contina o no el bucle y una tercera expresin que permite que el ndice se modifique al final de cada pasada. La forma general de esta sentencia es: For (expresin1; expresin2; expresin3) sentencia en donde expresin 1 (expresin de asignacin), inicializa algn parmetro (llamado ndice) que controla la repeticin del bucle; expresin2 (expresin lgica), representa una condicin que debe ser satisfecha para que se contine la ejecucin del bucle; expresin3 (expresin monaria o expresin de asignacin), modifica el valor del parmetro inicialmente asignado por la expresin La ejecucin de la sentencia for sucede de la siguiente forma: 1. Se inicializan los parmetros. 2. Se evala la expresin lgica. 2.1. Si el resultado es distinto de cero (verdadero), se ejecuta la sentencia, se evala la expresin que da lugar a la progresin de la condicin y se vuelve al punto 2. 2.2. Si el resultado de 2, es cero (falso), la ejecucin de la sentencia for se da por finalizada y se contina en la siguiente sentencia del programa. En muchas ocasiones se conoce de antemano el nmero de veces que se desean ejecutar las acciones de un bucle. En estos casos en el que el nmero de iteraciones es fija, se debe usar la estructura desde o para. La estructura Desde ejecuta las acciones del cuerpo del bucle un nmero especfico de veces y de modo automtico controla el nmero de iteraciones o pasos a travs del cuerpo del bucle. Pseudocdigo en Espaol Desde variable(v)= vi Hasta vf hacer <acciones> : Fin_desde Donde: v: Variable ndice vi, vf: Valores inicial y final de la variable end_for Pseudocdigo en Ingls For variable (v)= vi To vf Do <acciones>

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


Diagrama de Flujo de la estructura Desde/Para

Semana 03 y 04

A la estructura Desde/Para se le conoce como Repetitiva. Para utilizar esta estructura en algoritmos, debemos hacer uso de contadores y algunas veces de acumuladores, cuyos conceptos se describen a continuacin: Contador: Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o accin. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operacin de inicializacin y posteriormente las sucesivas de incremento o decremento del mismo. La inicializacin consiste en asignarle al contador un valor. Se situar antes y fuera del bucle. Representacin: <nombre del contador> nombre del contador> + <valor constante> Si en vez de incremento es decremento se coloca un menos en lugar del ms. Ejemplo: i = i + 1 Acumulador o Totalizador: Es una variable que suma sobre s misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando en una cantidad variable. Representacin: <Nombre del acumulador> <nombre del acumulador> + <valor variable> Ejemplo: Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Se desea resolver el problema usando estructura Desde, Mientras y luego Repetir.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

Ejemplo 2. Elaborar un flujograma para encontrar la suma de los K primeros nmeros enteros.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

En este ejemplo hemos utilizado un bucle repetir, el cual estudiaremos en otra leccin. Lo que queremos hacer notar por el momento, es cmo funcionan el contador y el acumulador. Nota que N es el contador, el cual se inicializa en este caso, con cero, antes de entrar al bucle. Dentro del bucle podrs notar que N se incrementa en 1. Tambin observa la variable suma, la cual es un acumulador que lleva la suma de los nmeros generados. Tambin debe inicializarse con cero, ya que para sumar valores debemos partir de cero, es decir, que al inicio no tenemos nada. Dentro del bucle, suma se incrementa en un nmero N, pero la diferencia con el contador N, es que a suma le sumamos N ms ella misma.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro


Semana 04 Fundamentos de Programacin Orientado a Objetos. Qu es la Programacin Orientada a Objetos?

Semana 03 y 04

Mtodo de Implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son miembros de una jerarqua de clases unidas mediante relaciones de herencia. En tales programas las clases suelen verse estticas, mientras que los objetos suelen tener una naturaleza mucho ms dinmica, promovida por la evidencia de la ligadura dinmica y el polimorfismo. Objeto: Algo a lo cual se le puede hacer cosas. Un objeto tiene un estado, comportamiento e identidad; la estructura y comportamiento de objetos similares se definen en una clase comn. Los trminos instancia y objeto son intercambiables. Clase: Conjunto de objetos que comparten una estructura comn y un comportamiento comn. Los trminos y clase y tipo suelen ser (no siempre) equivalentes; una clase es un concepto ligeramente diferente del de un tipo, en el sentido de que enfatiza la clasificacin de estructura y comportamiento. Encapsulacin: El proceso de introducir en el mismo comportamiento los elementos de abstraccin que constituyen su estructura y comportamiento; el encapsulamiento sirve para separar el interfaz contractual de una abstraccin y su implantacin. Abstraccin: Las caractersticas esenciales de un objeto que lo distinguen de todos los dems objetos y proporcionan as fronteras conceptuales definidas con nitidez en relacin con la prospectiva del observador; el proceso de centrarse en las caractersticas esenciales de un objeto. La abstraccin es uno de los elementos fundamentales del modelo de objetos. Herencia: Relacin entre clases, en la que una clase comparte la estructura y comportamiento definido en otra (herencia simple) u otras (herencia mltiple) clases. La herencia define una relacin de tipo entre clases en la que una subclase hereda de una o ms superclases generalizadas, una subclase suele especializar a sus superclases aumentando o refinando la estructuras y comportamiento existentes. Polimorfismo: Un concepto de teora de tipos, de acuerdo con el cual un nombre (como declaracin de una variable) puede denotar objetos de muchas clases diferentes que se relacionan mediante alguna superclase comn; as todo objeto denotado por este nombre es capaz de responder a algn conjunto comn de operaciones de diferentes modos. Ligadura dinmica y esttica: Ligadura denota asociacin de un nombre (como un declaracin de un variable) con una clase; ligadura dinmica es una ligadura en la que la asociacin nombre/clase no se realiza hasta que el objeto designado por el nombre se crea en tiempo de ejecucin; ligadura esttica es una ligadura en la que la asociacin nombre/clase se realiza cuando se declara el nombre (en tiempo de compilacin) pero antes de la creacin del objeto se designa el nombre.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

Universidad San Pedro

Semana 03 y 04

Mensaje: Operacin que un objeto realiza sobre otro. Los trminos mensaje, mtodo u operacin suelen ser equivalentes. Mtodo: Operacin sobre un objeto, definida como parte de la declaracin de una clase; todos los mtodos son operaciones, pero no todas las operaciones son mtodos. Los trminos mensaje, mtodo o operacin suelen ser equivalentes. Comportamiento: Como acta y reacciona un objeto, en trminos de sus cambios de estado y su paso de mensajes; la actividad exteriormente visible y comprobable de un objeto. Clase abstracta: Una clase que no tiene instancias. Una clase abstracta se escribe con la intencin de que sus subclases concretas aadan elementos nuevos a sus estructura y comportamiento, normalmente implementas en operaciones abstractas. Clase base: La clase ms generalizada en una estructura de clases. La mayora de las aplicaciones tienen muchas de tales clases raz. Algunos ejemplos definen una clase base primitiva, que sirve como la superclase ultima de todas las clases. Clase concreta: Clase cuya implementacin est completa y por tanto puede estar instanciada. Clase contenedor (conteiner): Clases que sirve como plantilla para otras clases, en las que la plantilla puede denotar colecciones homogneas (todos los objetos de la coleccin son de la misma clase) o heterogneas (cada uno de los objetos de la coleccin puede ser una clase diferente, aunque generalmente todos deben compartir un superclase comn). Las clases contenedor se definen la mayora de las veces como clases parametrizadas, en las que algn parmetro designa la clase de los objetos contenidos. Clase genrica: Clase que sirve como plantilla para otras clases, en las que la plantilla puede parametrizarse con otras clases objetos y/o operaciones. Una clase genrica debe ser instanciada (rellenados sus parmetros) antes de que puedan crearse objetos. Las clases genricas se usan tpicamente como clases contenedor. Los trminos clase genrica y clase parametrizada son intercambiables. Jerarqua: Clasificacin u ordenacin de abstracciones. Las dos jerarquas ms habituales en un sistema complejo son su estructura de clases (que incluye jerarqua de tipo) y su estructura de objetos (que incluye jerarqua de partes y de colaboracin; pueden encontrarse tambin jerarquas en las arquitecturas de mdulos y procesos de un sistema complejo. Operacin: Algn trabajo que un objeto realiza sobre otro con el fin de provocar una reaccin. Todas las operaciones sobre un objeto concreto pueden encontrarse en forma de subprogramas libres y funciones miembros o mtodos. Los trminos mensaje, mtodo y operacin son intercambiables. Constructor: Operacin que crea un objeto y/o inicializa su estado. Destructor: Operacin de libera el estado de un objeto y/o destruye el propio objeto.

Doc. Ing. Suxe Ramrez Alicia

Curso: Tcnicas de Programacin

You might also like