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




EVAP2-Diagrama de Flujo


DIAGRAMA DE FLUJO



El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía,procesos industriales y psicología cognitiva.

En Lenguaje unificado de modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.

En SYSML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.


Existen tres tipos de diagrama: simple,doble y múltiple


Decisión Simple:

Problema: Como hallar el volumen en un diagrama de decisión simple.




Decisión Doble:

Problema: Dado el sueldo de un profesor de Ciencias de los materiales,realiza un aumento del 18% si el sueldo es menor a 1000 y de un 15% si es menor o igual.




Decisión Múltiple:


Problema: Hallemos el área de cuatro terrenos circulares teniendo en cuenta los siguientes radios: 100,150,16,180.





EVAP1-Algoritmos Cotidianos


Causa Rellena (pollo)
La causa es un plato típico y representativo de la gastronomía peruana, con muchas variaciones en cuanto a sus ingredientes. Es de origen precolombino, pues era preparado antiguamente con papa amarilla, la cual tiene textura suave, con limón y ají triturado.
Elementos para la Causa Rellena (DECLARACIÓN)

  • Papa amarilla
  • Aceite
  • Limón
  • Sal
  • Ají amarillo
  • Mayonesa
  • Lechuga
  • Pollo
  • Huevo
  • Aceituna
  • Perejil
  • Tomate
Ingredientes (ASIGNACIÓN)

  • Papa amarilla  1.5 kg.
  • Aceite  ½  taza
  • Jugo de 3 o 4 limones
  • Ají  amarillo licuado  03
  • Sal  c/n.
  •  Pechuga deshilachada  01
  • Mayonesa   taza y media
  • Huevos sancochados  4 cortados en rodajas
  • Aceituna  08 despepitadas y cortadas en dos
  • Perejil picado  media taza
  • Rodajas finas de 2 tomates
  • Hojas de lechuga.



Preparación (PROCESO)


- Hervir las papas con sal y media tajada de limón, cuidando que no se deshagan al cocinarse.


- Para pasarlas fácilmente por el prensa papas, hay que pelarlas y pasarlas por el mismo lo más caliente que sea posible. Dejar enfriar.


- Cuando la papa prensada está fría agregar sal en cantidad necesaria, el jugo de limón, aceite y el ají licuado, mezclar todos los ingredientes probando el sabor, si se nota que la masa está muy seca agregar aceite y un poco del caldo obtenido de sancochar la pechuga hasta obtener una masa maleable y que no se desmorone al trabajarla.


- En un recipiente extender la mitad de la masa, aparte mezclar el pollo con la mayonesa y extenderlo encima a manera de capa, con la otra mitad cubrir este relleno, prensando un poco al hacerlo. Decorar con huevo aceitunas, tomate, el perejil finamente picado y las hojas de lechuga.


Resultado: Causa Rellena


Algoritmo para preparar la Causa Rellena



Inicio de la Causa Rellena
Declaración: a,d,c,d,e,f,g,h,i,j,k,l
Asignación:

a.Papa amarilla(mediana y sancochadas)
b.Aceite
c.Limón( sumo)
d.Sal
e.Ají amarillo( sin picar)
f.Mayonesa
g.Lechuga(hojas)
h.Pollo( en trozos)
i.Huevo (sancochado y partido en mitad)
j.Aceituna(en mitades)
k.Perejil(picado)
l.Tomate(partido)


Proceso:
a+c+d=PDI(Preparación de Ingredientes)
PDI+h+f+e+b=MI(Mezcla de Ingredientes)
MI+l+k+j+i= Causa Rellena

Resultado: Causa Rellena