Está en la página 1de 10

Estructuras Repetitivas

Un ciclo es una estructura que nos permite representar un conjunto de instrucciones que debe repetirse una cantidad limitada de veces, normalmente dependiente de una condicin o de una cantidad determinada de repeticiones o iteraciones. Los ciclos permiten iterar todo un proceso tantas veces como el programador (o el usuario) lo determine.

Es comn, que en la solucin de muchos problemas algortmicos, se requiera realizar la repeticin de cierto bloque de instrucciones, con el fin de obtener el objetivo buscado por el algoritmo. Para implementar repeticin de bloques de instrucciones se utilizan las estructuras de control llamadas ciclos o estructuras repetitivas.

Un ciclo puede definirse como una estructura que nos permite repetir o iterar un conjunto de instrucciones y que tiene las siguientes caractersticas:

El conjunto de instrucciones a repetir dentro del ciclo debe ser finito

La cantidad de veces que se repita dicho conjunto de instrucciones tambin debe ser finita. En algunos casos esta cantidad de veces va a depender de una condicin explcita y en otros casos va a depender de una condicin implcita. Una condicin es explcita cuando depende solamente de la misma ejecucin del programa sin que sea importante la participacin del usuario. Asimismo una condicin es implcita cuando depende solamente de la voluntad del usuario y por lo tanto la cantidad de iteraciones o repeticiones del ciclo podra llegar a ser diferente cada vez pues sera posible que cambiara con cada usuario.

Deben estar claramente demarcados el inicio y el fin del ciclo. En los casos en los cuales solo exista una instruccin a iterar, no sern necesarias dichas marcas.

Dentro de un ciclo podr ir cualquiera de las otras estructuras, incluyendo otros ciclos.

Ciclos repetitivos de lenguaje C


La modularizacin, es una tcnica usada por los programadores para hacer sus cdigos ms cortos, ya que consiste en reducir un gran problema complejo, en pequeos problemitas ms sencillos, concentrndose en la solucin por separado, de cada uno de ellos.

En C, se conocen como funciones aquellos trozos de cdigos utilizados para dividir un programa con el objetivo que, cada bloque realice una tarea determinada.

En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estas pueden ser locales o globales.

Variables Globales: Estas se crean durante toda la ejecucin del programa, y son globales, ya que pueden ser llamadas, ledas, modificadas, etc; desde cualquier funcin. Se definen antes del main ().

Variables Locales: Estas, pueden ser utilizadas nicamente en la funcin que hayan sido declaradas.

La sintaxis de una funcin es la siguiente:

Tipo de datos nombre de la funcin (tipo y nombre de argumentos)

Dnde:

Tipo de datos: Es el tipo de dato que devolver esa funcin, que puede ser

real, entera, o tipo void (es decir que no devolver ningn valor).

Nombre de la funcin: Es el identificador que le damos a nuestra funcin,

la cual debe cumplir las reglas que definimos en un principio para los identificadores.

Tipo y nombre de argumentos: son los parmetros que recibe la funcin.

Los argumentos de una funcin no son ms que variables locales que reciben un valor. Este valor se lo enviamos al hacer la llamada a la funcin. Pueden existir funciones que no reciban argumentos.

Acciones: Constituye el conjunto de acciones, de sentencias que cumplir

la funcin, cuando sea ejecutada. Entre ellas estn:


Asignaciones Lecturas Impresiones Clculos, etc

Una funcin, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle la instruccin return, con la cual devolver un valor especfico. Es necesario recalcar que si la funcin no devuelve ningn valor, es decir, es tipo void, no tiene que ir la sentencia return, ya que de lo contrario, nos dar un error.

Cmo es que funcionan los Subprogramas?

A menudo, utilizamos el adjetivo de "Subprogramas", para referirnos a las funciones, as que, el lector debe familiarizarse tambin con este trmino. Los subprogramas se comunican con el programa principal, que es el que contiene a las funciones, mediante parmetros, que estos pueden ser: Parmetros Formales y Parmetros Actuales.

Cuando se da la comunicacin los parmetros actuales son utilizados en lugar de los parmetros formales.

Paso de Parmetros

Existen dos formas de pasar parmetros, las cuales son:

Paso por Valor

Tambin conocido como parmetros valor. Los valores se proporcionan en el orden de clculos de entrada. Los parmetros se tratan como variables locales y los valores iniciales se proporcionan copiando los valores de correspondientes argumentos. Los parmetros formales-Locales de una funcin reciben como inicilaes los valores de los parmetros actuales y con ellos se ejecutan las acciones descritas en el subprograma.

Ejemplo: A=5; B=7; C=proc1(A, 18, B*3+4); Proc1(X, Y, Z)

Explicacin:

Donde, se encuentra c, se est llamando la funcin, denominada proc1, en la cual se estn enviando como parmetros el valor de A, que es cinco; el cual es recibido por la variable X, en la definicin de la funcin proc1; en la misma funcin, Y tendr el valor de 18; porque ese es el valor del parmetro formal, mientras que Z, tendr un valor inicial de 25, ya que ese es el resultado del tercer parmetro que resulta ser una expresin aritmtica.

