sábado, 12 de abril de 2014

EVAP-3 BUCLES


Bucles

Definición:

Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.
Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.
El bucle y los condicionales representan la base de la programación estructurada. Es una evolución del código ensamblador, donde la única posibilidad de iterar un código era establecer una sentencia jump (que en los lenguajes de programación fue sustituida por el "ir a" o GOTO).

Ejemplo con un bucle:

          int var=0;

          //Código para el bucle
          int i;

          // este es el Bucle for
          for(i=0;i<10;i+=2)
          {
             var += 2;         
          }


          printf("el resultado es %i", var);

Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle repetir.

Bucles While

El bucle While se utiliza cuando realmente no sabemos el número de iteraciones que se van a realizar en el bucle, sin embargo sí sabemos que mientras se cumpla una determinada condición debemos realizar el bucle. Cuando esa condición ya no se cumpla entonces el bucle finalizará.
En este tipo de bucles no existe ninguna variable que indique el número de vueltas que ha realizado o falta por realizar. El único control que utiliza es una condición que está al comienzo del bucle, mientras esta condición sea cierta se realizan iteraciones y en el momento que sea falsa se finaliza el bucle.

 Repre s entac ión algorítmica de l buc le  While .

La  es t ru ctu ra  gen era l de la  s en ten cia  wh ile es  la  s igu ien te:

(1)mien t ra s  (con dición )
(2) bloqu e de s en ten cia s ;
(3)fin  wh ile.
don de  bloque  de  s ent enc ias es  cu a lqu ier  con ju n to de s en ten cia s  C. La  
es t ru ctu ra  t ien e t res  pa r tes :
(1)  mient ras  condic ión s e repres en ta  por  el mismo s ímbolo qu e u n a  
s en ten cia  if y den t ro de él la  con dición .
(2) cada  s en ten cia  se repres en ta  por  su  s ímbolo.
(3) el fin while s e repres en ta  median te u n  pu n to



Bucles For



Los  bu cles  for s e u t ilizan  cu an do el programa  s abe el n úmero de vu elta s  qu e 
t ien e qu e rea liza r  cu an do en t ra  en  el bu cle. El n úmero de vu elta s  s e pu ede 
in dica r  por  u n a  con s tan te (por  ejemplo "5" vu elta s ) o por  u n a  expres ión  (por  
ejemplo "n " vu elta s  o "n *j" vu elta s ), en  es te ú lt imo ca so cu an do el maqu in is ta  
llega  a l in icio del bu cle la  va r iable debe es ta r  a s ign ada  o la  expres ión  
ca lcu lada . 
Pa ra  lleva r  la  cu en ta  del n úmero de itera cion es  qu e se rea lizan  en  el bu cle se 
u t iliza  u n a  va r iable en tera , de es ta  forma , en  todo momen to s e s abe el 
n úmero de itera ción  s in  má s  qu e obs erva r  el va lor  de la  va r iable, es ta  
va r iable también  s e u t iliza  pa ra  s aber  cu á n do s e debe a caba r  el bu cle.


For en Pseudolenguaje
La principal diferencia de un bucle PARA con respecto a los bucles MIENTRAS Y REPETIR, es que puede determinarse al comienzo del bucle cuántas veces se iterará el mismo, lo cual muchas veces puede redundar en una optimización del código por parte de los compiladores. Los condicionales constituyen junto con los bucles los pilares de la programación estructurada y su uso es una evolución de una sentencia de lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.
El bucle PARA se ha convertido en el bucle más ampliamente utilizado en la programación, ya que con la evolución de los lenguajes la mayoría de las condiciones de fin
MIENTRAS NoFinDeTabla(tabla) HACER
 PróximoRegistro(tabla)
 HacerAlgo(ElementoActual(tabla))
FIN MIENTRAS
Es lo mismo decir:
PARA i=0 a CantidadRegistros(tabla) - 1, PASO = 1
 PróximoRegistro(tabla)
 HacerAlgo(ElementoActual(tabla))
FIN PARA
Otro uso común es utilizar los bucles PARA para recorrer vectores de dos o más dimensiones, en cuyo caso se anidan estas iteraciones.
PSEUDOLENGUAJE
Vector a[3][4][2]. // Estamos indicando un vector de 3 dimensiones y 24 elementos en total.
PARA i:= 0 A 2 HACER
  PARA j:= 0 A 3 HACER
    PARA k:= 0 A 1 HACER
      HacerAlgo(a[i][j][k])
    FIN PARA
  FIN PARA
FIN PARA





Bucle infinito
en programación es un error que consiste en realizar un ciclo que se repite de forma indefinida ya que su condición para finalizar nunca se cumple.


Por definición un bucle debe contener condiciones que establezcan cuándo empieza y cuándo acaba, de manera que, mientras las condiciones se cumplan, ejecute una secuencia de código de manera repetitiva. En el caso de ciclo infinito, como la condición de finalización no se alcanza, el bucle sigue ejecutando el segmento de código indefinidamente.


#include <stdio.h>
 
int main(void) {
        int cont;
        for (cont = 0; cont < 5; cont++) {
               cont = cont%4;
               printf("%d\n",cont);
        }
        return 0;
}
En la sentencia "printf" se muestra en pantalla 0,1,2,3,0,1,2,3,0,.... infinitamente y mientras no llegue a 5 no se cerrará el programa.
Y también podemos crear un ciclo infinito con el for de esta forma:
#include <stdio.h>
 
int main(void) {
        for (;;)
               printf("Bucle infinito\n");
        return 0;
}


Ejemplo:

BUCLE FINITO





Ejemplo de bucle finito, Calcular la Suma


Algoritmo:

Inicio

Declaración

a,b,c

Asignación

Leer variables (a,b)

Calculo

c = a + b

Resultado

Mostrar la Suma ( c )

Fin




No hay comentarios:

Publicar un comentario