38
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE CIENCIAS BÁSICAS ESTRUCTURAS DE CONTROL ITERATIVAS M. en I. María de los Ángeles Contreras Flores Mtra. Leticia Palma Rosales Unidad de Aprendizaje: Programación Básica Programa de Estudios: Ingeniería Mecánica Agosto 2013

Estructuras iterativas

Embed Size (px)

Citation preview

Page 1: Estructuras iterativas

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICOFACULTAD DE INGENIERÍA

COORDINACIÓN DE CIENCIAS BÁSICAS

ESTRUCTURAS DE CONTROL ITERATIVAS

M. en I. María de los Ángeles Contreras Flores

Mtra. Leticia Palma Rosales

Unidad de Aprendizaje: Programación Básica

Programa de Estudios: Ingeniería Mecánica

Agosto 2013

Page 2: Estructuras iterativas

GUÍA EXPLICATIVA Este material tiene como propósito apoyar al alumno en

la comprensión y aplicación de las estructuras de control repetitivas: mientras, para y repite; para lo cual, primero se presenta una explicación teórica de cada una de las estructuras, acompañada de su correspondiente diagrama de flujo, su pseudocódigo y finalmente su codificación en lenguaje de programación C.

Asimismo, al concluir la explicación de cada una de las estructuras, se presentan tres ejemplos con el propósito de apoyar al alumno en la comprensión y aplicación de las mismas.

Page 3: Estructuras iterativas

OBJETIVO Identificar y utilizar técnicas para la solución de

problemas que puedan se implementados en la computadora, mediante la formulación de pseudocódigos y diagramas de flujo, así como su codificación en un lenguaje de alto nivel empleando las estructuras repetitivas: para, mientras y repite.

Page 4: Estructuras iterativas

CONTENIDO TEMÁTICO Introducción Conceptos fundamentales Conceptos básicos para crear estructuras repetitivas Estructura repetitiva mientras.

Concepto Diagrama de flujo, Pseudocódigo, Código Características Ejemplos Resueltos Ejemplos Propuestos

Page 5: Estructuras iterativas

CONTENIDO TEMÁTICO Estructura repetitiva para.

Concepto Diagrama de flujo, Pseudocódigo, Código Características Ejemplos Resueltos Ejemplos Propuestos

Estructura repetitiva repite Concepto Diagrama de flujo, Pseudocódigo, Código Características Ejemplos Resueltos Ejemplos Propuestos

Bibliografía

Page 6: Estructuras iterativas

INTRODUCCIÓN Como se vio en las unidades anteriores, las estructuras

de control son las encargadas de indicar al programa en que orden se ejecutan las instrucciones.

En el siguiente diagrama, se puede apreciar la clasificación de las estructuras de control de acuerdo a los principios de la programación estructurada.

Page 7: Estructuras iterativas

Estructuras de Control

Secuencial

Selectivas

Simple

Doble

Cascada

Múltiple

Iterativas

Mientras

Para

RepiteFig. 1. Estructuras de Control

Page 8: Estructuras iterativas

CONCEPTOS FUNDAMENTALES

¿Qué es una estructura repetitiva?

Las estructuras repetitivas surgen de la necesidad de tener que resolver problemas en los cuales una instrucción o un conjunto de ellas deben ejecutarse más de una vez.

La repetición de esta acción se lleva a cabo mientras se cumpla una condición; para que la acción termine internamente se debe de modificar la(s) variable(s) de control que intervienen en la condición.

Page 9: Estructuras iterativas

¿QUÉ DEBO CONSIDERAR PARA CREAR UNA ESTRUCTURA REPETITIVA?

Primero necesitas saber que un bucle es cualquier construcción de programa que repite una sentencia o secuencia de sentencias un número de veces. La sentencia (o grupo de sentencias) que se repiten en un bloque se denomina cuerpo del bucle o ciclo y cada repetición del bucle se denomina iteración del bucle [3].

Todos los ciclos deben terminar después de repetirse un número finito de veces, para ello se requiere una o varias condiciones que son evaluadas después de cada iteración y dependiendo de su resultado, el ciclo se detiene o continua ejecutándose[1].

