No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Bucle while

6/13
Recursos

Aportes 31

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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 鈥渆rror鈥 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(鈥淚ntroduce 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;
}

EJEMPLO#1

Explicaci贸n:
La sentencia WHILE hace repetir el ciclo de captura del dato 鈥渘鈥 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(鈥渘 es igual a %d\n鈥, n);
n = n-1;
}
printf(鈥渉emos salido del bucle porque n es igual o menor que 10鈥);
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/

<#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;
#include <stdio.h>

int i = 0;

int main(){
  while (i < 20){
    printf("La variable i es %d\n",i);
    i = i + 1;
  }
  return 0;
}

no estraria al buclle porqe no satisface la condicion con n=10

Por su comentario al final yo recuerdo que la diferencia entre el while y el do-while es que el do-while entra al menos una vez al bucle sin importar si la condici贸n ya se cumplio desde la primera sentencia.

Bucle while evalua una expresi贸n. Repite la expresi贸n hasta que la exprsi贸n cambie.

comparto un peque帽o ejercicio que realic茅

# include <stdio.h>
int n;

int main (void)

{
    printf("\n\n\t introduzca un numero:");
    scanf("%d",& n);

    while(n <= 100)
    {
        n=n+1;
        printf(" n:%d \n",n);
        
    }
    if (n > 100) {
    	printf("\n\n\t overload");
	  }

    return 0;

}

excelente

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;
}

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(鈥渉emos 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 ;
}>