miércoles, 18 de mayo de 2016

Estructura, sintaxis y uso de un ciclo Do-While en C++

Los ciclos do-while son una estructura de control cíclica, los cuales permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso no tener un valor, hasta aquí son similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir una ventaja adicional, esta consiste en dar la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la condición, por esta situación los ciclos do-while, son más efectivos para algunas situaciones.


¿Cómo funciona un Ciclo Do-While?


Para comprender mejor el funcionamiento del ciclo do-while, imaginemos que queremos pedirle a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100. Esto se puede hacer por medio de un ciclo do-while, estamos en la situación de no tener idea de cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, pues es algo indeterminado para nosotros, sin embargo el do-while nos permite ejecutar cierta acción de forma infinita hasta que se cumpla alguna condición específica, en nuestro caso sería que el numero ingresado sea mayor a 100. De modo que si el usuario nos ingresa de manera sucesiva los siguientes numero 1,50,99, 49, 21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números es mayor que 100, sin embargo si nos ingresara el numero 300, el programa finalizaría inmediatamente.

Sintaxis del Ciclo Do-While:


La sintaxis de un ciclo do-while, de hecho con tan solo tener definida la condición de finalización tendremos prácticamente todo terminado.




Línea 1:

En esta línea la expresión no evalúa ninguna condición, simplemente da paso directo al bloque de instrucción y luego permite la evaluación de la condición.

Línea 2:

Llave abriendo "{" lo cual como sabemos indica que allí comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará dentro de nuestro ciclo la primera línea inmediatamente posterior a la instrucción do, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves. En lo personal, es preferible poner siempre las llaves sin importar cuantas líneas se vayan a ejecutar, es una buena práctica de programación.

Línea 3 a 7:

Aquí estarán todas las operaciones que llevaremos a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias.

Línea 8:

En esta línea se encuentra la llave cerrando "}", la cual indica el final del bloque de instrucciones ya debemos saber esta nos indica que allí termina el bloque de instrucciones que se ejecutarán de manera cíclica y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

Línea 9:

Se encuentra do-while, tiene la misma importancia y función que la linea 1, cabe resaltar que simplemente evalúa la condición y define si se cumple o no para seguir con la ejecución del ciclo o con la del resto del algoritmo, de este modo podemos ver que el ciclo while y el do-while son muy similares, con la pequeña diferencia en que en uno se evalúa la condición desde el principio y en la otra al final de cada ciclo.


Ejemplos de Ciclo Do-While en C++

Ejemplo 1: Pedir números por pantalla hasta que alguno sea mayor a 100
Vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores, vamos a ver cómo hacer lo mismo con dos tipos de ciclos diferentes (el while y el do-while), sin embargo vamos a ver como con uno es más eficiente que con el otro:

Solución Ejemplo 1:

Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir para que el ciclo este pidiendo el numero contantemente, el ciclo se va a detener solo cuando el numero ingresado sea mayor que 100, así que la condición para que se siga ejecutando es que el numero sea menor a 100, ¿Comprender la lógica?, es simple si para que se detenga el numero debe ser mayor a 100, entonces para seguirse ejecutando el numero debe ser menor o igual a 100, veámoslo entonces.



Estructura, sintaxis y uso de un ciclo While en C++

Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso en ocasiones sin siquiera conocer cuándo se va a dar el valor final que esperamos, los ciclos while, no dependen directamente de valores numéricos, sino de valores booleanos, es decir que su ejecución depende del valor de verdad de una condición dada, esto es que sea verdadero o falso únicamente. De este modo los ciclos while, son mucho más efectivos para condiciones indeterminadas, ósea que no conocemos cuando se van a dar a diferencia de los ciclos for, con los cuales se debe tener claro un principio, un final y un tamaño de paso.

¿Cómo funciona un Ciclo While?


Ejemplo imaginemos que por algún motivo deseamos pedir al usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100. Por lo tanto no podríamos utilizar un ciclo for, pues no tenemos idea de cuándo al usuario se le va a ingresar un número mayor que 100, por lo que es algo indeterminado para nosotros, sin embargo el ciclo while nos permite ejecutar una acción de forma infinita hasta que se cumpla la condición específica, en este ejemplo el caso sería que el número ingresado sea mayor a 100. Por ejemplo el usuario ingresara los números 1, 50, 99, 49, 21, 30, 100, nuestro programa no finalizara, puesto ninguno de estos números es mayor que 100, sin embargo si ingresara el número 300, el programa finalizaría de manera inmediata.

Sintaxis del Ciclo While en C++:


Esta sintaxis es más simple y "legible" que la del ciclo for en C++, pues simplemente requerimos tener una condición clara para que el programa se detenga. En realidad, en la mayoría de los lenguajes de alto nivel la forma en que se escribe un ciclo while es muy similar, así que con tan solo tener clara la condición de finalización para el ciclo se tendrá prácticamente todo hecho.



Veamos línea por línea del código para comprender todo y que quede más claro.

Línea 1:

En esta línea está la parte esencial del ciclo while. La sintaxis es muy simple. Tenemos al interior de los paréntesis una condición cualquiera, es decir por ejemplo "==. >, <, >=, <=, !=" o algunas otras condiciones que se nos puedan ocurrir, esta condición que especifiquemos, es la que permitirá que el ciclo se siga ejecutando hasta que en algún momento en que la condición deje de cumplirse, de esta forma si estamos verificando que un número cualquiera = 100, el ciclo se ejecutara, en cuanto su valor cambie a cualquier otro el ciclo while finalizara y continuara con el resto de la ejecución del programa. De esta forma, es evidente que la condición que allí ingresemos siempre deberá tomar un valor booleano (true o false).

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí inicia el bloque de instrucciones que se ejecutaran cada vez que repita el ciclo. Esta llave no es del todo obligatoria, sin embargo en caso de no ponerla solo se ejecutara la primera línea inmediata posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas de nuestro ciclo, se debe usar las llaves.