Page 10: Estructuras iterativas

La condición puede estar predeterminada, como es el caso de la estructura para, o no estarlo, como en las estructuras mientras y repite.

Para comprender el funcionamiento de las estructuras a continuación veremos como trabaja cada una.

ESTRUCTURAS REPETITIVAS

Page 11: Estructuras iterativas

CONCEPTOS BÁSICOS PARA CREAR ESTRUCTURAS REPETITIVAS

Cuando se crea una estructura repetitiva es necesario tener claro como trabajan las variables que permiten controlar el bucle, y que son conocidas como:

Contadores, acumuladores, centinelas y banderas.

Page 12: Estructuras iterativas

CONTADORES Y ACUMULADORES

Son palabras muy utilizadas en programación y son empleadas para referirse a variables que incrementan o decrementan su valor durante la ejecución de un programa.

Generalmente son de tipo numérico.

Page 13: Estructuras iterativas

CONTADORES Y ACUMULADORES

Ejemplos:cont cont + 1total total + ya a*2J J – 1x x + 5

cont = cont + 1;total = total + 1;a = a * 2;J = J – 1;x = x + 5;

Pseudocódigo Código en C

Page 14: Estructuras iterativas

CARACTERÍSTICAS DE LA VARIABLE CONTADOR O ACUMULADOR:

1. Debe ser inicializada antes del ciclo. La inicialización consiste en asignarle al contador o acumulador un valor de inicio. Siempre se sitúa antes y fuera del bucle.

2. Dentro del ciclo debe aparecerá ambos lados de la asignación

3. Deben ser inicializados adecuadamente, es decir, si la operación es:Suma o resta: generalmente se asigna cero, ya que éste es el elemento neutro de ambas operaciones,Multiplicación: se inicia con 1, si se asignara cero entonces todo lo que se multiplique con esta variable valdrá cero. Se debe recordar que el 1 es el elemento neutro de la multiplicación.

Page 15: Estructuras iterativas

CARACTERÍSTICAS DE LA VARIABLE CONTADOR O ACUMULADOR:

Es una variable que determina o controla el número de veces que se repite un proceso o bucle. Esta variable incrementa o decrementa su valor en una cantidad constante cada vez que se realiza una acción en cada repetición.

Se debe realizar una operación de inicialización y posteriormente el incremento o decremento del mismo.

La inicialización consiste en asignar al contador un valor de inicio.

Se sitúa antes y fuera del bucle. [1]

Page 16: Estructuras iterativas

CONTADOR

nom_cont nom_cont + valor_constante

nom_cont nom_cont -valor_constante

Ejemplo:entero contador 1contador contador + 1

nom_cont = nom_cont + valor_constante;

nom_cont = nom_cont - valor_constante;

Ejemplo:int contador = 1;contador ++;

Pseudocódigo Código en C

Page 17: Estructuras iterativas

ACUMULADOR O TOTALIZADOR

Es una variable que acumula sobre sí misma un conjunto de valores para de esta forma tener la acumulación de ellos en una sola variable. Es una variable que almacena cantidades resultantes de operaciones sucesivas.

Page 18: Estructuras iterativas

ACUMULADOR O TOTALIZADOR

nom_acumulador nom_acumulador + valor

Ejemplo: entero acum 0acum acum + valor

nom_acumulador = nom_acumulador + valor

int acum = 0;acum = acum + valor; o bien:acum += valor;

Pseudocódigo Código en C

Page 19: Estructuras iterativas

CENTINELA El centinela es una variable que inicia con un valor, luego

dentro de un bucle este valor cambia, haciendo falsa la condición del ciclo y por lo tanto terminando la ejecución del mismo (el usuario puede determinar cuándo hacerlo). La repetición controlada por centinela se considera como una repetición indefinida pues se desconoce el número de repeticiones.

Ejemplo: Un usuario puede introducir S o N para indicar si desea continuar ejecutando un programa. El bucle termina cuando se presiona la letra “n” o “N”. También se pueden manejar números.

Page 20: Estructuras iterativas

BANDERA

entero bandera 0ban 1

int bandera = 0;ban = 1;

Pseudocódigo Código en C

