Sei sulla pagina 1di 14

CAPITULO 4 En este captulo, voy a hablar de las construcciones y tcnicas de programacin clave para la construccin de iteracin en sus programas

en C. Entonces, cul es la iteracin? Bueno,iteracin es un trmino de lujo para los bucles o loops, o en otras palabras, es la forma queconstruir repeticin de sus programas. Despus de leer este captulo, usted sabr cmo usar estructuras de bucle condiciones para evaluar el nmero de veces que un bucle debe ocurrir. Adems, usted aprender la la teora bsica y los principios de diseo detrs de los algoritmos de bucle utilizando pseudocdigodiagramas de flujo y tcnicas. Tambin aprenders nuevas tcnicas para asignar la manipulacin de los datos y los bucles. En este captulo se refiere especficamente a los siguientes temas: Pseudo cdigo para estructuras de bucle Diagramas de flujo para estructuras de bucle Los operadores continuaron El bucle while El do while El circuito de instrucciones break y continue Las llamadas al sistema

CDIGO DE PSEUDO ESTRUCTURAS DE BUCLE


Antes de discutir la aplicacin de la iteracin, te voy a mostrar algunas sencillas teora detrs de bucles utilizando tcnicas bsicas algoritmo con pseudocdigo . Mirando hacia atrs en el Captulo 3 , " Condiciones ", que ha aprendido que los programadores expresar algoritmos de programacin y constructos clave usando una ombinacin del lenguaje humano -como y la sintaxis de programacin llamado pseudo-cdigo . Como se ha demostrado en esta seccin , pseudo cdigo tambin se puede utilizar para xpresar algoritmos de bucle estructuras . Un nmero de situaciones requiere el uso de tcnicas de bucle , tambin conocidos como iteracin . para ejemplo : Visualizacin de un men de ATM ( cajero automtico ) Jugar a un juego hasta que el juego ha terminado Procesamiento de los datos de nmina de los empleados hasta que se lea el ltimo empleado Clculo de un plan de amortizacin de un prstamo Mantener el aire acondicionado hasta que se cumpla la temperatura deseada Mantener el estado del piloto automtico hasta que un vuelo de la tripulacin , se desactiva Para demostrar estructuras de bucle utilizando pseudocdigo , usar nmina de los empleados de procesamiento datos como un ejemplo .
while end-of-file == false process employee payroll loop

En este pseudo cdigo, primero utilizo una condicin para evaluar si al final del archivo ha sido ledo. Si esta condicin es falsa (no final del archivo), que procesar los datos del empleado. En otras palabras, lo har procesar la nmina de pago hasta el final del archivo es cierto. La condicin de este bucle no puede ser evidente al principio, pero es similar a las condiciones que aprendido en el captulo 3. Esencialmente, la condicin en mi de muestra anterior

contiene la siguiente expresin, que slo puede dar lugar a uno de los dos valores, verdadero o falso.
end-of-file == false

En este punto, usted debe notar un tema recurrente entre las condiciones y bucles. El tema es simple: se trata de las condiciones! Ambas estructuras y condiciones de bucle, tales como la si condicin y estructura de switch, utilizan expresiones condicionales para evaluar si algo sucede. Ahora echa un vistazo al siguiente ejemplo de cdigo seudo que recorra una nmina terico presentar para determinar el tipo de pago de cada empleado (salario o por hora).

A veces quieres condicin del bucle al final, en lugar de al principio. Para demostrarlo, puedo cambiar la ubicacin de la condicin del bucle en el siguiente pseudo cdigo para garantizar que se muestra un men al menos una vez al usuario final....

Al mover la condicin a la parte inferior del bucle, he garantizado que el usuario tendr un Hance para ver el men al menos una vez. Loops pueden contener todo tipo de declaraciones y estructuras de programacin, incluyendo las condiciones y bucles anidados. Bucles anidados proporcionan un interesante estudio de anlisis de algoritmo, ya que pueden ser intensivo en su tiempo de proceso. El siguiente bloque de cdigo seudo demuestra el concepto de bucle anidado.

En el pseudocdigo anterior, lo primero que aparezca un men. Si el usuario selecciona para procesar la nmina, entro en una segunda o interior circular, que procesa la nmina hasta que se alcanza el final del archivo. Una vez que se ha alcanzado el-al final del archivo, la condicin del bucle exterior se evala para determinar si el usuario desea dejar de fumar. Si el usuario sale, el control del programa se termina, de lo contrario, el men se vuelve a mostrar. DIAGRAMAS DE FLUJO PARA ESTRUCTURAS DE BUCLE Aparte de los que ha aprendido en el captulo 3, no se requieren smbolos especiales en diagramas de flujo para representar bucles. De hecho, puede utilizar los mismos smbolos de diagramas de flujo del Captulo 3 para construir estructuras de bucle en diagramas de flujo. Para demostrar lazos en diagramas de flujo, voy a utilizar el pseudo cdigo de la seccin anterior, "Pseudo Cdigo de estructuras de bucle." Especficamente, voy a construir una estructura de bucle simple usando un diagrama de flujo con el siguiente pseudocdigo. El diagrama de flujo resultante se muestra en la Figura 4.1.

