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
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
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.
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