No tienes acceso a esta clase

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

Bucle for

8/13
Recursos

Aportes 23

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Programa que calcula los primeros 100.000 primos (combina un for para recorrer los números y un do while para encontrar el primer divisor y descartar que es primo.

#include <stdlib.h>

int	main(void)
{
	int totalPrimosEcontrados;
	int total = 100000;
	int numeroEstudiar;
	int divisor;
	int encontradoDivisor;

	totalPrimosEcontrados = 0;
	for (numeroEstudiar = 1; numeroEstudiar <= total; numeroEstudiar++)
	{
		divisor = 1;
		encontradoDivisor = 1;
		do 
		{
			if(divisor > 1 && divisor < numeroEstudiar)
				if (numeroEstudiar % divisor == 0)
					encontradoDivisor = 0;
			divisor++;
		} while (encontradoDivisor == 1 && divisor < numeroEstudiar);
		if (encontradoDivisor == 1)
		{
			totalPrimosEcontrados++;
			printf("[%d] Encontrado número primo\n", numeroEstudiar);
		}
//		else 
//			printf("[%d] no es primo\n", numeroEstudiar);
	}
	printf("Total primos encontrados del 1 al %d, = %d\n", total, totalPrimosEcontrados);
	return (0);
}

Salida

Hice una Tabla de multiplicar.

#include <stdio.h>                                                               
                                                                                    
  int main(){                                                                      
          int num = 6;                                                             
          int num2 = 10;                                                           
          int res;                                                                 
          for(int i = 0; i <= num2; i++){                                      
                  res = i * num;                                               
                  printf("%d x %d = %d \n", num,i,res);                                            
          }     
}                                                                                   
                                                                               

OutPut:

6 x 0 = 0
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

Los videos de los robots están muy cool, deberías hacer un curso sobre ello. 😃

En linux en la consola se puede hacer eso del int = 0 desde el ciclo for sin error en compilación

¿Cuándo usar while y cuándo usar for?


  • while se usa cuando no conocemos la cantidad de iteaciones que vamos a hacer.
  • for se usa cuando conocemos la cantidad de interaciones que vamos a hacer.

si se tiene clara la cantidad de veces que se va a iterar, pues podemos usar el FOR en lenguaje c

Bucle for

Este bucle funciona exactamente igual que el while, la diferencia es que es más “ordenado” y normalmente se usa cuando sabemos cuantas iteraciones queremos hacer.

Ejemplo ciclo for:

#include <stdio.h>

int main()
{
    int n = 30;
    for(int i=0; i < n; i++)
        printf("el valor actual de i es %d\n",i );

    return 0;
}

La sintaxis es la siguiente : for (contador; condicion; adicion o sustraccion)
Tambien se podría leer así : para “i=0”, tal que i sea menor que n y “mientras sumamos uno a i”

Programa simula un temporizador que va de 100000 a 0 segundos

Ejecución

#include <stdio.h>
//Programa simula un temporizador que va de 100000 a 0 segundos

int main(){

  int i;
  int contador=100000;
  int tiempoRestante=100000;

  printf("Se te termina el tiempo\n\n");
  
  for(i = 0; i <= contador; ++i){
    printf("Tienes %d segundos \r",tiempoRestante);
    
    tiempoRestante=tiempoRestante-1;
  }
  
  printf("\nYa no tienes tiempo, perdiste\n");
  
  return (0);
}```

Ejemplo de while

#include <stdio.h>

int main() 
{
    unsigned int cash, limit=3000,cFiveHundred=0,cOneHundred=0,cTwoHundred=0,cFifty=0,cten=0,cOne=0;
    printf("\t*******************************\n");
    printf("\t********  CAJERO ATM  *********\n");
    printf("\t*******************************\n");
    printf("\n\t¿Cuánto deseas retirar?\n\t");
    scanf("%u", &cash);
    
    while(cash>0){
        switch(cash){
            case 500 ... 3000:
                cFiveHundred++;
                cash-=500;
                break;
            case 200 ... 499:
                cTwoHundred++;
                cash-=200;
                break;
            case 100 ... 199:
                cOneHundred++;
                cash-=100;
                break;
            case 50 ... 99:
                cFifty++;
                cash-=50;
                break;
            case 10 ... 49:
                cten++;
                cash-=10;
                break;
            case 1 ... 9:
                cOne++;
                cash-=1;
                break;
            default:
                printf("\n\tLo siento :( pero sobrepasas el limite.");
                cash=0;
                break;
        }
    }
    printf("\nAqui tienes tus \n%d billes de 500, \n%d billetes de 200, \n%d billetes de 100, \n%d billetes de 50, \n%d monedas de 10, \n%d monedas de 1 peso\n\t Gracias por su eleccion", cFiveHundred, cTwoHundred, cOneHundred, cFifty, cten,cOne);
    return 0;
}

excelente de hecho para mi proyecto de semestre de este año tengo que hacer un robot zumo con seguidor de linea, con sensor ultrasonico, siplay lcd,… si todo sale bien lo subire aca al final del curso!!

For 😃

#include <stdio.h>

int main()
{ 
  int n = 11;
  int i;
  printf("Numeros del 1 al 10\n");

  for(i = 1; i < 11; i++)
  {
    printf("n es: %i \n", i);
  }
}```

El ciclo for es una estructura que se utiliza para ejecutar un bloque de código un número determinado de veces.
Código donde te pregunta el valor de n y lo imprime con ciclo for:

#include <stdio.h>

main (){
	int i,n;
	printf ("Dime un numero:\n");
	scanf ("%d", &n);
	
	for (i=0; i<n; i++){
		printf ("El valor actual de i es:%d \n",i);
	}
	return 0;
}

Interesante, no sabia que C ya no te dejaba declarar la variable dentro del for

Copie y pegué el mismo código pero al momento de probarlo solo me sale que el valor de 1 es 0 en vez de la cuenta del 1 al 30

#include <stdio.h>

int n;

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

    for (int i = 0; i < 10; i++)
    {
        printf("i: %d\n", i);
    }

    return 0;
}

