Estructuras Repetitivas O Ciclos.docx

  • Uploaded by: Wiliam
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Estructuras Repetitivas O Ciclos.docx as PDF for free.

More details

  • Words: 1,618
  • Pages: 4
Estructuras Repetitivas o Ciclos Los ciclos nos van a permitir iterar todo un proceso tantas veces como nosotros (ó el usuario) lo determinemos. Concepto General Un ciclo puede definirse como una estructura que nos permite repetir o iterar un conjunto de instrucciones y que tiene las siguientes características: a. El conjunto de instrucciones debe ser finito b. La cantidad de veces que se repita dicho conjunto de instrucciones también debe ser finita. c. Deben estar claramente demarcados el inicio y el fin del ciclo. d. Dentro de un ciclo podrá ir cualquiera de las otras estructuras que se han estudiado incluyendo otros ciclos. Vamos a desarrollar un ejemplo sin ciclos para notar la gran utilidad de estructurar nuestros algoritmos con ciclos. Ejemplo: Mostrar los números del 1 al 100 de 1 en 1 Versión Ineficiente No.1 Algoritmo Vers_Inef_1 Inicio Escriba “ 1 “ Escriba “ 2 “ Escriba “ 3 “ Escriba “ 4 “ Escriba “ 5 “ Escriba “ 6 “ Escriba “ 7 “ Escriba “ 8 “ Escriba “ 9 “ Escriba “ 10 “ Escriba “ 11 “ Escriba “ 12“ Escriba “ 13 “ Escriba “ 14 “ Escriba “ 15 “ Escriba “ 16 “ Escriba “ 17 “ . . Escriba “ 98 “ Escriba “ 99 “ Escriba “100“ Fin

Como puede ver en esta versión no se han utilizado variables y los puntos suspensivos representan toda esa cantidad de instrucciones que hacen falta pues en total serían 100 instrucciones “Escriba”. Nuestro algoritmo se convertiría no solo en una cantidad ineficiente de instrucciones sino que además por cada vez que existiera una modificación prácticamente tendría que existir un algoritmo diferente pues tendríamos que adicionarle mas y mas líneas de órdenes. Veamos a continuación otra forma ineficiente de solucionar este mismo problema sin utilizar ciclos. Versión Ineficiente No. 2 Algoritmo Vers_Inef_2 Definir N como Entero Inicio N=1 //Se crea el contador Escriba N Si N<=100 N=N+1 Escriba N Si N<=100 N=N+1 Escriba N Si N<=100 N=N+1 Escriba N Si N<=100 N=N+1 Escriba N Si N<=100 N=N+1 Escriba N Si N<=100

Si Si Si Si

N=N+1 Escriba N<=100 N=N+1 Escriba N<=100 N=N+1 Escriba N<=100 N=N+1 Escriba N<=100 N=N+1 Escriba

N N N N

N . . . . Si N<=100 N=N+1 Escriba N Si N<=100 N=N+1 Escriba N Fin

Como puede ver, tendríamos que escribir 99 veces el esquema: Si N<=100 N=N+1 Escriba N

Lo que si podemos hacer es tomar el esquema repetitivo de esta última versión y escribirlo dentro de un ciclo que controle que se repita dicho esquema hasta cuando se hayan escrito todos los números enteros de 1 a 100 de 1 en 1. Cómo lo haremos...? Pues muy sencillo. Simplemente note que tenemos que decirle al computador que inicie una variable en 1 y que mientras el contenido de esta variable sea menor o igual que 100 que escriba su contenido y que lo incremente en 1. De esta manera el contenido de la variable irá de 1 en 1 desde 1 hasta 100 escribiendo cada vez que cambie de número es decir cumpliendo el objetivo planteado. Mostrar los números del 1 al 100 de 1 en 1 Versión Eficiente con Ciclos Algoritmo Nums_1_100 Definir N como Entero Inicio N = 1 Mientras N < = 100 Escriba N N = N + 1 Fin_mientras FinAlgoritmo

Evidentemente el algoritmo así presentado es mucho mas claro. No se puede negar que tanto ésta solución como las demás soluciones, a pesar de ser ineficientes, también cumplen con el objetivo planteado. a. Es mucho mas fácil de codificar en un determinado Lenguaje de Programación pues es una solución mucho mas compacta b. Es mucho mas entendible y por lo tanto es mucho mas fácil de concebir como solución c. No necesita muchas líneas de código para lograr el objetivo d. Cuando necesiten mostrar los números del 1 al 10000 todo lo que tenemos que hacer es cambiar el número 100 que aparece al inicio del ciclo por el número 10000 y el mismo algoritmo funcionará bien. No tendremos necesidad de adicionar líneas de código. e. Cuando necesiten mostrar los números del 45 al 951 simplemente tendremos que reemplazar la línea que dice N = 1 por N = 45 y en donde aparece el número 100 cambiarlo por el número 951 y el algoritmo logrará bien este nuevo objetivo. f. Finalmente la solución planteado con ciclos al enunciado Mostrar los números del 1 al 100 de 1 en 1 se ha convertido en una solución mucho mas genérica que cambiando los valores tope del mismo ciclo será Mostrar todos los enteros comprendidos entre dos números asumiendo que el primer número es el menor y el segundo es el mayor. Con estas reflexiones podemos justificar plenamente la utilización de ciclos dentro de un algoritmo y, en lo posible, buscar hacer un uso muy eficiente de esta estructura.

Tipos de Ciclos

Solo para facilitar la escritura de algunos algoritmos la mayoría de los lenguajes de programación tienen tres formas de presentación de los ciclos, ellas son: a. Ciclo Mientras b. Ciclo Para c. Ciclo Haga Hasta a.- Ciclo: Mientras (While) Es el esquema general de trabajo para todos los ciclos, esto quiere decir que si usted entiende claramente la lógica de funcionamiento de este ciclo se le va a facilitar entender no solo los otros ciclos que aquí se explican sino cualquier otro ciclo que encuentre en algún otro libro de Lógica de Programación. Su estructura general es la siguiente: Mientras Condición //Mientras se cumpla la condición.. . . Cuerpo del Ciclo //Se ejecutara el proceso del ciclo . . Fin_Mientras

Su forma de ejecución (textualmente explicada) es muy sencilla: Mientras se cumpla que la condición sea Verdadera entonces se ejecutará el Cuerpo del Ciclo. De manera que también podríamos decir que el Cuerpo del Ciclo se repetirá tantas veces como lo permita la condición. En condiciones normales la cantidad de veces que se repita el cuerpo del ciclo será siempre una cantidad finita y deberá existir, dentro del mismo cuerpo del ciclo, una o mas instrucciones que nos permitan aproximarnos a la condición. Esta estructura se ejecuta mientras que la condición es verdadera, en caso contrario terminará el ciclo. Debe existir también un anunciado dentro del ciclo que afecte la condición, para evitar que el ciclo se ejecute indefinidamente. En lenguaje algorítmico de la estructura mientras la expresamos de esta forma: Algoritmo Mientras Condición {PROCESO} Fin_Mientras

Ejemplos en la vida cotidiana encontramos muchos. Por ejemplo, supongamos que tenemos que obtener el total de una serie de gastos, pero no sabemos exactamente cuántos son; o cuando tenemos que sacar el promedio de calificaciones de un examen, pero no sabemos precisamente cuántos alumnos lo aplicaron. Tenemos que sumar las calificaciones e ir contando el número de alumnos, ésto con el fin de poder obtener posteriormente el promedio. El ciclo se repite mientras tengamos calificaciones de alumnos. En la estructura mientras se distinguen dos partes: Ciclo: Conjunto de instrucciones que se ejecutarán repetidamente. Condición de terminación: Permite decidir cuando finalizará la ejecución del ciclo. La condición se evalúa al inicio del mismo. Veamos a continuación el siguiente ejemplo. EJEMPLO 1 Leer por teclado un número que represente una cantidad de números que a su vez se leerán también por teclado. Calcular la suma de todos esos números. algoritmo suma_numeros var entero:N, TOTAL real:numero, SUMA inicio leer(N) {leer numero total N} TOTAL ← N SUMA ← 0 mientras TOTAL > 0 hacer leer(numero) SUMA ← SUMA + numero TOTAL ← TOTAL – 1 fin_mientras escribir('La suma de los', N, 'numeros es', SUMA) fin

En el caso anterior, como la variable TOTAL se va decrementando y su valor inicial era N, cuando tome el valor 0,

significará que se han realizado N iteraciones, o, lo que es igual, se han sumado N números y el bucle se debe parar o terminar. Estructura: Hacer Mientras ("Do - While") Es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces. Por ejemplo cuando necesitamos calcular la nómina total de la empresa, tenemos que sumar los sueldos de los N empleados de la misma. Cuando necesitamos obtener el promedio de calificaciones de un curso, debemos sumar las N calificaciones de los alumnos y dividir esa suma entre N. Es decir, sabemos de antemano cuántas veces tenemos que repetir una determinada operación, acción o tarea. El número de repeticiones no depende de las proposiciones dentro del ciclo. El bucle hacer-mientras es análogo al bucle mientras y el cuerpo del bucle se ejecuta una y otra vez mientras la condición (expresión booleana) sea verdadera. Existe, sin embargo, una gran diferencia y es que el cuerpo del bucle está encerrado entre las palabras reservadas hacer y mientras, de modo que las sentencias de dicho cuerpo se ejecutan, al menos una vez, antes de que se evalúe la expresión booleana. En otras palabras, el cuerpo del bucle siempre se ejecuta, al menos una vez, incluso aunque la expresión booleana sea falsa. Regla El bucle hacer-mientras se termina de ejecutar cuando el valor de la condición es falsa. La elección entre un bucle mientras y un bucle hacer-mientras depende del problema de cómputo a resolver. En la mayoría de los casos, la condición de entrada del bucle mientras es la elección correcta. Por ejemplo, si el bucle se utiliza para recorrer una lista de números (o una lista de cualquier tipo de objetos), la lista puede estar vacía, en cuyo caso las sentencias del bucle nunca se ejecutarán. Si se aplica un bucle hacer-mientras nos conduce a un código de errores. La sintaxis para esta estructura es la siguiente: Hacer {Proceso} Mientras (Condición) {Fin del ciclo}

Related Documents


More Documents from "Lorena Bonvicini"

Tugas Klp 3.docx
December 2019 20
Diagnos 1.docx
April 2020 7
Diagnost 3.docx
April 2020 18
June 2020 10
Unlock-unidad1.pdf
June 2020 17