Línea 3 a 7:

En estas líneas deben estar todas las operaciones que deseamos llevar a cabo de manera repetitiva, en este bloque se podrá tener la cantidad de líneas necesarias e incluso podría haber uno o más ciclos, de manera que podría tener todo un programa dentro de un ciclo.

Línea 8:

En esta línea hacemos uso de la llave cerrando "}", esta indica que allí termina el bloque del ciclo y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.


Ejemplos de Ciclo While en C++



Pedir números por pantalla hasta que alguno sea mayor a 100 vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el usuario ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores.

Solución



Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir para que el ciclo este pidiendo el numero contantemente, el ciclo se va a detener solo cuando el numero ingresado sea mayor que 100, así que la condición para que se siga ejecutando es que el número sea menor a 100, ¿Comprender la lógica?, es simple si para que se detenga el numero debe ser mayor a 100, entonces para seguirse ejecutando el numero debe ser menor o igual a 100, veámoslo entonces



lunes, 9 de mayo de 2016

Estructura, sintaxis y uso de un ciclo for en C++

Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o simplemente estructuras cíclicas, estos ciclos, nos permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada iteración del ciclo.

Es decir un ciclo for es una estructura de control iterativa, que nos permite ejecutar de manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un tamaño de paso y un valor final para el ciclo.


¿Cómo funciona un Ciclo For?


Para comprender mejor el funcionamiento del ciclo for, pongamos un ejemplo, supongamos que queremos mostrar los números pares entre el 50 y el 100, si imaginamos un poco como seria esto, podremos darnos cuenta que nuestro ciclo deberá mostrar una serie de números como la siguiente: 50 52 54 56 58 60 ... 96 98 100. Como podemos verificar, tenemos entonces los componentes necesarios para nuestro ciclo for, tenemos un valor inicial que sería el 50, tenemos también un valor final que sería el 100 y tenemos un tamaño de paso que es 2 (los números pares).

Sintaxis del Ciclo For en C++:

La sintaxis de un ciclo for es simple en C++, de hecho, con tan solo tener bien claros los 3 componentes del ciclo for (inicio, final y tamaño de paso) tenemos prácticamente todo hecho.


Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo for. La sintaxis es simple, tenemos una variable de control llamada i que es tipo entero (int), es importante mencionar que la variable se puede llamar como nosotros deseemos y puede ser del tipo de queramos también. Esta variable "i" se le asigna un valor inicial que puede ser cualquier número correspondiente al tipo de dato asignado. Posteriormente lo que haremos será especificar hasta donde irá nuestro ciclo por medio del valor final, ten en cuenta que cada uno de estos componentes es separado por un punto y coma ";", también es importante saber que la condición final puede ser cualquier número mayor o menor que la condición inicial. Finalmente el último componente de la primera línea es el tamaño del incremento o decremento, este componente se especifica aumentando o disminuyendo en la cantidad deseada la variable.

Línea 2:

Tenemos una llave abriendo "{" indica que allí comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "paso". Esta llave no es obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves.

Línea 3 a 7:

En estas líneas estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", esta nos indica que allí termina el bloque del ciclo for y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

Ejemplo 1: Mostrar en pantalla los números pares

Es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien lo anterior:

Solución Ejemplo 1:

Tenemos entonces que el valor inicial para nuestro ciclo es el número 50 y el valor final es el 100, además, dado que necesitamos los números pares vamos a ir de dos en dos, así que el tamaño del paso va a ser 2, teniendo estos 3 componentes identificados:




El código funcional completo sería el siguiente:




Ejemplo 2: Cuenta regresiva en un ciclo for


En el ciclo for también puede iterar disminuyendo el valor del contador, lo que haremos será imprimir por pantalla una cuenta regresiva desde el número diez hasta el cero.


Solución Ejemplo 2:


Para este caso, debido a que queremos ir de un número mayor a uno más pequeño, en este ejemplo el valor inicial será 10 y el valor final será cero. Adicional, el tamaño de paso será de 1 negativo, es decir, -1, así:



El código funcional completo sería el siguiente:



Este código del ejemplo dos imprimirá por pantalla la serie numérica 10, 9, 8, 7, 6, 5, 4, 3, 2, 1


Ejemplo 3: Contador con un ciclo for


El ejemplo consiste en contar al interior de un ciclo for, cuántos números entre el 0 y el 10,000 son múltiplos del 13. Para ello haremos uso del operador % (modulo) que obtiene el residuo de una división y también usaremos un pequeño condicional para verificar que el modulo sea cero al dividir por 13.

Solución Ejemplo 3

Para este caso el valor inicial será 0 y el valor final será 10,000. Adicional al tamaño de paso será de 1. Al interior del ciclo, en cada iteración verificaremos si el número en el que estamos es divisible por trece o no y en caso afirmativo aumentaremos el contador en una unidad así:



El código funcional completo sería el siguiente:


Este ciclo for nos permitirá saber que existen 770 múltiplos del 13 en los números del 0 al 10000.