Una bandera (flag, interruptor o marca) es una variable que sólo puede tomar dos valores opuestos, generalmente: 1 (verdadero) o 0 (falso), durante la ejecución del algoritmo o programa. Es muy utilizado en búsquedas.

Page 21: Estructuras iterativas

ESTRUCTURA REPETITIVA MIENTRAS (WHILE) Cuando se ejecuta la instrucción mientras, se evalúa la

condición (expresión booleana) escrita en los paréntesis, si su resultado es verdadero (1) entonces se realiza el ciclo, posteriormente, esta condición vuele a ser reevaluada y se procede de la misma manera, este proceso continua hasta que la condición se vuelve falsa (0), dando por terminado el ciclo.

Si la condición no se vuelve falsa, entonces el ciclo nunca termina, teniendo de esta forma un ciclo infinito.

En esta estructura no es necesario conocer el número de veces que se repite el ciclo, ya que esto depende de la condición definida. [1]

Page 22: Estructuras iterativas

ESTRUCTURA REPETITIVA MIENTRAS (WHILE)

Condición

V

F

Fig. 2. Diagrama de flujo de la estructura repetitiva mientras

Acción

Page 23: Estructuras iterativas

PSEUDOCÓDIGO Y CÓDIGO DE LA ESTRUCTURA REPETITIVA MIENTRAS

mientras (condición) inicio

instrucción 1

instrucción 2

instrucción n

fin

while (condición){ instrucción 1 instrucción 2 … instrucción n}

Pseudocódigo o Código en C

Donde condición es cualquier expresión numérica, relacional o lógica.

Page 24: Estructuras iterativas

CARACTERÍSTICAS:

La condición se evalúa antes del ciclo. Si la condición es verdadera el bucle se ejecuta, si es falsa entonces se sale y el control pasa a la siguiente instrucción fuera del ciclo.

Si la condición fuera falsa cuando se revisa por primera vez, entonces el bucle no se ejecuta nunca.

Mientras la condición sea verdadera el conjunto de instrucciones se ejecuta indefinidamente a menos que exista una instrucción que modifique el valor de la condición.

Page 25: Estructuras iterativas

EJERCICIOS:

o Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que permita imprimir los 10 primeros números enteros positivos.

o Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que imprima los múltiplos de 5 que se encuentren de 0 a 150.

o Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que sume un conjunto de números enteros mientras que la suma sea menor o igual a 100. Al final imprimir el resultado.

Page 26: Estructuras iterativas

EJERCICIOS

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que calcule y visualice 1!+2!+3!+…+(n-1)!+n! donde n es un dato dado por el usuario [4].

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que calcule la suma de la serie 1/1+1/2+…+1/n, donde n es un número entero que se determina con la condición de que 1/n sea menor que un valor prefijado (por ejemplo 1*10-6) [4].

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que calcule la suma de la serie 1/2-2/22+3/23…+n/2n para un valor dado de n[4].

Page 27: Estructuras iterativas

ESTRUCTURA REPETITIVA PARA (FOR)

La estructura repetitiva para (for) es la más utilizada y sencilla de manejar, consiste en repetir un conjunto de instrucciones un número determinado de veces. [2]

Una de sus aplicaciones principales se tiene en los arreglos.

Page 28: Estructuras iterativas

ESTRUCTURA REPETITIVA PARA (FOR)

F

Fig. 3. Diagrama de flujo de la estructura repetitiva para

Instrucción 1Instrucción n

V

i vi, i vf,

inc i

Page 29: Estructuras iterativas

PSEUDOCÓDIGO Y CÓDIGO DE LA ESTRUCTURA REPETITIVA PARA

para (valor_inicial, cond, inc) inicio instrucción 1 instrucción 2 … instrucción n fin

for (valor_inicial; cond; inc){ instrucción 1 instrucción 2 … instrucción n}

Pseudocódigo o Código en C

Donde:valor_inicial es el valor que se utiliza para inicial la variable de control del bucle.cond, es la expresión que determina cuando termina el ciclo o bucle.inc, define como cambia la variable de control cada vez que se repite el ciclo.

Page 30: Estructuras iterativas