En la Figura 4.1, utilizo el smbolo del diamante para representar un bucle. Tal vez se pregunte cmo la diferencia entre los smbolos de diamantes que se utilizan con las condiciones y bucles en un diagrama de flujo. Figura 4.1 tiene la respuesta. Se puede diferenciar entre las condiciones y bucles. En los diagramas de flujo de mirar el flujo del programa. Si usted ve las lneas de conexin que bucle de nuevo a la a partir de una condicin (rombo), usted sabe que la enfermedad representa un bucle. En este ejemplo, el flujo del programa se mueve en un patrn circular. Si la condicin es verdadera, nmina de los empleados se procesa y el control del programa retrocede hasta el comienzo de la original condiciones. Slo si la condicin es falsa no rescindir el flujo del programa. Echa un vistazo a la siguiente serie de pseudo cdigo, que se implementa como un diagrama de flujo en la Figura 4.2.

En la Figura 4.2, se ve que el primer smbolo del diamante es realmente la condicin de un bucle porque el programa flujo vuelve de nuevo a su comienzo. En el interior del bucle, sin embargo, es otro diamante, el cual No es un bucle. (El diamante interior no contiene el control del programa que se repite de nuevo a su origen.) Por el contrario, el flujo del programa del diamante interno se mueve de nuevo a la condicin del bucle sin de su resultado. Vamos a echar otro vistazo a un ejemplo de pseudocdigo anterior (el diagrama de flujo se muestra en Figura 4.3), que se mueve la condicin al final del bucle.

Recuerde: El flujo del programa es la clave. Debido a la condicin del bucle en la figura 4.3 se encuentra en el final del bucle, el primer proceso en el diagrama de flujo se muestra el men. Despus de mostrar el men, se encuentra la condicin del bucle y evaluado. Si la condicin del bucle es cierto, el flujo de programa vuelve a la primera proceso; si es falso, el flujo del programa termina. El componente final de la construccin de algoritmos de bucle con diagramas de flujo est demostrando anidado bucles. Vuelva a mirar el bucle pseudo cdigo anidado en la seccin anterior.

Figura 4.4 implementa el algoritmo de bucle anterior con smbolos de diagramas de flujo y tcnicas.

Aunque la figura 4.4 es mucho ms difcil de seguir que los ejemplos de diagramas de flujo anteriores, usted debe ser capaz de identificar los bucles exteriores e interiores (anidada) mediante la bsqueda de los diamantes con un flujo de programa de bucle de nuevo su condicin. De los cuatro diamantes en la Figura 4.4, puede usted encontrar los dos que son bucles? Una vez ms, para determinar que representa el smbolo de diamante un bucle, simplemente identificar cada diamante que tiene el control del programa de volver a la parte superior de el diamante. Estos son los dos bucles en la Figura 4.4 representadas en pseudo cdigo:

OPERADORES DE CONTINUACIN Ya has aprendido cmo asignar datos a las variables utilizando el operador de asignacin (igual firmar). En esta seccin, voy a hablar de los operadores de incremento y decremento basado en nmeros variables y voy a introducir nuevos operadores para la asignacin de datos a variables. + + OPERADOR El operador + + es til para incrementar las variables con nmeros basados en 1. Para utilizar el operador + +, simplemente poner al lado de una variable, como se muestra a continuacin. iNumberOfPlayers + +; Para demostrar an ms, el estudio de la siguiente bloque de cdigo, que utiliza el operador + + a producir el resultado que se muestra en la Figura 4.5.

El operador de incremento () se puede utilizar de dos maneras: Como se ha demostrado anteriormente, se puede colocar el operador de incremento a la derecha de una variable, como se muestra a continuacin. X++; Esta expresin dice C para utilizar el valor actual de la variable x y se incrementa en 1. El de la variable valor original de 0 (que es lo que inicializa a) y 1 esta en 0, lo que dio como resultado en 1. La otra forma de utilizar el operador de incremento es colocarlo en el frente o hacia la izquierda de la variable, como se demuestra a continuacin.

