Investigación de Ciclos

Hola estimado lector!

El día de hoy te traigo una compilación en co-autoría con Enrique Gutiérrez. Ambos trabajamos en el siguiente texto para la materia de Desarrollo Humano, y me gustaría compartirlo para que les sea útil a quién tenga algo de interés en aprender a programar, o bien a quién necesita saber más de los ciclos, por si algo no quedó tan claro. El texto es una monografía y está diseñado con ayuda de referencias bibliográficas oficiales, no dudes en revisarlas. Saludos
Resultado de imagen para loops in c#

Los ciclos en el lenguaje de programación C#.
Por: Emilio Sánchez García y Enrique Gutiérrez Márquez.

Hablar de ciclos, es sin duda, hablar de programación. El fundamento de toda la programación, sin importar a que nivel, son instrucciones que se repiten un determinado número de veces y de cierta forma indicada. Dichas iteraciones se apoyarán de un condicional para estar completos y tener un objetivo definido. Podemos afirmar, que bastaría con un bucle “for” (descrito más adelante) y una condicional “if”, para programar cualquier código sencillo y funcional. Que, en realidad, esa sencillez sólo estará en términos de su longitud, porque en la realidad el algoritmo que representa, así como sus aplicaciones, pueden ser muy extensas y variadas.
En la actualidad existen un sinfín de lenguajes distintos que podríamos abordar para hablar acerca de los ciclos, ya que no se puede concebir lenguaje alguno carente de ciclos entre sus definiciones. Sin embargo, nos acotamos a los ciclos utilizados en el lenguaje de programación C#.
Un ciclo en C# no es más que una sentencia que establece un número determinado de iteraciones para un bloque de código dado. Sería entonces una repetición de declaraciones que genera cierta automatización en los cálculos.
Existen distintos ciclos en C#. Por ejemplo: el for, el while, do while, y el foreach; cada uno consta de una declaración única (la forma en la que se escribe), así como una forma de operar y una estructura diferente. Si bien es cierto que podemos adaptar o traducir cualquiera de estos entre ellos mismos; haciendo una especie de trabajo de traductor de código (exceptuando el foreach). Es de vital importancia conocerlos todos, denotar sus estructuras particulares, diferencias de sintaxis y funcionamiento. Así tener una comprensión más clara y notar el alcance que tienen los mismos, para utilizarlos de manera más habitual, hasta que no se pueda entender ninguna comunicación humano máquina sin ellos. Ya sea para un programador experto o para un novato en la programación, entender los ciclos es entender la programación. No se requiere más que algo de atención para su comprensión y cuidado en su uso para entender su precedencia y su destino en la programación de C#.
Se presentan a continuación los cuatro ciclos mencionados anteriormente, así como un ejemplo práctico de cómo declararlos para utilizarlos y en algunos casos la mención de ciertas peculiaridades importantes, o situaciones que los hacen únicos.
Al hablar de ciclos es importante destacar su significado, y es que los ciclos, o también llamados bucles, son una serie de estados o acciones que suceden dentro de un cierto ambiente. En este caso, nuestro programa C#. Los ciclos suceden en el mismo orden hasta llegar a una fase o estado (condición) los cuales se repiten en el mismo orden.
Los ciclos; while, for, do while, foreach, presentados se desempeñan en esta ocasión en el lenguaje de programación C#, estos funcionan de manera muy parecida, aunque tienen se destacan algunas diferencias.
En caso el ciclo “while” funciona básicamente siempre y cuando exista una condición y esta se cumpla seguirá el recorrido del programa. El condicional se evalúa antes de realizar el ciclo.
La forma correcta de declarar este ciclo sería la siguiente:
while (condición)
{
    //sentencias a ejecutar
}
El bucle “for” es muy parecida con el ciclo “while”, pues este se ejecutará hasta que la condición sea verdadera, mientras que while se ejecuta mientras, que la condición es verdadera, por eso su nombre while en inglés, que significa mientras en español. El for lo hace durante. Llevará entonces la siguiente estructura. Inicalizador/Condicionante/Iterador. El inicializador es se usa en función de un contador al que le indicaremos donde debe empezar a contar. La condición, de ser verdad le da permiso al programa de acceder a el ciclo para repetirlo. Mientras que el iterador indicará la cantidad de unidades a sumar al contador, cada que realiza el ciclo el iterador es incrementado, en la cantidad de unidades declaradas.
Segun Nakov (2013) un ejemplo práctico sería primero crear e inicializar las variables “num” y “sum” con el valor de 1. En “núm” mantenemos el número actual, que sumamos a la suma de los números anteriores. Para finalmente sumar e iterar el numero de veces deseadas.
num mantenemos el número actual, que sumamos a la suma de los números anteriores.
for (initializer; condition; iterator)
{
   //sentencias a ejecutar
}
En el caso de “do while” es una variable del ciclo “while” que fue explicada antes, la diferencia con este es que se ejecutará por lo menos una vez al inicio, en cuanto a la diferencia se refiere a que este se ejecuta solamente si se cumple la condición, en “do while” esto no pasa, ya que independientemente de que, si la condición es verdadera o falsa, este se ejecutará una vez.
“En el bucle while, en primer lugar se calcula la expresión booleana y, si es verdadera, se ejecuta la secuencia de operaciones en el cuerpo del bucle.” (Kolev, 2012, pág 212).
do
{   
//sentencias del bucle
}
while (condición)
En caso de foreach, este repetirá un grupo de instrucciones al igual que los demás ciclos, para cada elemento de una matriz. Este ciclo se seguirá ejecutando una vez que se recorran todos los elementos en una matriz. Este ciclo termina usando un “break” o “return”.
Por ejemplo:
var fibNumbers = new List<int> { 0, 1, 1, 2, 3, 5, 8, 13 };
int count = 0;
foreach (int element in fibNumbers)
{
 count++; Console.WriteLine($"Element #{count}: {element}");
}
 Console.WriteLine($"Number of elements: {count}");