A mi se me ocurrió hacer un programa que muestre la serie de Fibonacci pero que omita los números primos de la misma, me costó un poco pero lo logré

#include<stdio.h>
#include<stdlib.h>

int main()
{
    system("cls");
    int n = 5;
    int i;
    for ( i = 0; i < n; i++)
    {
        printf("Si i=%d y menor que n=%d, muestre esto en pantalla\n",i,n);
    }
    printf("Salimos del ciclo for porque i=%d ya no es menor que n=%d \n",i,n );
    return 0;
}
<code> 
// Tabla de multiplicar
#include <stdio.h>                                           
int mul = 8;
int num = 10;
int resultado;
int i;

int main(){                                                    for(i = 0; i <= num; i++){                                   resultado = i * mul;                                         printf("%d x %d = %d \n", mul,i,resultado);                  }     
}

Los for tambien se utilizan para hacer recoridos de array/arreglos.

El ciclo for lo vamos a utilizar cuanto tengamos claro la cantidad de elementos que vamos a utilizar.

Cuándo utilizar for: cuando sepamos el tamaño del elemento que queremos analizar.

Hola, He creado un programa que te hace la cuenta atras de las semanas que te quedan de vida, he utilizado la esperanza de vida española (aprox 83 años), este es el codigo:

#include <stdio.h>

int main()
{
    printf("Hello, this program will make you a count down of the weeks an spanish is expected to live");
    //weeks we are suposed to live
    int remaining_weeks = 4316; 
    for (remaining_weeks; remaining_weeks >= 0; remaining_weeks -= 1)
    {
        printf("you have %d remaining weeks left to live\n", remaining_weeks);
    }
    printf("Sorry, but you have wasted your life");
    
    return 0;
}