jueves, 12 de septiembre de 2019

Qué es el Ciclo While

¿Qué es un ciclo while?
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 a veces sin siquiera conocer cuando 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 su ejecución depende del valor de verdad de una condición dada, verdadera o falso, nada más. De este modo los ciclos while, son mucho más efectivos para condiciones indeterminadas, 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. Los ciclos while es otra forma de hacer repeticiones de condiciones permitiéndonos ejecutarla de manera repetitiva sin tener un valor inicial o final ya que este no depende de valores numéricos y mas bien depende de condiciones otorgadas de verdadero o falso y por este motivo son diferentes y más efectivos a diferencia de los ciclos for.
La sentencia o grupo de sentencias que se repite en un bloque se denomina cuerpo del ciclo y cada repetición del cuerpo del ciclo se llama iteración del ciclo.


¿Cómo funciona un ciclo while?
Necesitamos comprender que en un ciclo while se utiliza cuando queremos o necesitamos repetir una sentencia un numero indefinido de veces, Para comprender mejor el funcionamiento del ciclo while, pongamos un buen ejemplo, imaginemos que por algún motivo, 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. Como vemos, aquí no podríamos utilizar un ciclo for, pues no tenemos ni idea de cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, es algo indeterminado para nosotros, sin embargo el ciclo while nos permite ejecutar una acción de forma infinita hasta que se cumpla alguna condición especifica, 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.

Veremos unos ejemplos de sintaxis en el ciclo while:
Sintaxis
while ( condición )
sentencia;

• Si se requiere realizar más de una sentencia se deben utilizar llaves.

while ( condición )
{
bloque de sentencias;

}Aquí se ejecuta el (los) sentencia (s) mientras la condición es verdadera; al momento de ser falsa termina el ciclo. Si la condición es falsa la primera vez nunca se ejecuta(n) el (las) sentencia(s).

Ejemplos: 

Ejemplo 1: Programa que pide 10 números y calcula y muestra la suma de todos los que fueron pares.

#include <iostream.h>
int suma=0, cont= 10, num;
int main()
{
while (cont > 0)
{
cout << "Dame el numero " << endl;
cin >> num;
if (num % 2 == 0 ) // verificamos que sea un número par
suma += num; // recordemos que suma+= num es equivalente a suma = suma + num (ver modulo1 sección 3)

cont--;
}
cout << "La suma de los numeros pares proporcionados es " << suma << endl;
return 0;

}

Ejemplo 2: Obtener el promedio de calificaciones de un grupo de 20 estudiantes

#include <iostream.h>
int total, contador, calif;
double promedio;
int main()
{
total = 0;
contador = 1;
while (contador <= 20 )
{
cout<<" Dame la calificacion "<<endl;
cin >> calif;
total = total + calif;
contador ++;
}
promedio = total / 20.0;
cout<<"El promedio es "<< promedio<<endl;
return 0;
}





Como se usa el ciclo While




Indicamos una condición que se ejecutara hasta que la condición sea falsa, es importante que la variable que este en la condición, varíe para que no se produzca un bucle infinito. Su sintaxis es:


Aquí les dare una breve explicación de como usar el ciclo While que al igual que el Ciclo FOR da una vuelta en busca de valores y cosas a realizar no se si me explique bien bueno el caso es que quiero que entiendan de que el ciclo While realiza la misma función que el ciclo FOR pero con algunas diferencias de entrada del código, en este caso las variables se deben de declarar primero y despues se pone lo que se quiera realizar. Bueno muestro una sintaxis de este ciclo:

 
[variables] 
while([condición])
{
[sentencias]
[incremento]
}


Partes

variables
Obligatorio. En este caso colocaremos todas las variables que usaremos en el ciclo while.
Ejemplo: [int i = 0].
condición
Obligatorio. En esta parte colocaremos la condición que necesitamos.
Ejemplo: [while (i<=10)].
sentencias
Opcional. Aquí pondremos lo que queremos que se realice al comenzar el ciclo.
Ejemplo: [mandar mensaje por pantalla]
incremento
Opcional. En esta parte colocaremos el incremento del ciclo como lo que hicimos con el ciclo FOR.
Ejemplo: [i++].


Ahora el ejemplo será el de agregar de 1 unidad en 1 unidad hasta llegar a 10 pero en cada incremento que mande un mensaje por pantalla indicando el progreso.
Bueno una vez que tengamos abierto nuestro Visual Studio haremos los siguiente que se explicará paso a paso:


1.- Crear el proyecto llamado CICLO WHILE CSHARP.
2.- Insertar un control del tipo botón.





3.- Dar doble clic sobre el botón.
Una vez que ya le hayamos dado doble clic se nos abrirá el modo código y se nos aparecerá esto:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CICLO_WHILE_CSHARP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
        }
    }
}


4.- Una vez que tengamos esto seguramente se nos colocará el Focus del mouse en el area indicada pero bueno si no es así buscan este código dentro de todo el anterior que mayormente esta hasta el final:


private void button1_Click(object sender, EventArgs e)

Uso ciclo While