X ++; Cambio de la ubicacin del operador de incremento (posfijo frente prefijo) con respecto a la variable produce resultados diferentes cuando se evala. Cuando el operador de incremento se sita a la izquierda de la variable, que se incrementar el contenido de la variable en 1 primero, antes de que sea utilizado en otra expresin. Para tener una idea ms clara de la colocacin del operador, estudiar el cdigo siguiente, que genera la salida que se muestra en la Figura 4.6.

En la primera funcin printf () anterior, C procesa la salida de printf () 's primero y luego se incrementala variable y. En la segunda sentencia, incrementos de la variable de C x primera y luego procesos de la funcin printf (), lo que revela un nuevo valor de la variable. Esto todava puede ser un poco confuso, por lo que estudiar el programa siguiente, que demuestra la colocacin de operador de incremento an ms.

El programa anterior producir la siguiente salida.


The value of x is: 2 The value of x is: 4

A pesar de que la mayora, si no todos, los compiladores de C se ejecute el cdigo anterior de la manera que lo hara esperar, debido al cumplimiento de ANSI C la siguiente declaracin puede producir tres resultados diferentes con tres compiladores diferentes: anyFunction(++x, x, x++); El argumento + + x (usando un prefijo de incremento) no se garantiza que hacerse antes de la otros argumentos (x y x + +) son procesadas. En otras palabras, no hay garanta de que cada uno C compilador procesar expresiones secuenciales (una expresin separada por comas) de la misma manera. Echemos un vistazo a otro ejemplo de sufijo y el prefijo utilizando el operador de incremento no en una expresin secuencial (compilador C neutral), la salida se pone de manifiesto en la Figura 4.7.

- -OPERADOR El operador -- es similar al operador de incremento (+ +), pero en lugar de incrementar numberbase dvariables, que disminuye en 1. Tambin, como el operador de incremento, el decremento operador se puede colocar en ambos lados (prefijo y sufijo) de la variable, como se demuestra a continuacin.
--x; x--;

El siguiente bloque de cdigo utiliza el operador de decremento de dos formas para demostrar como base el nmero Las variables se pueden incrementar en 1.

La colocacin del operador de decremento en cada instruccin de impresin se muestra en la salida, como se ilustrado en la Figura 4.8.

I + = operador En esta seccin usted aprender acerca de otro operador que se incrementa una variable en un nuevo valor adems de a s mismo. En primer lugar, evaluar la siguiente expresin que asigna el valor de una variable a otra.
x = y;

La asignacin anterior utiliza un nico signo igual para asignar los datos de la variable y a la x variable. En este caso, x no es igual a Y; ms bien, x se y, o x toma el valor de y. El operador + = tambin se considera un operador de asignacin. C proporciona esta asignacin amigable operador para incrementar las variables de una nueva manera para que una variable es capaz de asumir un nuevo valor ms su valor actual. Para demostrar su utilidad, el estudio de la siguiente lnea de cdigo, que podra ser utilizado para mantener un total acumulado sin la implementacin de nuestra recin encontrada operador + =.

iRunningTotal = iRunningTotal + iNewTotal;

Plug en algunos nmeros para asegurarse de que entiende lo que est sucediendo. Por ejemplo, digamos que la variable iRunningTotal contiene el nmero 100 y el iNewTotal variable contiene el el nmero 50. Con la declaracin anterior, cul sera iRunningTotal despus de la instruccin ejecutado? Si usted dijo 150, ests en lo correcto. El nuevo operador de incremento (+ =) ofrece un atajo para resolver el mismo problema. Tome otra ver la misma expresin, esta vez utilizando el operador + =.
iRunningTotal += iNewTotal;

El uso de este operador permite dejar fuera cdigo innecesario en la asignacin de los contenidos de una variable a otro. Es importante tener en cuenta el orden de operaciones para trabajar con operadores de asignacin. Las operaciones normales como la suma y la multiplicacin tienen precedencia el operador de incremento como se demuestra en el siguiente programa.

Uso de la - = operador de asignacin en el programa anterior produce la siguiente salida.


The value of x is: 3 The value of x is: 4 EL BUCLE WHILE Al igual que todos los bucles se tratan en este captulo, la estructura del bucle while se utiliza para crear iteracinb (loops) en sus programas, como se demuestra en el siguiente programa:

La sentencia while se resume as: while ( x < 10 ) { El bucle while se utiliza una condicin (en este caso x <10) que se evale como verdadera o falsa. como siempre y cuando la condicin es verdadera, se ejecutan los contenidos del bucle. Hablando del bucle de contenidos, los tirantes deben ser utilizados para indicar el comienzo y el final de un bucle con mltiples declaraciones.

Potrebbero piacerti anche