estructuras_repetitivas

8

Click here to load reader

Upload: jonathan-rivera

Post on 03-Jul-2015

302 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 1 Mtro. Juan Miguel Camargo Pulido

PROBLEMAS REPETITIVOS

Se les llama problemas repetitivos a aquellos en cuya solución es necesario utilizar un mismo conjunto

de acciones que puedan ejecutarse más de una vez.

Para solucionar problemas repetitivos recurriremos al uso de ciclos, que nos evitarán escribir muchas

veces un conjunto de acciones.

CONCEPTOS:

Ciclo: es la ejecución de un mismo conjunto de acciones una o más veces. Se compone de: cuerpo del

ciclo y estructura cíclica.

Proceso: Conjunto de acciones a las que se les asigna un nombre.

Cuerpo del ciclo: Proceso que se ejecutará una o más veces.

Estructura cíclica: Conjunto de acciones que permiten que el cuerpo del ciclo se ejecute una o más

veces.

Iteración: Es cada una de las ejecuciones del cuerpo del ciclo

Forma básica de un ciclo en algoritmo y diagrama de flujo es la siguiente:

1. C

2. IR al paso 1

En donde C es el nombre del cuerpo del ciclo, y la estructura cíclica está representada por la flecha, la

cual ayuda a que el cuerpo del ciclo se ejecute varias veces.

Los ciclos se clasifican en:

a) Ciclos con un número determinado de iteraciones

b) Ciclos con un número indeterminado de iteraciones

C

Page 2: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 2 Mtro. Juan Miguel Camargo Pulido

a) CICLOS CON UN NÚMERO DETERMINADO DE ITERACIONES

Son aquellos en que el número de iteraciones es determinable antes de ejecutarse el ciclo. Este número

de iteraciones se puede obtener de la definición del problema, o bien mediante una entrada de datos

cuando el problema indique que un conjunto de acciones se debe efectuar para n ocurrencias.

Problema: Pedir cinco cantidades de la misma unidad.

Resolución secuencial:

Algoritmo: Diagrama de Flujo:

1. PEDIR cant

2. PEDIR cant

3. PEDIR cant

4. PEDIR cant

5. PEDIR cant

Para poder pedir exactamente cinco veces la variable cant necesitaremos ir contado el número de veces

que la vayamos pidiendo. Cuando ya la hayamos pedido cinco veces tendremos que salir del ciclo,

auxiliándonos con un bloque condicional que evalúe si ya hemos ejecutado cinco iteraciones.

A la variable que nos ayuda a contar el número de iteraciones se le llama contador, y se recomienda

utilizar las variables i, j y/o k como contadores.

En este caso, tanto el contador como el bloque condicional formarán parte de la estructura cíclica y la

entrada de datos de la variable cant es el cuerpo del ciclo.

Para pedir la variable cant cinco veces debemos hacer lo siguiente:

Algoritmo

1. INICIO

2. i 1

3. SI I >5 ENTONCES

IR al paso 3

DE OTRA FORMA

PEDIR cant

i i + 1

IR al paso 2

4. FIN

cant

cant

cant

cant

cant

Page 3: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 3 Mtro. Juan Miguel Camargo Pulido

Diagrama de Flujo

La variable i es el contador del número de iteraciones.

La expresión:

i i+1

significa que al valor de la variable i se le suma 1 y el resultado de la suma es reasignado a la variable i,

por lo que esta expresión implica que el valor de la variable i es incrementado en 1.

Como regla general a los ciclos con un número determinado de iteraciones les corresponde un

algoritmo como el siguiente:

1. i 1

2. SI i > n ENTONCES

IR al paso 3

DE OTRA FORMA

C

i i + 1

IR al paso 2

3. X

En donde la variable n es el número de iteraciones que se van a efectuar, y la variable i, es el contador

de iteraciones. C es el cuerpo del ciclo que será ejecutado n veces, y X es el conjunto de acciones que se

ejecutarán cuando se termine con el ciclo.

si

no

INICIO

i 1

i >5

cant

i i + 1

FIN

Page 4: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 4 Mtro. Juan Miguel Camargo Pulido

b) CICLOS CON UN NÚMERO INDETERMINADO DE ITERACIONES

Son aquellos en donde el número de iteraciones permanece indeterminado durante la ejecución del

ciclo, y el proceso repetitivo termina hasta que el usuario lo indique.

En este tipo de ciclos el usuario decide dentro del ciclo cuándo terminar con el proceso repetitivo sin

importar cuántas iteraciones se hayan efectuado, a diferencia de los ciclos anteriores, en donde el

número de iteraciones está determinado desde el principio.

El algoritmo que le corresponde a este tipo de ciclos es el siguiente.

1. C

2. PEDIR mas$

3. SI mas$ = “NO” ENTONCES

IR al paso 4

DE OTRA FORMA

IR al paso 1

4. X

En donde C es el cuerpo del ciclo que será ejecutado un número indeterminado de veces, X es el

conjunto de acciones que suceden al ciclo, y a la variable mas$ el usuario le dará un valor de SI o de NO

dependiendo de si se desea realizar otra iteración o terminar con la ejecución del ciclo.

Diagrama de Flujo:

En donde se podrá observar que el flujo del diagrama sale del ciclo hasta el momento en que la variable

