Repetitivas

Page 1

TEORIA SOBRE ALGORITMOS CON REPETITIVAS

ESTRUCTURAS ALGORITMICAS Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Estructuras Algoritmicas

Secuenciales

- Inicio - Fin - Lectura - Escritura - Asignación

Selectivas

- Simple (si - entonces) - Doble (si – entonces - sino) - Múltiple (en_caso_de/según/dependiendo_de)

Repetitivas

- Para o desde - Mientras_que - Hasta_que

(Nº determinado de iteraciones) (Nº indeterminado de iteraciones) (Nº indeterminado de iteraciones)

Estructuras Repetitivas: Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa). Un bucle, lazo o ciclo está conformado por un grupo de acciones que se repiten cierto numero de veces mientras de acuerdo con el cumplimiento de una condición. La condición se evalúa cada vez que se repite el bucle. A cada repetición del bucle se le llama iteración.


1. Estructura Repetitiva Para o Desde (Ciclos con un Número determinado de

iteraciones)

Esta estructura puede utilizarse cuando el número de iteraciones se conoce antes de ejecutarse el ciclo. Dado que el nº de iteraciones está establecido previamente, no se requiere evaluar ninguna condición para decidir si se sigue repitiendo el bucle o se interrumpen las repeticiones. El control de iteraciones se hace automáticamente mediante una variable que actúa como contador del número de repeticiones. El conteo se inicia asignando a la variable contador un valor inicial pre-fijado; el valor de la variable contador se va aumentando o disminuyendo en cada iteración con el valor fijado como incremento, que puede ser positivo o negativo; finalmente, las repeticiones terminan cuando la variable contador toma el valor final equivalente al total de iteraciones pre-establecidas que deben hacerse. Cuando el incremento es 1 puede dejar de escribirse en la estructura. De esta manera, la ejecución de las acciones se repite a medida que la variable contador va tomando valores entre el valor inicial y el valor final pre-fijados, de acuerdo con el incremento preestablecido. La forma de esta estructura es la siguiente: PARA vc = vi a vf, inc HAGA Acción1 Acción2 . . AcciónN FPARA Donde: vc Variable que controla las iteraciones vi Valor inicial vf Valor final inc Incremento

VC = VI, VF, INC

Acción1 Acción2 . . AcciónN


2. Estructura Repetitiva Mientras_que (Ciclos con un número indeterminado de

iteraciones)

En la estructura Mientras-que se especifíca una condición que se evalúa al comienzo del bucle y de acuerdo con el resultado de esa evaluación se decide ejecutar o no las acciones que conforman el bucle. Cuando termina cada iteración la condición se evalúa de nuevo; la condición debe seguirse cumpliendo para que se sigan ejecutando las acciones del bucle. Cuando la condición deja de cumplirse, entonces se deja de ejecutar el bucle, es decir, cuando la condición se hace falsa. El número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa. La estructura Mientras_que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Su forma es:

MIENTRAS QUE <condición> HAGA Acción1 Acción2 . . AcciónN FMQ

CONDICION CIERTA

Acción1 Acción2 . . AcciónN

FALSA


3. Estructura Repetitiva Hasta_que (Ciclos con un número indeterminado de

iteraciones) Esta estructura repite un grupo de acciones, pero a diferencia del Mientras_que, lo hace hasta que la condición se cumple por primera vez y no mientras que se cumple, como en la estructura Mientras_que. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en la estructura Mientras_que puede ser que nunca llegue a entrar a ejecutar las acciones si la condición no se cumple desde un principio. El bucle se ejecuta primero y luego se evalúa la condición. Si la condición es falsa, el bucle se repite y la condición se vuelve a evaluar; el bucle se termina solo cuando la condición se vuelva verdadera. La forma de la estructura Hasta_que es:

REPETIR Acción1 Acción2 . . AcciónN HASTA QUE <condición>

Acción1 Acción2 . . AcciónN

FALSA

CONDICION CIERTA


EJEMPLOS DE ALGORITMOS UTILIZANDO REPETITIVAS 1.

