Estructuras iterativas y ejemplos propuestos

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

Transcript of Estructuras iterativas y ejemplos propuestos

Page 1: Estructuras iterativas y ejemplos propuestos

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 y ejemplos propuestos

GUÍA EXPLICATIVA

Este material tiene como propósito apoyar al alumno enla comprensión y aplicación de las estructuras de controlrepetitivas: mientras, para y repite; para lo cual, primerose presenta una explicación teórica de cada una de lasestructuras, acompañada de su correspondientediagrama de flujo, su pseudocódigo y finalmente sucodificación en lenguaje de programación C.

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

Page 3: Estructuras iterativas y ejemplos propuestos

OBJETIVO

Identificar y utilizar técnicas para la solución deproblemas que puedan se implementados en lacomputadora, mediante la formulación depseudocódigos y diagramas de flujo, así como sucodificación en un lenguaje de alto nivel empleando lasestructuras repetitivas: para, mientras y repite.

Page 4: Estructuras iterativas y ejemplos propuestos

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 y ejemplos propuestos

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 y ejemplos propuestos

INTRODUCCIÓN

Como se vio en las unidades anteriores, las estructurasde control son las encargadas de indicar al programa enque orden se ejecutan las instrucciones.

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

Page 7: Estructuras iterativas y ejemplos propuestos

Estructuras de Control

Secuencial

Selectivas

Simple

Doble

Cascada

Múltiple

Iterativas

Mientras

Para

Repite

Fig. 1. Estructuras de Control

Page 8: Estructuras iterativas y ejemplos propuestos

CONCEPTOS FUNDAMENTALES

¿Qué es una estructura repetitiva?

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

La repetición de esta acción se lleva a cabo mientras secumpla una condición; para que la acción termineinternamente se debe de modificar la(s) variable(s) decontrol que intervienen en la condición.

Page 9: Estructuras iterativas y ejemplos propuestos

¿QUÉ DEBO CONSIDERAR PARA CREAR UNA

ESTRUCTURA REPETITIVA?

Primero necesitas saber que un bucle es cualquierconstrucción de programa que repite una sentencia osecuencia de sentencias un número de veces. Lasentencia (o grupo de sentencias) que se repiten en unbloque se denomina cuerpo del bucle o ciclo y cadarepetición del bucle se denomina iteración del bucle [3].

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

Page 10: Estructuras iterativas y ejemplos propuestos

La condición puede estar predeterminada, como es elcaso de la estructura para, o no estarlo, como en lasestructuras mientras y repite.

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

ESTRUCTURAS REPETITIVAS

Page 11: Estructuras iterativas y ejemplos propuestos

CONCEPTOS BÁSICOS PARA CREAR ESTRUCTURAS

REPETITIVAS

Cuando se crea una estructura repetitiva es necesariotener claro como trabajan las variables que permitencontrolar el bucle, y que son conocidas como:

Contadores, acumuladores, centinelas ybanderas.

Page 12: Estructuras iterativas y ejemplos propuestos

CONTADORES Y ACUMULADORES

Son palabras muy utilizadas en programación y sonempleadas para referirse a variables que incrementan odecrementan su valor durante la ejecución de unprograma.

Generalmente son de tipo numérico.

Page 13: Estructuras iterativas y ejemplos propuestos

CONTADORES Y ACUMULADORES

Ejemplos:

cont cont + 1

total total + y

a a*2

J J – 1

x 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 y ejemplos propuestos

CARACTERÍSTICAS DE LA VARIABLE CONTADOR O

ACUMULADOR:

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

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

3. Deben ser inicializados adecuadamente, es decir, si laoperación es:

Suma o resta: generalmente se asigna cero, ya que éstees el elemento neutro de ambas operaciones,

Multiplicación: se inicia con 1, si se asignara ceroentonces todo lo que se multiplique con esta variablevaldrá cero. Se debe recordar que el 1 es el elementoneutro de la multiplicación.

Page 15: Estructuras iterativas y ejemplos propuestos

CARACTERÍSTICAS DE LA VARIABLE CONTADOR O

ACUMULADOR:

Es una variable que determina o controla el número deveces que se repite un proceso o bucle. Esta variableincrementa o decrementa su valor en una cantidadconstante cada vez que se realiza una acción en cadarepetición.

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

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

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

Page 16: Estructuras iterativas y ejemplos propuestos

CONTADOR

nom_cont nom_cont + valor_constante

nom_cont nom_cont -valor_constante

Ejemplo:

entero contador 1

contador 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 y ejemplos propuestos

ACUMULADOR O TOTALIZADOR