Tipos de Ciclos
A continuacin se describe la estructura de construccin de cada uno de los ciclos tal como son concebidos por la mayora de lenguajes de programacin y posteriormente se utilizaran para representar el mismo algoritmo con cada una de las estructuras.

Ciclo while
El ciclo while representa el esquema general de trabajo para todos los ciclos, esto quiere decir que si se entiende claramente la lgica de funcionamiento de este ciclo se facilita entender no solo los otros ciclos. Es til saber que este ciclo tambin es llamado en algunos libros el Ciclo Mientras Que La estructura general de este ciclo en lenguaje C es la siguiente:

while (expresion_condicional) { ... instrucciones_del_cuerpo_del_ciclo ... instrucciones_que_modifican_el_resultado_de_la_condicion }

Su forma de ejecucin es muy sencilla: Mientras se cumpla que la condicin sea Verdadera entonces se ejecutar el Cuerpo del Ciclo. De igual forma tambin se podra decir que el Cuerpo del Ciclo se repetir tantas veces como lo permita la condicin o mientras dicha condicin sea Verdadera. En condiciones normales la cantidad de veces que se repita el cuerpo del ciclo ser siempre una cantidad finita y deber existir, dentro del mismo cuerpo del ciclo, una o ms instrucciones que hagan que en algn momento la condicin sea Falsa.

El ciclo while se puede describir de la siguiente forma: cuando el computador encuentra la estructura while verifica la condicin del ciclo, si la condicin es verdadera se ejecutan las instrucciones al interior del ciclo, luego de ejecutar la ltima condicin del ciclo se vuelve a evaluar la condicin, s contina siendo cierta se vuelve a ejecutar el bloque de instrucciones del ciclo. Cuando la condicin se hace falsa el computador se salta el bloque de instrucciones del ciclo y contina con la ejecucin del resto de instrucciones del programa.

Ciclo for
La estructura general de este ciclo en lenguaje C es la siguiente:

for (control=valor_inicial;control<=valor_tope;incremento_control) { ... instrucciones_del_cuerpo_del_ciclo ... }

La forma de ejecucin del ciclo es la siguiente: control representa una variable que va a tomar valores iniciando en valor_inicial y terminando en valor_tope avanzando con un incremento. En los casos en los que no se especifica el valor

del paso la mayora de los lenguajes de programacin asume el incremento de 1, sin embargo el lenguaje C requiere que la variable de control sea incrementada, P.Ej.: Si la variable de control se llama vi y el paso es de 1 el incremento de la variable de control se define as, vi=vi+1. El Cuerpo del Ciclo se ejecutar una vez por cada valor que tome la variable control

Ejemplo

Escribir los nmeros impares comprendidos entre 1 y 100.

#include <stdio.h>

int main() { int numero,vc; for(vc=1; vc<=100; vc=vc+2) { printf("\nImpar %d: %d",vc/2+1,vc); } return(0); }

Ciclo do / while
Este ciclo carece de representacin algortmica equivalente, sin embargo es similar en funcionalidad al ciclo repetir hasta o hacer hasta, con la diferencia que el ciclo hacer hasta se repite siempre que la condicin resulte falsa y el ciclo do while se repite si la condicin es verdadera, lo que implicara que en un algoritmo que utiliza la estructura hacer- hasta, en su implementacin en lenguaje C debe hacerse un pequeo cambio en la forma de la condicin.

La estructura general de este ciclo en lenguaje C es la siguiente:

do{ ... instrucciones_del_cuerpo_del_ciclo ... instrucciones_que_modifican_el_resultado_de_la_condicion }while (expresion_condicional);

Podra decirse que esta es una inversin de la estructura del ciclo while. En este ciclo el cuerpo del mismo se repite mientras la condicin sea Verdadera y su nica diferencia con el ciclo while es que en el Ciclo do - while primero se ejecuta el cuerpo del ciclo y luego se evala la condicin en cambio en el ciclo while primero se evala la condicin y luego se ejecuta el cuerpo del ciclo. Tenga en cuenta que al final de la condicin en el ciclo do-while se debe poner punto y coma (;), a diferencia de los ciclos anteriores.

ejemplo:

Hacer un algoritmo que sume los cinco primeros nmeros naturales.

Anlisis del problema:

Datos de entrada: No hay, ya que los nmero naturales (1, 2, 3, etc) no se ingresan por parte del usuario sino que se deben generar por el algoritmo (no hay una instruccin de lectura).

Datos de salida: La suma de esos primeros cinco nmeros naturales. Definicin de variables: NUM: Variable para guardar el nmero natural generado. SUMA: Variable para guardar la suma de los nmeros naturales.

Algoritmo:

INICIO NUM=0 SUMA=0 MIENTRAS (NUM<5 ) HACER NUM=NUM+1 SUMA=SUMA+NUM FIN_MIENTRAS IMPRIMIR La suma de los cinco primeros nmeros naturales es , SUMA FIN_INICIO

Otra forma de resolver el problema es:

Algoritmo

INICIO NUM=1 SUMA=0 MIENTRAS (NUM<=5) HACER SUMA=SUMA+NUM NUM=NUM+1 FIN_MIENTRAS IMPRIMIR La suma de los cinco primeros nmeros naturales es , SUMA FIN_INICIO