Sume los 5 primeros números enteros. INICIO suma  0 PARA i = 1, 5 HAGA: suma  suma+i FPARA ESCRIBA “La suma de los 5 primeros números enteros es: ”, suma FIN INICIO suma  0 i1 MQ i ≤ 5 HAGA: suma  suma+i i  i+1 FMQ ESCRIBA “La suma de los 5 primeros números enteros es: ”, suma FIN

2. Calcule el promedio de n numeros. INICIO LEA n suma  0 PARA i = 1, n HAGA: LEA num suma  suma+num ESCRIBA i, “º número leido: ”, num FPARA promedio  suma/n ESCRIBA “El promedio de los números leidos es: ”, promedio FIN INICIO LEA n suma  0 i1 MQ i ≤ n HAGA: LEA num suma  suma+num ESCRIBA i, “º número leido: ”, num i  i+1 FMQ promedio  suma/n ESCRIBA “El promedio de los números leidos es: ”, promedio FIN


3. Lea n números y diga cuántos de ellos son mayores que 50. INICIO LEA n cont  0 PARA i = 1, n HAGA: LEA num SI num › 50 ENTONCES HAGA: cont  cont+1 FSI ESCRIBA i, “º número leido: ”, num FPARA ESCRIBA “La cantidad de números mayores que 50 es: ”, cont FIN INICIO LEA n cont  0 i1 MQ i ≤ n HAGA: LEA num SI num › 50 ENTONCES HAGA: cont  cont+1 FSI ESCRIBA i, “º número leido: ”, num i  i+1 FMQ ESCRIBA “La cantidad de números mayores que 50 es: ”, cont FIN 4. Calcule el factorial de un número. (n!=1*2*3*…*n) INICIO LEA n fact  1 PARA i = 1, n HAGA: fact  fact*i FPARA ESCRIBA “El factorial de “, n, “ es: ”, fact FIN INICIO LEA n fact  1 i1 MQ i ≤ n HAGA: fact  fact*i i  i+1 FMQ ESCRIBA “El factorial de “, n, “ es: ”, fact FIN


5. Lea n números, cuente, sume y promedie todos aquellos que son menores que 25. INICIO LEA n cont  0 suma  0 PARA i = 1, n HAGA: LEA num SI num › 25 ENTONCES HAGA: cont  cont+1 suma  suma+num FSI ESCRIBA i, “º número leido: ”, num FPARA prom  suma/cont ESCRIBA “La cantidad de números menores que 25 es: ”, cont ESCRIBA “La suma de números menores que 25 es: ”, suma ESCRIBA “El promedio de los números menores que 25 es: ”, prom FIN INICIO LEA n cont  0 suma  0 i1 MQ i ≤ n HAGA: LEA num SI num › 25 ENTONCES HAGA: cont  cont+1 suma  suma+num FSI ESCRIBA i, “º número leido: ”, num i  i+1 FMQ prom  suma/cont ESCRIBA “La cantidad de números menores que 25 es: ”, cont ESCRIBA “La suma de números menores que 25 es: ”, suma ESCRIBA “El promedio de los números menores que 25 es: ”, prom FIN 6. Imprima los 10 primeros números enteros positivos impares INICIO PARA i = 1, 20, 2 HAGA: ESCRIBA i FPARA FIN INICIO i1 MQ i ≤ 20 HAGA: ESCRIBA i i  i+2 FMQ FIN