5.- Una vez de que ya hayamos encontrado estas lineas de código procederemos a crear el ciclo con el siguiente código en el cual estaré explicando con comentarios para que sirve cada parte de dicho código así que pongan atención para que no se pierdan:


int x = 0; //declaramos las variables que vamos a usar en este tutorial
    while (x<=10)/*comenzamos a crear el ciclo while de esta forma como dije
         antes el ciclo while comienza con las palabras while y seguida
         de unos parentesis en los cuales asignamos la condición a realizar  */
     {      //abrimos las llaves  para indicar que dentro de ellas irán las         sentencias que usaremos

      MessageBox.Show("X es igual a : " + x);
      /*Aqui ya estamos en la sentencia en donde decimos que mande un mensaje por pantalla

        diciendo "X es igual a : "  y le decimos que imprimaa un lado el valor de X que
        se encuentre en estos momentos */
      x++;  //Hacemos el incremento a  la variable
     }// terminamos el ciclo

Y bueno como este código en realidad es un desastre por los comentarios he aquí el código el codigo limpio.




int x = 0;  
     while (x<=10)
     {
      MessageBox.Show("X es igual a : " + x);
      x++; 
     }


Bueno aquí les dejó como debió de quedar todo el código y su imagen para que lo vean en ejecución.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CICLO_WHILE_CSHARP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

     int x = 0;  
     while (x<=10)
     {
      MessageBox.Show("X es igual a : " + x);
      x++; 
     }


        }
    }
}




Ejemplos

Ejemplo 1: Pedir números por pantalla hasta que alguno sea menor o igual a 7

Tomaremos este ejemplo, 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 menor a 7, una vez mas es un ejemplo sencillo con el que nos aseguraremos de haber comprendido bien todos los conceptos anteriores:
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 menor que 7, así que la condición para que se siga ejecutando es que el numero sea mayor a 7, ¿Comprender la lógica?, es simple si para que se detenga el numero debe ser menor a 7, entonces para seguirse ejecutando el numero debe ser menor o igual a 7.


En efecto los ciclos while, son bastante útiles, sin embargo desde el punto de vista de la eficiencia al igual que con los ciclos for, es recomendable evitarlos en la medida de lo posible, siempre que vayas a usar un ciclo while o cualquier tipo de ciclo en realidad, deberías preguntarte primero si es totalmente necesario o si existe una manera más efectiva de hacerlo. Evidentemente habrá situaciones en las que será casi que imprescindible usar el ciclo, pues por algo existen, esta entonces en nuestra habilidad determinar cuándo usarlos y mejor aun como usarlos de manera efectiva.

 

1
2
3
While condicion
    'instrucciones
End While
Veamos un ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Module Module1

    Sub Main()

        Dim num As Integer = 1

        While num <= 7
            Console.WriteLine(num)
            num += 1
        End While

        Console.ReadLine()

    End Sub

End Module
Como vemos, num vale 1 al principio, se comprueba la condición, como 1 es menor o igual que 7, entra en el bucle y ejecuta las instrucciones, y así sucesivamente hasta que num vale 8, ya que 8 no es menor o igual que 7. Si num no fuera modificado, nunca saldría del bucle.

Diagrama de ciclo while
A continuación presentaremos en manera de diagrama como se vería el código:




Ejemplo 2:
Escribir un programa que solicite la carga de un valor positivo y nos muestre desde 1 hasta el valor ingresado de uno en uno.
Ejemplo: Si ingresamos 30 se debe mostrar en pantalla los números del 1 al 30.
Es de FUNDAMENTAL importancia analizar los diagramas de flujo y la posterior codificación en Visual Basic .Net de los siguientes problemas, en varios problemas se presentan otras situaciones no vistas en el ejercicio anterior.
Diagrama de flujo:


Podemos observar que se ingresa por teclado la variable n. El operador puede cargar cualquier valor.
Si el operador carga 10 el bloque repetitivo se ejecutará 10 veces, ya que la condición es "Mientras x<=n ", es decir "mientras x sea menor o igual a 10"; pues x comienza en uno y se incrementa en uno cada vez que se ejecuta el bloque repetitivo.
A la prueba del diagrama la podemos realizar dándole valores a las variables; por ejemplo, si ingresamos 5 el seguimiento es el siguiente:
n x
5 1  (Se imprime el contenido de x)
        2 "  "
        3 "  "
        4 "  "
        5 "  "
        6 (Sale del while porque 6 no es menor o igual a 5)
Programa:
Module Module1

    Sub Main()
        Dim n, x As Integer
        Console.Write("Ingrese el valor final:")
        n = Console.ReadLine()
        x = 1
        Do While x <= n
            Console.Write(x)
            Console.Write(" - ")
            x = x + 1
        Loop
        Console.ReadKey()
    End Sub

End Module

Los nombres de las variables n y x pueden ser palabras o letras (como en este caso)
La variable x recibe el nombre de CONTADOR. Un contador es un tipo especial de variable que se incrementa o decrementa con valores constantes durante la ejecución del programa.
El contador x nos indica en cada momento la cantidad de valores impresos en pantalla.

Qué es el Ciclo While

¿Qué es un ciclo while? Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código de...