Es una variable que acumula sobre sí misma un conjuntode valores para de esta forma tener la acumulación deellos en una sola variable. Es una variable que almacenacantidades resultantes de operaciones sucesivas.

Page 18: Estructuras iterativas y ejemplos propuestos

ACUMULADOR O TOTALIZADOR

nom_acumuladornom_acumulador + valor

Ejemplo:

entero acum 0

acum 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 y ejemplos propuestos

CENTINELA

El centinela es una variable que inicia con un valor, luegodentro de un bucle este valor cambia, haciendo falsa lacondición del ciclo y por lo tanto terminando laejecución del mismo (el usuario puede determinarcuándo hacerlo). La repetición controlada por centinelase considera como una repetición indefinida pues sedesconoce el número de repeticiones.

Ejemplo:

Un usuario puede introducir S o N para indicar si deseacontinuar ejecutando un programa. El bucle terminacuando se presiona la letra “n” o “N”. También se puedenmanejar números.

Page 20: Estructuras iterativas y ejemplos propuestos

BANDERA

entero bandera 0

ban 1

int bandera = 0;

ban = 1;

Pseudocódigo Código en C

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

Page 21: Estructuras iterativas y ejemplos propuestos

ESTRUCTURA REPETITIVA MIENTRAS (WHILE)

Cuando se ejecuta la instrucción mientras, se evalúa lacondición (expresión booleana) escrita en los paréntesis, si suresultado es verdadero (1) entonces se realiza el ciclo,posteriormente, esta condición vuele a ser reevaluada y seprocede de la misma manera, este proceso continua hastaque la condición se vuelve falsa (0), dando por terminado elciclo.

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

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

Page 22: Estructuras iterativas y ejemplos propuestos

ESTRUCTURA REPETITIVA MIENTRAS (WHILE)

Condición

V

F

Fig. 2. Diagrama de flujo de la estructura repetitivamientras

Acción

Page 23: Estructuras iterativas y ejemplos propuestos

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 y ejemplos propuestos

CARACTERÍSTICAS:

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

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

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

Page 25: Estructuras iterativas y ejemplos propuestos

EJERCICIOS:

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

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

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

Page 26: Estructuras iterativas y ejemplos propuestos

EJERCICIOS

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

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

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

Page 27: Estructuras iterativas y ejemplos propuestos

ESTRUCTURA REPETITIVA PARA (FOR)

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

Una de sus aplicaciones principales se tiene en losarreglos.

Page 28: Estructuras iterativas y ejemplos propuestos

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 y ejemplos propuestos

PSEUDOCÓDIGO Y CÓDIGO DE LA ESTRUCTURA

REPETITIVA PARA

para (valor_inicial, cond, inc)inicio

instrucción 1instrucción 2…instrucción n

fin

for (valor_inicial; cond; inc){

instrucción 1instrucció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 delbucle.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 y ejemplos propuestos

CARACTERÍSTICAS DE LA ESTRUCTURA REPETITIVA PARA

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

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

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

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

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

Page 31: Estructuras iterativas y ejemplos propuestos

EJERCICIOS:

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

o Elabore un diagrama de flujo, un pseudocódigo y elcorrespondiente programa en C, que calcule lasumatoria de todos los números entre 1 y el 20, eimprima el resultado.

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

Page 32: Estructuras iterativas y ejemplos propuestos

EJERCICIOS:

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

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

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

Page 33: Estructuras iterativas y ejemplos propuestos

ESTRUCTURA REPETITIVA REPITE (DO-WHILE)

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

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

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

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

Page 34: Estructuras iterativas y ejemplos propuestos

ESTRUCTURA REPETITIVA REPITE (DO-WHILE)

Instrucción 1Instrucción 2

Instrucción n

VCondición

F

Page 35: Estructuras iterativas y ejemplos propuestos

CARACTERÍSTICAS DE LA ESTRUCTURA REPITE

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

2. Debe existir una instrucción dentro del ciclo quemodifique la condición, de lo contrario se hará unbucle infinito.

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

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

Page 36: Estructuras iterativas y ejemplos propuestos

EJEMPLOS:

Elabore un diagrama de flujo, un pseudocódigo y elcorrespondiente programa en C, que imprima en la pantallalos primeros 10 números enteros positivos.

Elabore un diagrama de flujo, un pseudocódigo y elcorrespondiente programa en C, que imprima y sume losnúmeros pares entre 1 y 50, imprimir el resultado de lassumatoria.

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

Page 37: Estructuras iterativas y ejemplos propuestos

EJERCICIOS:

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

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

Page 38: Estructuras iterativas y ejemplos propuestos

BIBLIOGRAFÍA

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

2. Cairó Battistuti O. (2006), Fundamentos deProgramació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