Ejemplos explicados de ciclos en lenguaje C

Ejemplos explicados de ciclos en lenguaje C

Los siguientes ejemplos explicados de ciclos en C nos permitirán comprenden mejor las estructuras de control iterativos en lenguaje C.

ejemplos explicados de ciclos

Analizamos varios ejemplos explicados de ciclos en C

¿Qué es el lenguaje C?

Es un lenguaje de programación que tiene entre sus ventajas un control de flujo moderno. (Kernigham y Ritchie, 1991).  El control de flujo se logra mediante instrucciones iterativas o cíclicas, donde una secuencia de instrucciones se ejecuta una y otra vez mientras se cumpla una condición. Cuando esa condición no se cumple, se finaliza la ejecución de la estructura de iteración (García, 2002).

Ejemplos explicados de ciclos en C

Ciclo For

Un ciclo for es una estructura de iteración. Esto quiere decir que nos permitirá ejecutar una instrucción (o serie de instrucciones) un número determinado de veces.

Su sintaxis es:

for (expresión 1; expresión 2; expresión 3){
    secuencia de instrucciones
}

 

Cuando el número de iteraciones es conocido

Ejemplo: Escriba un programa que imprima los números del 1 al 30 escribiendo un salto de línea cada 7 números.

#include "stdio.h"
int main(){
  int x=0;
  for (x=1; x<=30; x++){
    printf("%d \t",x);
    if (x%7==0){
      printf ("\n");
    }
  }
}

 

Explicación: En el ejemplo anterior el número de iteraciones o vueltas está controlado por la variable x. Al ser declarada, x vale 0. Sin embargo, cuando comienza el ciclo x adquiere el valor de 1. El ciclo terminará cuando x valga 30 (x<=30). Además, x recibirá incrementos de 1 (x++).  Dentro del cuerpo de la instrucción for se imprime el valor de x (printf(“%d \t”, x)). Se evalúa si x es múltiplo de 7 (x%7==0), de ser así se imprime un salto de línea (printf (“\n”)).

 

Cuando el número de iteraciones es determinado por el usuario.

Ejemplo: Escriba un programa que imprime los números del 1 a n, donde n es la cantidad de días que tiene un mes que el usuario selecciona previamente.

#include "stdio.h"
int main(){
  int x, mes, dias=0;
  int aa = 2017;
  printf ("Que mes desea: ");
  scanf("%d", &mes);
  if (mes == 1|| mes == 3 || mes == 5 ||
      mes == 7 || mes == 8 || mes == 10 ||
      mes == 12 ){
        dias = 31;
      }
      
  for (x=1; x<=dias; x++){
    printf("%d\t", x);
    if (x % 7 == 0){
        printf ("\n");
    }
  }
}

 

Explicación: Se pregunta al usuario el mes que desesa visualizar. Si el número introducido corresponde a un mes con 31 días, la variable dias recibe el valor 31. (Se deberá incluir código si desea validar los meses con 30 días y el mes de febrero). Se inicializa el ciclo for usando la variable x con valor inicial de 1. El ciclo terminará cuando la variable x sea igual al valor de días del mes seleccionado.

Ciclo while

Una ciclo while realiza un conjunto de instrucciones mientras una condición sea cierta (sea diferente de 0). Cuando la instrucción es 0 (o falso) se suspende la ejecución del ciclo.

Ejemplo: Realizar un programa que muestre un menú de opciones.Se realizará la opción elegida y se volverá a mostrar el menú. El programa termina cuando el usuario elige la opción 5 del menú.

#include "stdio.h"
int main(){
  int saldo=0, deposito=0, retiro=0, opcion=0;
  printf("Introduzca saldo inicial: ");
  scanf("%d", &saldo);
  while(opcion != 5){
    printf("===Bienvenido al banco===");
    printf("\nElija una opcion");
    printf("\n1. Depositar");
    printf("\n2. Retirar");
    printf("\n3. Ver saldo");
    printf("\n4. Abonar intereses");
    printf("\n5. Salir");
    printf("Su opcion: ");
    scanf("%d", &opcion);
    if (opcion == 1){
        printf("Monto a depositar: ");
        scanf("%d", &deposito);
        saldo = saldo + deposito;
    }
    if (opcion == 3){
        printf("\nSu saldo es: %d", saldo);
    }
    if (opcion == 5){
        printf("\nGracias por usar este programa");
    }
  }
}

Explicación: La variable que controla el ciclo es opcion, que inicialmente tiene un valor de 0. Se utiliza la instrucción while para evaluar si la variable opción es diferente de 5, el valor con el que se cierra el programa (while(opcion != 5)). Mientras no sea 5 se muestra el menú y se ejecutan las opciones. Cuando el usuario escribe 5, el programa realiza la opción 5, y finaliza.

 

