PUBLICIDAD


Ciclos - Do While - Programación en C


Introducción

En ocasiones necesitamos que una determinada acción se ejecute varias veces en el programa por un determinado número de veces, o mientras una condición ocurra. Repetir el código podría ser una solución, pero sin duda una muy desordenada y poco eficiente. Para este tipo de situaciones se utiliza la Estructura de control repetitiva, también conocida como “Ciclos”. En este artículo te explicaremos los conceptos básicos de los ciclos, así como una de dichas estructuras: Do – While.

Marco teórico

Estructura de control repetitiva: Metodología de la programación que consiste en ejecutar una o varias instrucciones en un determinado número de ocasiones o mientras una condición se cumpla. Para que el ciclo termine se debe estar monitoreando y cambiando la variable de control, es decir, la que determina el fin del ciclo, que puede ser un número que indica cuantas veces se ejecuta el ciclo o puede ser una condición que ejecuta el ciclo mientras sea verdadera. Existen 3 tipos de estructuras de control:

Ciclo (Iteración o Bucle): Parte de un programa (Segmento de instrucciones o una sola instrucción) que se repetirá en un determinado número de ocasiones definidas por el programador, o también puede repetirse indefinidamente mientras una condición se cumpla. La variable de control tiene que estarse monitoreando para que el ciclo no se vuelva infinito, lo que provocaría un colapso del programa. Por ejemplo, si queremos que un ciclo se ejecute 10 veces, estableceríamos un contador que se incrementaría en 1 en cada ciclo, así cuando el ciclo se cumpla 10 veces, el contador marcará 10, lo que detendría el ciclo. Otro ejemplo, si queremos que un ciclo que se ejecute mientras el usuario no escriba la palabra “Salir del programa”, crearíamos y monitorearíamos una variable que guarde lo que escriba el usuario, así cuando el usuario escriba dicha oración detendríamos el ciclo.

Contador: Variable que sirve para contabilizar el número de veces que se ha repetido un ciclo y para detener el ciclo. Esta variable contadora puede ser de incremento o decremento. Esta variable siempre debe inicializarse antes (y fuera) del ciclo. Por ejemplo, si queremos que un ciclo se ejecute 5 veces crearíamos una variable contadora que inicie en 0, y dentro del ciclo incrementaríamos en 1, cuando se haya cumplido 5 veces el ciclo, la variable contadora tendrá un valor de 5, y el programa se detendrá. Las distintas sintaxis para incrementar serían las siguientes:

Código:

Contador = Contador + 1;

Código:

Contador++;

Código:

++Contador;

Código:

Contador += 1;

Las distintas sintaxis para decrementar serían las siguientes:

Código:

Contador = Contador – 1;

Código:

Contador--;

Código:

--Contador;

Código:

Contador -= 1;

Acumulador: Tiene una función parecida al contador, sin embargo, en este caso el número que se acumulará es variable. Por ejemplo, si queremos crear un ciclo en el que se multiplique cierto número hasta que el resultado de la multiplicación sea 200, utilizaríamos un acumulador que este guardando el resultado, y que detendrá el ciclo una vez el resultado sea 200.

Centinela: Variable que el usuario puede modificar de manera que pondrá fin a un ciclo. Se monitorea dicha variable en cada vuelta de ciclo, y si la variable coincide con la condición para finalizar el ciclo este terminará. Por ejemplo, se puede crear una variable centinela que si el usuario escribe “Si” continúe el ciclo, y si escribe “No” se finalice el ciclo.

Bandera (Marca, Flag): Variable cuyos valores pueden cambiar entre 1 (verdadero) y 0 (falso). Este puede detener un ciclo, se utiliza normalmente para cambiar si cierta condición se cumple. Por ejemplo, supongamos que queremos detener un ciclo si un sensor detecta algo, entonces podríamos crear una variable llamada “Detecto_sensor” cuyo valor inicial sea 0, cuando detecte algo cambie a 1, y poner como condición detener el ciclo cuando la variable valga 1.

Estructura Do-While: Estructura que repetirá un ciclo un número indefinido de veces mientras una condición sea verdadera. Esta estructura se utiliza cuando queremos que el ciclo se realice al menos una vez, después de eso se revisará si la condición es verdadera, si sí es este se repetirá, si no es verdadera terminará el ciclo.

Características:

La sintaxis de esta estructura de control repetitiva es la siguiente:

Código:

do{ //Repite estas instrucciones...
	Instrucción;
	Instrucción;
	Instrucción;
} while (condicion); //… mientras la condición sea verdadera


Publicidad


Ejercicio

Realizar un programa en el que (en un ciclo) el usuario pueda ingresar 2 números a multiplicar, una vez ingresados se realice la multiplicación y muestre los resultados; después pregunte al usuario si desea realizar otra multiplicación, si la respuesta es sí, se repite el ciclo y vuelve a realizar todo lo anterior, si es no finalice el ciclo.

Código:

/* Ciclos (Do While) - Por Solución Ingenieril*/
/* Programa que realizara multiplicaciones hasta que el usuario decida terminar */
#include <stdio.h> /* Declaración de librerías*/
#include <stdlib.h>

int multiplicar(int, int); //Función que multiplicara

int main() {
	int num_1,num_2; //Declaramos variables, esta guardara los números a multiplicar
	int resultado; //Este guardara el resultado
	char salida; //Este guardara la respuesta de salida, si desea salir o no
	
do{ //Haz esta accion...
	printf("Ingresa el primero numero a multiplicar: "); //Solicitamos datos a multiplicar y guardamos
	scanf("%d",&num_1);
	printf("Ingresa el segundo numero a multiplicar: ");
	scanf("%d",&num_2);
	resultado=multiplicar(num_1,num_2); //Llamamos a la función de multiplicar y guardamos el resultado
	
	printf("%d x %d = %d",num_1,num_2,resultado); //Mostramos el resultado
	
	printf("\nDeseas realizar otra multiplicacion?: S/N "); //Preguntamos si desea realizar otra multiplicación, y guardamos su respuesta
	scanf("%s",&salida);
	printf("----------------------\n");
	
}while(salida=='s'); //Mientras la respuesta sea "S" (de Si), regresa al Do y ejecuta la acción...
	
	printf("Gracias por utilizar este multiplicador!"); //Cuando ya escriba N (de No), agradecemos y salimos...
			return 0;
}
	
int multiplicar(int numero_1,int numero_2){ //Función que realizara la multiplicación
	int result; //Declaramos variable donde se guardara el resultado

	result = numero_1 * numero_2; //Realizamos multiplicación
	return result; //Enviamos el resultado
	}

Resultados

Multiplicamos todas las veces que deseamos hasta que ponemos N (No) en el programa.

Ciclos - Do While - 1

Conclusión

En ocasiones queremos que una parte de un programa se repita en muchas ocasiones sin tener que reescribir el código, para este tipo de situaciones existe los ciclos y hoy analizamos una estructura de estos llamada “Do While”, explicamos todo sobre las condiciones que modifican al ciclo, sus características y finalizamos con un ejercicio para que quede claro como codificarlo.






Agregar comentario
1500
¿Cuantas letras hay en la palabra ¨Dos¨?
Comentarios
(0)
No hay comentarios todavía ¡Sé el primero en comentar!

©2017-2021 Solución Ingenieril. Todos los derechos reservados