ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Logica De Programacion


Enviado por   •  17 de Febrero de 2015  •  2.663 Palabras (11 Páginas)  •  158 Visitas

Página 1 de 11

La Estructura Repetitiva

En C, nosotros disponemos de tres estructuras que nos permiten la definición de ciclos condicionales:

• El ciclo: while

• El ciclo: do - while

• El ciclo: for

Teóricamente, dichas estructuras son intercambiables, es decir, es posible programar cualquier ciclo condicional utilizando cualquiera de las estructuras anteriores indistintamente.

El ciclo while

El enunciado while, ejecuta un bloque de enunciados en tanto una condición específica sea cierta.

while ( <expresión> )

<bloque de instrucciones>

• Mientras que <expresión> tenga un valor diferente de cero, el <bloque de instrucciones> es ejecutado.

• Si <expresión> evalúa a cero, la ejecución del programa continúa con el bloque de instrucciones que esté después del ciclo while.

• El <bloque de instrucciones> es ejecutado cero o más veces.

La parte <expresión> puede ser:

• Una variable de tipo numérico

• Una expresión cuyo resultado sea numérico

La parte <bloque de instrucciones> puede ser:

• Un bloque de instrucciones encerrado entre corchetes

• Una sola instrucción terminada por punto y coma.

Ejemplos:

int i;

/* Despliega números de 0 a 9 */

i = 0;

while (i<10)

printf("%d \n", i++);

/* Despliega números de 1 a 10 */

i = 0;

while (i<10)

printf("%d \n", i++);

En ocasiones queremos solamente esperar cierto acontecimiento, sin tener la necesidad de manejar datos dentro de la estructura. En ese caso, la parte de <bloque de instrucciones>puede ser nulo (notación: ; o {} ). Por ejemplo, la línea siguiente ignora todos los espacios entrados por el teclado y puede ser utilizado para leer el primer caracter significativo:

while (getch()==' ')

;

Una forma óptima de recibir caracteres de la línea de comando utilizando el enunciado while, sería la siguiente:

#include <stio.h>

int main(void)

{

char c;

while ((c=getchar()) != EOF)

putchar(c);

}

Este programa obtiene un caracter, lo asigna a la variable c y revisa si ésta fue un EOF (enter). Si no, el enunciado de salida es ejecutado y el enunciado while se repite. Cuando el EOF es tecleado, el enunciado while y la función main terminan.

El ciclo do - while

La estructura do - while es similar a la estructura while, con la siguiente diferencia:

• while evalúa la condición antes de ejecutar el bloque de instrucciones

• do - while evalúa la condición después de haber ejecutado el bloque de instrucciones. Así, el bloque de instrucciones es ejecutado por lo menos una vez.

do

<bloque de instrucciones>

while ( <expresión> );

El bloque <bloque de instrucciones> es ejecutado al menos una vez y también es ejecutado mientras que la <expresión> sea igual a un valor diferente de cero.

En la práctica, la estructura do - while no es más frecuentemente usada que el ciclo while, sin embargo, en ciertos casos su uso constituye una solución más elegante. Una aplicación típica del ciclo do - while es la captura de datos que deben cumplir con cierta condición:

Ejemplo:

float n;

do{

printf("Teclea un número entre 1 y 10:");

scanf("%f", &n);

}while((n<1) || (n>10));

El enunciado for

El enunciado for es una construcción de un programa de C que ejecuta un bloque de uno o más enunciados una determinada cantidad de veces.

for( <expr1> ; <expr2> ; <expr3> )

<bloque de instrucciones>

• <expr1> es evaluada una vez antes de entrar al ciclo. Es utilizada para inicializar los datos del ciclo.

• <expr2> es evaluada antes de cada ciclo. Es utilizada para decidir si el ciclo continúa o termina.

• <expr3> es evaluada al final de cada ciclo. Es utilizada para asignar el nuevo valor a los datos del ciclo.

Ejemplo:

int i;

for (i=1 ; i<=10 ; i++)

printf("El cuadrado de %d est %d \n", i, i*i);

Anidación de ciclos

El término ciclo anidado se refiere a un ciclo que se encuentra dentro de otro ciclo. C no pone limitación sobre el anidado de ciclos, a excepción de que cada ciclo interno debe estar encerrado completamente en el ciclo externo. Tenemos entonces que en los ciclos anidados, por cada vez que se ejecuta el ciclo externo, se ejecuta completamente el ciclo interno, por lo tanto, el número total de veces que se ejecuta el ciclo es de n x m (suponiendo que m es el contador del ciclo externo y n es el contador del ciclo interno).

for(x=0; x<10, x++)

for(y=5; y>0; y--)

printf("X");

Elección de la estructura repetitiva

Aquí hemos visto tres formas diferentes de programar ciclos (while, do - while, for). Utilizando la estructura que refleje mejor la idea del programa que queremos realizar, debemos respetar siempre las siguientes reglas:

• Si el bloque de instrucciones no debe ejecutarse si la condición es falsa, entonces se debe utilizar while o for.

• Si el bloque de instrucciones debe ser ejecutado por lo menos una vez, entonces se debe utilizar do - while.

• Si el número de ejecuciones del bloque de instrucciones depende de una o de más variables que son modificadas al final de cada repetición, entonces se debe utilizar for.

• Si el bloque de instrucciones debe ser ejecutado mientras que una condición exterior es verdadera (e.g. mientras se estén danto datos desde el teclado) entonces se deberá utilizarwhile.

La elección entre for y while no es más que una cuestión de preferencia o habilidad:

• for nos da la ventaja de reunir las instrucciones que influyen en el número de veces que se repetirá el ciclo en el encabezado de la estructura.

• while tiene la ventaja de que corresponde exactamente a las estructuras de otros lenguajes de programación (while , mientras que).

• for tiene la desventaja de favorecer a la programación de estructuras sobrecargadas y difíciles de entender.

• while tiene la desventaja de llevar, a veces, a estructuras largas, en las que se debe buscar para encontrar las instrucciones que influyen en la condición de repetición.

• Si necesitamos crear una estructura repetitiva en la que sabemos cuál

...

Descargar como (para miembros actualizados) txt (15 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com