mas$ tome un valor de “NO” y debido a que no se sabe cuándo ocurrirá esto, se le llama ciclo con un

número indeterminado de iteraciones.

si

no

C

mas$

mas$ = “NO”

X

Page 5: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 5 Mtro. Juan Miguel Camargo Pulido

TIPOS DE PROBLEMAS REPETITIVOS

Los ciclos se emplean en los problemas repetitivos y, dependiendo decómo sea necesario usar los ciclos,

se clasifican en :

1. Problemas Repetitivos Simples: aquellos en los que se usa un solo ciclo ya sea con un número

determinado de iteraciones o indeterminado de iteraciones.

2. Problemas Repetitivos Compuestos: aquellos en los que se emplean varios ciclos.

Frecuentemente encontraremos problemas en dondel el cuerpo de un ciclo es otro ciclo. En

este caso estaremos hablando de un ciclo interno que está anidado dentro de un ciclo externo.

PROBLEMA DE EJEMPLO (problemas repetitivos simples con un número

determinado de iteraciones):

Calcular el promedio de calificaciones parciales de cada alumno de un grupo de cinco, sabiendo que

existen tres periodos parciales.

Paso 1.- Definición del problema

Igual a la redacción del problema

Paso 2.-Planeación de la Solución

Dado que para cada alumno se efectuarán las mismas acciones, se pueden determinar que es

necesario utilizar un ciclo. El número de iteraciones es cinco que es el total de alumnos por lo

tato es determinado

Utilizaremos el ciclo determinado en donde la variable n es 5 y en lugar de C sustituiremos por

el proceso ALUMNO

1. i 1

2. SI >5 ENTONCES

IR al paso 3

DE OTRA FORMA

ALUMNO

i i + 1

IR al paso 2

3. X

El proceso ALUMNO, estará compuesto de las siguientes acciones:

Pedir valores de las 3 calificaciones parciales

Aplicar la fórmula:

Promedio = (calificacion1 + calificacion2 + calificacion3)/3

Mostrar resultado obtenido

El proceso X corresponderá a la acción de terminar, ya que no hay acciones posteriores al ciclo.

ENTRADAS:calificación1, calificacion2 y calificacion3 de cada alumno

SALIDAS: promedio de cada alumno

Page 6: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 6 Mtro. Juan Miguel Camargo Pulido

DATOS ADICIONALES: ninguno

SOLUCIÓN: ver algoritmo

VARIABLES:

i contador del número de ciclos

c1 calificación parcial 1

c2 calificación parcial 2

c3 calificación parcial3

p promedio

Paso 3.- Algoritmo

1. i 1

2. SI >5 ENTONCES

IR al paso 3

DE OTRA FORMA

ALUMNO

i i + 1

IR al paso 2

3. FIN

El proceso ALUMNO constará de las siguientes acciones:

1. PEDIR c1, c2, c3

2. p (c1 + c2 +c3)/3

3. MOSTRAR p

4. FINP

Page 7: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 7 Mtro. Juan Miguel Camargo Pulido

Paso 4.- Diagrama de Flujo

INICIO

i 1

i >5

Alumno

i i + 1

FIN

si

no

ALUMNO

C1, c2, c3

p (c1 + c2 + c3)/3

p

FINP

Page 8: Estructuras_Repetitivas

Licenciaturas Ejecutivas - LX

Tópicos Selectos de Algorítmica 8 Mtro. Juan Miguel Camargo Pulido

Aplicando los primeros cuatro pasos de la “Metodología para la solución de problemas por

computadora”, resuelva los siguientes:

PROBLEMAS PROPUESTOS. (problemas repetitivos simples con un número

determinado de iteraciones)

1. La presión, volumen y temperatura de una masa de aire se relacionan por la fórmula.

Calcular el promedio de masas de aire de los neumáticos de n vehículos que están en compostura

en un servicio de alineación y balanceo. Los vehículos pueden ser motocicletas o automóviles.

2. Al cerrar un expendio de naranjas, 15 clientes que aún no han pagado recibirán un 15% de

descuento si compran más de 10 kilos. Determinar cuánto pagará cada cliente y cuánto percibirá la

tienda por esas compras.

3. Determinar la cantidad semanal de dinero que recibirá cada uno de los n obreros de una empresa.

Se sabe que cuando las horas que trabajó un obrero exceden de 40, el resto se convierte en horas

extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras

exceden de 8 se pagan las primeras 8 horas al doble de lo que se paga por una hora normal y el

resto al triple.

4. Modificar el problema propuesto 3 para que se determine el total de dinero que la empresa tendrá

que pagar por concepto de pago de salarios a los n empleados que laboran en ella.

5. En una granja se requiere saber alguna información para determinar el precio de venta por cada kilo

de huevo. Es importante determinar el promedio de calidad de las n gallinas que hay en la granja.

La calidad de cada gallina se obtiene según la fórmula:

Finalmente para fijar el precio del kilo de huevo, se toma como base el siguiente cuadro:

Promedio total de calidad Precio del kilo de huevo

mayor o igual que 15 1.2 * promedio de calidad

mayor que 8 y menor que 15 1.00 * promedio de calidad

menor o igual que 8 0.8 * promedio de calidad