7. Obtenga la sumatoria de los primeros números impares enteros de tal modo que la sumatoria no supere una cantidad n. Diga cuáles y cuántos fueron los números sumados y que resultado dio la sumatoria. INICIO LEA n suma  0 num  1 cont  0 MQ suma ≤ n HAGA: suma  suma+num ESCRIBA “Se sumó el número “, num cont  cont+1 num  num+2 FMQ ESCRIBA “La suma de los primeros “, cont, “ impares enteros, menor o igual a “, n, “ es: ”, suma FIN 8. Haga el conteo de votos pertenecientes a una encuesta realizada, sabiendo que los votos solo tienen dos respuestas posibles: “si” o “no”. El último voto está marcado la palabra “fin” como respuesta. INICIO contsi  0 contno  0 LEA voto MQ voto ≠ “fin” HAGA: SI voto = “si” ENTONCES HAGA: contsi  contsi+1 SINO: contno  contno+1 LEA voto FSI FMQ total  contsi+contno ESCRIBA “Total de votos de la encuesta “, total ESCRIBA “Los votos positivos fueron “, contsi ESCRIBA “Los votos negativos fueron “, conteo FIN 9. De una urna se van sacando números al azar hasta que se extrae un número n que se ha leido previamente al sorteo. Diga cuántos números fueron extraidos de la urna antes del ganador. INICIO LEA n cont  0 LEA num MQ num ≠ n HAGA: cont  cont+1 LEA num FMQ cont  cont-1 ESCRIBA “El número ganador es: “, num ESCRIBA “Total de números extraidos antes del ganador “, cont FIN


10. Se tiene dinero para ir comprando los artículos de una lista ordenada por prioridad en la que aparecen los precios de cada artículo y su nombre. Las compras se deben realizar en estricto orden de prioridad hasta que el dinero se acabe. Diga cuántos y cuáles fueron los artículos comprados y cuánto dinero quedó sin gastar. INICIO LEA dinero ESCRIBA “Dinero disponible para comprar: “, dinero cont  0 MQ dinero › 0 HAGA: LEA artículo, precio dinero  dinero-precio SI dinero ≥ 0 ENTONCES HAGA: ESCRIBA “Se compró el artículo “, artículo cont  cont+1 SINO: dinero  dinero+precio FSI FMQ ESCRIBA “Cantidad de artículos comprados: “, cont ESCRIBA “Dinero sin gastar: “, dinero FIN


EJEMPLOS DE ALGORITMOS UTILIZANDO REPETITIVAS Utilizando los elementos presentados en clase para elaboración de algoritmos con repetitivas, diseñe algoritmos para los casos planteados en cada ejercicio. Tenga en cuenta que la solución presentada en los ejercicios resueltos es apenas una alternativa de solución, usted podría solucionar el problema diseñando un algoritmo diferente al aquí presentado. Le aconsejamos intentar resolver cada ejercicio sin observar la solución presentada y utilizarla solo para aclarar inquietudes o para complementar el aprendizaje. EJERCICIOS RESUELTOS: Repetitiva Para: 1) Leer 10 números y obtener su cubo y su cuarta. INICIO PARA n = 1, 10 LEA num cubo  num * num * num cuarta  cubo * num ESCRIBA cubo, cuarta FPARA FIN

2) Leer 10 números e imprimir solamente los números positivos INICIO PARA n = 1, 10 LEA num SI num > 0 entonces ESCRIBA num FSI FPARA FIN


3) Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto. INICIO LEA num PARA x = 1, 10 resul  num * x ESCRIBA num, “ * “, x, “ = “, resul FPARA FIN

4) Leer 15 números negativos, convertirlos a positivos e imprimir números.

dichos

INICIO PARA x = 1, 15 LEA num pos  num * (-1) ESCRIBA num, pos FPARA FIN

5) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño de Algoritmos INICIO sum  0 LEA nom PARA c = 1, 7 LEA calif sum  sum + calif FPARA prom  sum / 7 ESCRIBA prom FIN


6) Leer 20 números e imprimir cuántos son cuántos neutros.

positivos, cuántos negativos y

INICIO cn  0 cp  0 cneg  0 PARA x = 1, 20 LEA num SI num = 0 entonces cn  cn + 1 SINO: SI num > 0 entonces cp  cp + 1 SINO: cneg  cneg + 1 FSI FSI FPARA ESCRIBA cn, cp, cneg FIN

7) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas INICIO PARA h = 1, 23 PARA m = 1, 59 PARA s = 1, 59 ESCRIBA h, m, s FPARA FPARA FPARA FIN

8) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo. INICIO sum  0 baja  9999 PARA a = 1, 40 LEA calif sum  sum + calif SI calif < baja entonces baja  calif FSI FPARA media  sum / 2 ESCRIBA media, baja FIN


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.