Ciclo do-while

La principal diferencia con los otros dos ciclos (for y while) es que el ciclo do-while evalúa la condición al final del bloque de instrucciones. Esto implica que realizará por lo menos 1 vez el conjunto de instrucciones que forman el cuerpo del ciclo.

Ejemplo: Solicitar una calificación al usuario, si está no está en el intervalo 0 a 10, se deberá volver a pedir la calificación.

#include "stdio.h"
int main(){
  int cal=0;
  do{
     printf("Deme la calif");
     scanf("%d", &cal);
  } while (cal < 0 || cal > 10);
  printf("\nGracias");
}

 

Explicación: El ciclo es controlado por la variable cal. Como se nos solicita un rango de valores, se escriben dos condiciones (cal < 0 || cal > 10). Se solicita al usuario una calificación, por lo menos una vez, si no está en el rango de valores, el ciclo while evalúa a verdadero por lo que volverá a repetirse el conjunto de instrucciones para solicitar una calificación. Cuando la calificación está en el rango, el ciclo evalúa a falso, por lo que se saldrá y continuará en la instrucción siguiente.

Ciclos anidados

Dado que una instrucción iterativa puede incluir cualquier tipo de instrucción, un ciclo puede contener a otro ciclo en su cuerpo de instrucciones.

Ejemplo: Se desea leer las calificaciones de 5 alumnos, por cada alumno se leen 3 calificaciones.

#include "stdio.h"
int main(){
  int i,j;
  int calif;
  int suma1=0, suma2=0;
  float promedio1, promedio2;
  for (i=1; i<=5; i++){
    printf("\nCalificaciones alumno %d\n", i);
    for (j=1; j<=3; j++ ){
        printf("\tDeme calif %d: ",j);
        scanf("%d",&calif);
        suma1=suma1+calif;
    }
    promedio1 = suma1 / 3;
    printf("\tEl promedio es %.2f", promedio1);
    suma2=suma2+promedio1;
    suma1=0;
  }
  promedio2 = suma2 / 5;
  printf("\nEl promedio general es: %.2f",promedio2);
}

 

Explicación: Se utilizan dos ciclos for, uno dentro del otro. El primer ciclo utiliza la variable i como contador. La variable i va de 1 a 5 (los alumnos). El segundo ciclo utiliza la variable j. Esta variable va de 1 a 3 (las calificaciones). Como está dentro el primer ciclo, leerá 3 calificaciones por cada uno de los 5 alumnos. En el ejemplo anterior se utilizan dos variables suma. La primera lleva la suma de 3 calificaciones, para obtener un promedio. La segunda lleva la suma de los promedios obtenidos, lo que permite tener un promedio general de las calificaciones de los alumnos.

 

Ejemplo: Se desea leer 10 calificaciones aceptando únicamente las calificaciones que estén en el rango de 0 a 10.

#include "stdio.h"
int main(){
  int calif=0;
  int erronea=0;
  int i;
  for (i = 1; i<=10; i++){
   do{
    printf("\nEscriba una calificacion correcta: ");
    scanf("%d", &calif);
    if (calif <0 || calif > 10){
      erronea=1;
      printf("\nLa calificacion es erronea, introduzca de nuevo: ");
    }
    else{
        erronea = 0;
    }
    } while (erronea != 0);
    printf("\nGracias!!");
  }
}

 

Explicación: Se utiliza un for para las 10 calificaciones. Ahora bien, para aceptar únicamente calificaciones válidas se utiliza un do-while. Si usas un if, tambien realiza la validación, pero continúa con la siguiente calificación. Un do-while vuelve a pedir (una y otra vez) la calificación, mientras no se le de una calificación correcta. En este ejemplo se utiliza una varible centinela llamada erronea, que es inicializada en 0 (no es erronea). Se utiliza un if para hacer la evaluación de si el número está fuera del rango. Si está fuera del rango erronea se cambia a 1.  Volverá a pedir la calificación mientras erronea tenga ese valor de 1. La única forma de que erronea vuelva a ser cero es dando una calificación correcta.

Espero que estos ejemplos explicados de ciclos te permitan comprender mejor las instrucciones iterativas en lenguaje C.

Referencias

  1. García F y otros (2002). Problemas resueltos de programación en lenguaje C.
  2. Kernighan B., Ritchie D (1991). El lenguaje de programación C. Pearson Educación.

 

¿Qué te pareció este artículo?
  • Poco informativo 
  • No era lo que buscaba 
  • Regular 
  • Interesante 
  • Excelente 
(Visto 77.939 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Comments are closed