En programación, los ciclos representan un papel muy importante a la hora que un informático desempeña su labor a la hora de programar en C# ya que permiten repetir ciertas secciones de código de manera finita o infinita para realizar operaciones de forma iterativa de acuerdo con la instrucción inicial.
Esto por la reducción de tiempo a lo hora de escribir muchas líneas de código que se podrían reducir de una manera bastante notable ya que agiliza el trabajo del programador al realizar estos ciclos que al final terminan haciendo lo mismo que numerosas líneas haciendo el programa más eficaz.
“Las instrucciones de iteración ejecutan instrucciones incrustadas varias veces. La instrucción asociada con la instrucción de iteración controla el número de veces que se ejecuta una instrucción incrustada.” (Ferguson, 2003, pág. 37).
De esto se puede inferir la lógica que tienen estos ciclos, ya que los iteradores permiten mantener la simplicidad de un bucle cuando se necesita utilizar código complejo para rellenar una secuencia de la lista.
Según Archer (2001) las instrucciones while, do/while, for y foreach nos permiten ejecutar iteraciones y bucles, todo esto demostrado en la explicación a cerca de los ciclos anteriormente.
Los ciclos son de vital importancia en la programación en C#, ya que permiten repetir ciertas secciones de código de manera finita o infinita para realizar operaciones de forma iterativa de acuerdo con la instrucción inicial. Conocer la existencia de los ciclos no sólo nos permite utilizarlos correctamente si no que rompe las barreras y paradigmas que se tienen en torno a la programación. Utilizar un ciclo puede ayudar, a facilitar muchísimo una tarea, ahorrar tiempo, recursos y desgaste. Exige a cambio un profundo análisis para hacer una selección correcta de bucle para determinado caso particular. Hay ocasiones que nos puede ser mucho más útil un tipo de ciclo que otro, pero siempre dependerá del tipo de aplicación. Ahora ya se cuenta con un enfoque mucho más claro. Se pueden diferenciar a simple vista, de forma declarativa, sintáctica y por su puesto de manera funcional. Otra de las ventajas de tener dominio sobre los ciclos es que, como ya se mencionó anteriormente, no existe lenguaje de programación que prescinda de ellos, al contrario, son el pilar fundamental en la gramática de los códigos computacionales. Una de las desventajas al utilizar códigos bucle en la programación, es que de no ser utilizados correctamente pueden llegar a corromper la funcionalidad de un programa, se requiere de particular atención en las declaraciones para saber exactamente la cantidad de veces que se repetirá cierto ciclo, porque de no utilizarlo con precaución podría estar guiando nuestros resultados hacia un lugar equivocado, simplemente con una iteración más o una iteración menos, pero entregando en ambos casos resultados, a diferencia de otros elementos en la programación orientada a objetos, en la que de declarar mal un elemento no pasará si quiera de la compilación, en este caso se compilaría y estaría entregando de manera corriente y consistente resultados diferentes al esperado. También es importante conocer sus desventajas, por lo que su capacidad no se ponga en juego, claramente tienen muchas más particularidades positivas que negativas, y deben de utilizarse correctamente por todos los programadores.

Bibliografía y Referencias Electrónicas

1. Archer, T. (2001). C# a fondo. España. McGraw-Hill/Interamericana.
2. Ferguson, J et al (2017). La biblia de C#, Madrid. Anaya Multimedia.
3. Microsoft. (2008, Enero 01). Iteradores (C# y Visual Basic). Recuperado Octubre 20, 2018, de https://msdn.microsoft.com/es-es/library/dscyy5s0(v=vs.120).aspx#BKMK_UseOfIterators.
3. Microsoft. (2008, Marzo 12). “Especificación del lenguaje C#” Recuperado Octubre 20, 2018, de https://msdn.microsoft.com/es-es/library/dscyy5s0(v=vs.120).aspx#BKMK_UseOfIterators.
4. Microsoft. (2016, Julio 8). “For C# Reference” Recuperado Octubre 20, 2018, de https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/for.
5. Net(2015) “Ciclos”. Recuperado Octubre 20, 2018, de: https://sites.google.com/site/programacionnetc/ciclos.
6. Nakov (2013) “Los fundamentos de la programación en C#”. Editorial Sofia. UK. 2013.

Comentarios

  1. Vale, gracias por poner entre paréntesis lo que hace cada uno de los ciclos, que no sabía muy bien que digamos que hacía el do while y el while, de hecho solamente uso for porque era el que se me hacía más sencillo y así hacer los programas sin "agotarme", pero ahora tengo una idea de como usar los otros ciclos y puedo intentar usar los demás ciclos, aunque eso si, será un poquito difícil mientras me acostumbro, pero creo que puedo hacerlo, me hubiese gustado que hubieras puesto más ejemplos, como además de decir que hace el ciclo y que es lo que hace cada parte del ciclo hubieras puesto también un ejemplo justo a lado de eso, bueno, ara que hubiera quedado mucho mejor el tema, mientras que el for each parece algo complicado, veo que hay un arreglo, creo, pero la parte de return o break me deja en suspenso y es que no lo veo en el ejemplo, bueno, al menos no lo identifico, pero su información esta bien, lo sacaron de muchas fuentes que me imagino son confiables, ustedes lo son, creo, espero que sigan poniendo post como este pero que tengan su debidas mejoras, bueno, así como está es bueno, que buena colaboración :thumbup ;)

    ResponderBorrar

Publicar un comentario