Respuestas
Respuesta:
Estructuras de Control Iterativas
En la vida diaria existen situaciones que frecuentemente se resuelven realizando una determinada secuencia de pasos que puede repetirse muchas veces, ejemplo:
El proceso que seguimos para comer, mientras no se termine la comida.
El proceso de insertar monedas, hasta que se abone la cantidad necesaria.
Las operaciones que realizamos para llamar por teléfono, mientras no se logre la comunicación.
Como se puede observar estos son algoritmos que se hacen cotidianamente, pero tienen la particularidad de que la ejecución de alguno de sus pasos puede repetirse muchas veces, mientras no se logre la meta trazada. A este tipo de algoritmo se le conoce como algoritmos iterativos o repetitivos. En C#, las instrucciones while, do/while, y for, permiten ejecutar iteraciones, bucles o ciclos. En cada caso se ejecuta un bloque de instrucciones mientras la condición que se evalúa tome valor verdadero. Se resalta que cualquiera de las 3 instrucciones cumple con el mismo objetivo que es el de ejecutar una secuencia de pasos, más de una vez.
La instrucción while
La semántica de la instrucción es la siguiente:
<condición>. Está representada por una expresión booleana y mientras se cumpla se ejecutará el ciclo.
[Bloque de Instrucciones] El bloque de instrucciones puede estar formado por una o varias instrucciones y es el conjunto de pasos que se van ejecutar en cada iteración del ciclo.
Para una mayor comprensión se muestra su representación en un diagrama de actividad.
Esta estructura de control permite repetir o iterar el [Bloque de Instrucciones] mientras la condición sea verdadera o dicho de otra manera, estas iteraciones terminarán cuando la condición sea falsa y entonces se podrá ejecutar la siguiente instrucción después del while.
La instrucción do/while
La estructura de control do/while es otra sentencia de iteración en la que la condición se evalúa por primera vez una vez que se haya ejecutado el [Bloque de Instrucciones] y tienen la siguiente sintaxis:
Su semántica es la misma que la de la instrucción while y su representación en un diagrama de actividad es la siguiente:
La semántica de la instrucción es la siguiente:
<instrucciones 1>. Se ejecutará una sola vez al inicio del ciclo, generalmente se realizan inicializaciones y declaraciones de variables puesto que como se dijo con anterioridad, esta solo se ejecuta una vez. En caso de que se quiera realizar o ejecutar más de una instrucción en este momento, dichas instrucciones se deben separar por comas (“,”).
<instrucciones 2>. Es ejecutado siempre en cada ciclo al terminar de ejecutar todas las instrucciones que pertenecen al bucle for en cuestión. Por lo general puede contener alguna actualización para las variables de control. Análogamente a <instrucciones 1> en caso de querer ejecutar en este momento más de una instrucción se deben separar por comas.
Caso de Estudio
Para mejor entendimiento de lo expuesto anteriormente, se presenta el siguiente caso de estudio en que se trabajará con cada una de las estructuras repetitivas.
MCD()
Para implementar la responsabilidad de la clase de calcular el Máximo Común Divisor MCD se utilizará el algoritmo de Euclides que consiste en:
P1: Si los números son iguales, tomar el primer número como respuesta y concluir la ejecución del algoritmo, en otro caso pasar al paso 2.
P2: Determinar cuál de los dos números es mayor.
P3: Sustituir el número mayor por la diferencia entre los números mayor y menor.
P4: Pasar al paso 1.
CantDigitos()
Para determinar la cantidad de dígitos que tiene el número, primeramente se divide el número entre 10, si el cociente de la división es 0, se toma 1 como respuesta, sino, se toma dicho cociente y se divide entre 10, este proceso se estará repitiendo mientras el nuevo cociente sea distinto de 0. Como se observa, al menos se necesita realizar una división, por lo que la estructura do/while es la indicada para implementar este algoritmo. Para implementar el método hay que tener en cuenta lo siguiente:
P1: Se realiza la división del número entre 10.
P2: Se almacena el cociente en una variable y se cuenta que número de división es.
P3: Si el resultado del cociente es distinto de 0, se repite el paso 1.
El método quedaría de la siguiente manera:
Factorial()
Para implementar la última responsabilidad propuesta, Calcular el Factorial, utilizaremos la estructura de control for, ya que se conoce de antemano la cantidad de operaciones (multiplicaciones) que hay que realizar. Recuerde que el factorial de un número es el resultado de la multiplicación desde 1 hasta el número en cuestión.
Ejemplo: Factorial de 5 es: 1 * 2 * 3 * 4 * 5 = 120
El método quedaría de la siguiente manera.
Explicación: