No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Bucle while

6/13
Recursos

Aportes 25

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Las tablas de multiplicar con dos while

#include <stdio.h>
#define TOTAL 10

int	main (void)
{
	int i;
	int j;

	
	i = 1;
	while ( i <= TOTAL)
	{
		printf ("\n\n Tabla del %d\n", i);
		j = 1;
		while (j <= TOTAL)
		{
			printf ("  %d x %d = %d\n", i, j, i*j);
			j++;
		}
		i++;
	}
	return (0);
}

salida



 Tabla del 1
  1 x 1 = 1
  1 x 2 = 2
  1 x 3 = 3
  1 x 4 = 4
  1 x 5 = 5
  1 x 6 = 6
  1 x 7 = 7
  1 x 8 = 8
  1 x 9 = 9
  1 x 10 = 10


 Tabla del 2
  2 x 1 = 2
  2 x 2 = 4
  2 x 3 = 6
  2 x 4 = 8
  2 x 5 = 10
  2 x 6 = 12
  2 x 7 = 14
  2 x 8 = 16
  2 x 9 = 18
  2 x 10 = 20


 Tabla del 3
  3 x 1 = 3
  3 x 2 = 6
  3 x 3 = 9
  3 x 4 = 12
  3 x 5 = 15
  3 x 6 = 18
  3 x 7 = 21
  3 x 8 = 24
  3 x 9 = 27
  3 x 10 = 30


 Tabla del 4
  4 x 1 = 4
  4 x 2 = 8
  4 x 3 = 12
  4 x 4 = 16
  4 x 5 = 20
  4 x 6 = 24
  4 x 7 = 28
  4 x 8 = 32
  4 x 9 = 36
  4 x 10 = 40


 Tabla del 5
  5 x 1 = 5
  5 x 2 = 10
  5 x 3 = 15
  5 x 4 = 20
  5 x 5 = 25
  5 x 6 = 30
  5 x 7 = 35
  5 x 8 = 40
  5 x 9 = 45
  5 x 10 = 50


 Tabla del 6
  6 x 1 = 6
  6 x 2 = 12
  6 x 3 = 18
  6 x 4 = 24
  6 x 5 = 30
  6 x 6 = 36
  6 x 7 = 42
  6 x 8 = 48
  6 x 9 = 54
  6 x 10 = 60


 Tabla del 7
  7 x 1 = 7
  7 x 2 = 14
  7 x 3 = 21
  7 x 4 = 28
  7 x 5 = 35
  7 x 6 = 42
  7 x 7 = 49
  7 x 8 = 56
  7 x 9 = 63
  7 x 10 = 70


 Tabla del 8
  8 x 1 = 8
  8 x 2 = 16
  8 x 3 = 24
  8 x 4 = 32
  8 x 5 = 40
  8 x 6 = 48
  8 x 7 = 56
  8 x 8 = 64
  8 x 9 = 72
  8 x 10 = 80


 Tabla del 9
  9 x 1 = 9
  9 x 2 = 18
  9 x 3 = 27
  9 x 4 = 36
  9 x 5 = 45
  9 x 6 = 54
  9 x 7 = 63
  9 x 8 = 72
  9 x 9 = 81
  9 x 10 = 90


 Tabla del 10
  10 x 1 = 10
  10 x 2 = 20
  10 x 3 = 30
  10 x 4 = 40
  10 x 5 = 50
  10 x 6 = 60
  10 x 7 = 70
  10 x 8 = 80
  10 x 9 = 90
  10 x 10 = 100

while es considerado un ciclo 0.X, es decir que puede ejecutarse muchas veces (incluso infinitas cuando la condición siempre es verdadera), o puede que no se ejecute ni una sola vez (cuando la condición es falsa antes de iniciar el ciclo)

while es particularmente útil cuando la cantidad de repeticiones del ciclo es desconocida. Ej Contar la cantidad de días sin lluvia, Determinar la cantidad de vehículos que pasarán por una avenida en una hora, imprimir la palabra “error” hasta que el usuario ingrese el password correcto. En todos los casos, la cantidad de repeticiones es desconocida para el programador, por lo que un ciclo while sería la herramienta correcta para solucionar el problema.

Este ejemplo lo saque del Curso Herramientas del Pensamiento Lógico.
Está en el apartado de Estructuras de Control.
.
E j e m p l o # 2
SACAR PROMEDIO DE TANTAS CALIFICACIONES DADAS
Explicación:
La sentencia WHILE se hace repeitr mientras la condición sea verdadera. Hasta que es falsa se termina.
En este ejemplo se acumulan datos capturados que cumplan la reglas de un criterio (mientras no sea igual a -1).
Cuando este criterio deja de cumplirse, el código ya hizo la sumatoria de los datos buenos, y contabilizó cuantos datos buenos son.
Esto le permite dividir la sumatoria de los datos que si cumplieron el criterio entre la cantidad de datos capturados buenos; y así sacar el promedio.
.
.
.
S i n t á x i x :
while(expression)
{
expressions;
}
.
.
.
C ó d i g o :
//promedio.c
#include <stdio.h>

int main()
{
int calif, conta=0, suma=0;
float promedio;
printf(“Introduce la Calificación (termina con -1): “);
scanf(”%d”, &calif );

  while (calif !=-1)
  {
        suma+= calif;
        conta++;
        printf("Introduce la Califación (termina con -1): ");
        scanf("%d", &calif );

  }

  promedio = (float) suma/conta;

  printf("\tEl promedio es: %6.1f", promedio);

return 0;
}

<#include <stdio.h>

//programa que muestra los números pares en el rango del 1 al 100

int main(){

  int numero=0;
  int par=0;

  printf("A continuacion los numeros pares que hay en el rango de 1 a 100\n");

  while(numero<=100)
  {
    par=(numero%2);
    if (par==0){
      printf("%d\n",numero);
    }else{
      printf("\n");
    }
    numero++;
  }

  printf("\n");

  return 0;
  
}>

¡Pequeña abreviatura! 😃

Tambien podemos reescribir lo siguiente:

n = n - 1;

Es lo mismo que:

n  -=  1;

EJEMPLO#1

Explicación:
La sentencia WHILE hace repetir el ciclo de captura del dato “n” y la resta de dicho dato “-1” hasta que llegue un momento en que no cumpla con la condición de ser un número mayor que 10.
En ese momento, sale del bucle y termina de ejecutarse el código.

Sintáxix:
while(expression)
{
expressions;
}

Código:
#include <stdio.h>
int n = 10;
int main()
{
while (n > 10){
printf(“n es igual a %d\n”, n);
n = n-1;
}
printf(“hemos salido del bucle porque n es igual o menor que 10”);
return 0;
}

Tablas de multiplicar con C :

#include <stdio.h>

int main(){
    int i = 1;
    int b = 1;

    while (i<=10){
        printf("%d x %d = %d\n", i, b, i*b);
        b++;

        if(b==11){
            b = 1;
            i++;
            printf("---------------\n");
        }
    }
}

Mi codigo:

#include <stdio.h>

main (){
	int n=20;
	
	while (n>10){
		printf ("N es igual a:%d \n",n);
		n=n-1;
	}
	printf ("El ciclo while termino");
	return 0;
}
#include <stdio.h>

int n;

int main(int argc, char const *argv[])
{

    printf("Where should we start the countdown?");
    scanf("%d", &n);

    while (n >= 0)
    {
        printf("n: %d\n", n);
        n--;
    }
    
    return 0;
}

Te reto a escribir tu propia versión de código usando while

#include<stdio.h>

int main(void)
{
	int n = 0;

	while (n < 10)
	{
		printf("n es menor a 10\n");
		n++;
	}
	printf("Hemos salido del ciclo porque n es igual a 10\n");

	return 0;
}

con este bucle tambien podemos controlar el fujo de los datos, esta muy iteresante como se hace

#include <iostream>
using namespace std;

int main() {
	int a,b,respuesta,opcion;
	float c,d,resp_flotante;
	bool seguir_bucle = true;
	while(seguir_bucle){
		cout << "Menu Calculadora :"<<endl;
		cout << "1 - Suma "<<endl;
		cout << "2 - Resta"<<endl;
		cout << "3 - Multiplicacion"<<endl;
		cout << "4 - division"<<endl;
		cout << "5 - Salir"<< endl ;
		cout << "Ingrese una opcion : "; cin >> opcion;
		cout << endl ;
		switch(opcion){
		case 1:
			cout << "Ingrese el primer numero: "; cin >> a ;
			cout << endl << "Ingrese el segundo numero: "; cin >> b;
			respuesta = a + b;
			cout << endl <<"El resultado de "<<a<<" + "<<b<<" es : "<<respuesta<<endl;
			break;
		case 2:
			cout << "Ingrese el primer numero: "; cin >> a ;
			cout << endl << "Ingrese el segundo numero: "; cin >> b;
			respuesta = a - b;
			cout << endl <<"El resultado de "<<a<<" - "<<b<<" es : "<<respuesta<<endl;
			break;
		case 3:
			cout << "Ingrese el primer numero: "; cin >> a ;
			cout << endl << "Ingrese el segundo numero: "; cin >> b;
			respuesta = a * b;
			cout << endl <<"El resultado de "<<a<<" x "<<b<<" es : "<<respuesta<<endl;
			break;
		case 4:
			cout << "Ingrese el primer numero: "; cin >> c ;
			cout << endl << "Ingrese el segundo numero: "; cin >> d;
			resp_flotante = c / d;
			cout << endl <<"El resultado de "<<c<<" / "<<d<<" es : "<<resp_flotante<<endl;;
			break;
		case 5:
			cout <<"Hasta la proxima !!"<<endl;
			seguir_bucle = false;
			break;
		}
	}
	return 0;
}```

![](

#include <stdio.h>
#define SI 1
#define NO 0


int main()
{
    int hay_un_ladron = 1;
    int minutos_de_busqueda = 0;
    while(hay_un_ladron == SI){
        printf("buscando al ladron\n");
        ++minutos_de_busqueda;
        if(minutos_de_busqueda < 20){
            printf("El ladron fue encontrado\n");
            printf("desplegando armas\n");
            printf("eliminando al ladron\n");
            printf("el ladron ha sido eliminado\n");
            hay_un_ladron = NO;}}
    return 0;
}

La instrucción while no considera verdadero exclusivamente expresiones cuyo valor sea verdadero o 1 (minuto 1:13).

Realmente cualquier valor diferente de cero (en expresiones numéricas) o diferente de NULL (en las demás ocasiones que apliquen) es considerado verdadero.

Para los que quieran saber más al respecto, comparto un tutorial que puede ser muy útil para entender correctamente como se evalúan las expresiones de las instrucciones de control. Espero le sirva

https://platzi.com/tutoriales/1957-flujo-c-2020/6491-expresiones-validas-en-instrucciones-de-control-de-flujo-en-c/

Un viejo conocido, de cursos anteriores.
Factorial con ciclo While

#include <stdio.h>

int n;
int j=1;
int fact=1;

int main()
{
    printf("Ingrese un numero para calcular su factorial:\n");
    scanf("%i",&n);
    while (j <= n)
    {
        fact = j*fact;
        j = j+1;
    }
    printf("El factorial de %d es igual a %d\n",n,fact);
    return 0;
}```

Sintaxis:

while(expression) { expressions; }

Código:

  #include <stdio.h>
    int n = 10;
    int main()
    {
    while (n > 10){
    printf(“n es igual a %d\n”, n);
    n = n-1;
    }
    printf(“hemos salido del bucle porque n es igual o menor que 10”);
    return 0;
    }

Con n = 10 o menor, saldría directamente del bucle

Por fin se despertó el gato

muy buena clase

#include <stdio.h>

int n = 20;

int main()
{
    while (n > 10)
    {
        printf("n es igual a %d \n", n);
        n = n -1;

    }
    printf("el ciclo while ha salido");
    return 0;
}```

While 😃

#include <stdio.h>
int n = 16;

int main()
{
   while(n >= 10)
  {
   printf("n es: %i \n", n);
   n = n - 1;
  }
   printf("n ahora es menor que 10");
 
 return 0;
}

Cuando es 10 no entra al ciclo porque no cumple la condición.

<#include <stdio.h>
//Variables
int a =1;
int b =1;
int cast = 0;
//main process
int main(){
    //First While
while (a <= 10)
{   printf("---------------\n");
    printf("tabla del %d\n",a);
    //Operation While
    while (b <= 10)
    {
        cast = a * b;
        printf("%d x %d = %d\n",a,b,cast);  
        b++;
    }
   b=b-9; 
   a=a+1; 
}
return 0 ;
}>