CARACTERÍSTICAS DE LA ESTRUCTURA REPETITIVA PARA

1. Se debe conocer anticipadamente el valor de la variable inicial y final antes de entrar al ciclo.

2. La condición se evalúa antes del bloque de instrucciones. Si es verdadera se ejecuta, si es falsa se sale y pasa el control al bloque siguiente.

3. El incremento o decremento de la variable de control es automático y no se hace dentro del ciclo

4. La variable de control se incrementa o decrementa según se requiera.

5. Se utiliza inicio-fin ({}) sólo cuando hay más de una instrucción dentro del ciclo

Page 31: Estructuras iterativas

EJERCICIOS:

o Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que imprima en la pantalla los primeros 10 números enteros positivos.

o Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que calcule la sumatoria de todos los números entre 1 y el 20, e imprima el resultado.

o Elabore un pseudocódigo y el correspondiente programa en C, que calcule la sumatoria de todos los números entre 1 y un número leído por el usuario (num) e imprima el resultado.

Page 32: Estructuras iterativas

EJERCICIOS:

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que permita leer una lista de calificaciones y que calcule su promedio, el número de aprobados y reprobados; el programa terminará cuando se introduzca un número negativo. [1]

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que calcule el factorial de un número. [1]

Elabore un diagrama de flujo con su correspondiente pseudocódigo y código en C, que imprima de forma inversa los números del 100 al 1. [1]

Page 33: Estructuras iterativas

ESTRUCTURA REPETITIVA REPITE (DO-WHILE)

Esta estructura permite repetir una acción mientras la condición es verdadera; cuando es falsa se sale del ciclo.

La condición es revisada después de que el cuerpo del bucle es ejecutado.

Se utiliza cuando se requiere que el ciclo se ejecute por lo menos una vez.

La estructura repite y el mientras pueden ser utilizados cuando no se conoce de antemano cuantas veces ha de ser repetido el ciclo.

Page 34: Estructuras iterativas

ESTRUCTURA REPETITIVA REPITE (DO-WHILE)

Instrucción 1Instrucción 2

Instrucción n

VCondición

F

Page 35: Estructuras iterativas

CARACTERÍSTICAS DE LA ESTRUCTURA REPITE

1. El ciclo siempre se ejecuta por lo menos una vez debido a que la condición se encuentra después del ciclo.

2. Debe existir una instrucción dentro del ciclo que modifique la condición, de lo contrario se hará un bucle infinito.

3. Si la condición es verdadera se ejecuta nuevamente el ciclo, se vuelve a revisar la condición y cuando ésta es falsa se sale del bucle.

4. Si existe más de una instrucción dentro del bucle, se deben usar llaves ({}) para indicar el inicio y fin del bucle.

Page 36: Estructuras iterativas

EJEMPLOS: Elabore un diagrama de flujo, un pseudocódigo y el

correspondiente programa en C, que imprima en la pantalla los primeros 10 números enteros positivos.

Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que imprima y sume los números pares entre 1 y 50, imprimir el resultado de las sumatoria.

Elabore un diagrama de flujo, un pseudocódigo y el correspondiente programa en C, que calcule la sumatoria de un conjunto de números mientras que el número que se capture en cada ciclo sea diferente de 0, al final imprimir el resultado.

Page 37: Estructuras iterativas

EJERCICIOS:

Elabore un bucle que le permita imprimir las letras minúsculas del alfabeto.

Escribir un programa que visualice el factorial de un número comprendido entre 2 y 20.

Page 38: Estructuras iterativas

BIBLIOGRAFÍA

1. Corona Nakamura A. y Ancona Valdez María de los Ángeles. (2011), Diseño de Algoritmos y su Codificación en Lenguaje C. 1ª. edición. México. McGrawHill

2. Cairó Battistuti O. (2006), Fundamentos de Programación, Piensa en C, Pearson

3. Joyánes Aguilar L y Zahonero Martínez I. (2003), Programación Orientada a Objetos. 2ª. Edición. Madrid. McGrawHill

4. Joyánes Aguilar L y Zahonero Martínez I. (2010), Programación en C, C++, Java y UML. 1ª. Edición. México. McGrawHill