jueves, 15 de marzo de 2018

LABORATORIO NRO. 2


PROGRAMACION BASICA CON BUCLES DE CONTROL
LAB 2 


Control de flujo I – if, if…else y for

El control de flujo permite variar, en un número ilimitado de ocasiones a lo largo de un programa, el orden “natural” de ejecución del código, omitiendo, ejecutando, o repitiendo sentencias o bloques de sentencias en función de una o varias condiciones. Las instrucciones para el control de flujo son comunes a muchos lenguajes de programación, y son if, if…elseforwhile, y do…while. Además, veremos un par de sentencias capaces de variar el comportamiento de estas instrucciones: break y continue.

if

Realiza una comprobación de una condición. En el caso de que esta condición se cumpla, el código escrito entre llaves se ejecuta. Si, por el contrario, la condición entre paréntesis no se cumple, el código entre llaves es ignorado y el programa sigue ejecutándose normalmente.
Como se puede apreciar en el código anterior, la comparación se realiza con el operador ??, que se ha de sustituir por cualquier operador lógico o cualquier operador de comparación. Hay que tener cuidado con el operador de comparación igual que (==), pues se suele confundir con el operador de asignaciónigual (=). Veámos algunos ejemplos:
Incluso podemos establecer más de una condición:

if…else

Complementa en cierto modo al control de flujo que ofrece la sentencia if, permitiendo ejecutar un bloque de código en el caso de que se cumpla la condición entre paréntesis, y otro bloque de código si la condición no se cumple. Estos dos bloques de código son mutuamente excluyentes, por lo que nunca se podrán ejecutar los dos a la vez.
Podemos anidar varias sentencias if…else, siendo todas ellas, a su vez, mutuamente excluyentes:
Analicemos el código anterior, donde tenemos 4 sentencias mutuamente excluyentes que actuarán como control de flujo en función de distintas condiciones:
delay(100);  se ejecutará si:
  •  x menor o igual que 0.
delay(250);  se ejecutará si:
  • x mayor que 0, derivado de que la anterior condición no se ha cumplido.
  • x menor que 100.
delay(500);  se ejecutará si:
  • x mayor que 0 y  mayor o igual que 100, derivado de que las anteriores condiciones no se han cumplido.
  • x menor o igual que 200.
delay(1000);  se ejecutará si:
  • x mayor que 200, ya que ninguna de las anteriores condiciones se han cumplido.

for

Entramos en la parte del control de flujo relativa a la repetición de un bloque de código siempre que se cumpla una condición. Así pues, siempre que nos encontremos con una instrucción for -también llamado bucle for-, el código encerrado entre llaves se repetirá siempre que se cumpla la condición. Con cada repetición del bloque de código, la condición vuelve a ser evaluada.
Esta estructura está formada siempre por tres campos separados entre sí por un punto y coma. La inicialización se produce una sola vez y sirve para establecer un estado inicial a partir del cual empezar a evaluar la condición. La condición, como ya hemos dicho, se re-evalúa con cada repetición del bucle. Entonces, puede resultar obvio que siempre que se ejecute el bloque de código hay que variar alguna parte de la condición, evitando entrar en el denominado bucle infinito, donde un bloque de código se repite de forma infinita. Con tal fin, tenemos la expresión del tercer campo, una pieza de código que se va a ejecutar después de que lo haga el bloque de código encerrado entre llaves.
En el siguiente ejemplo vemos un caso muy simple pero práctico para imprimir por el puerto serie los números del 0 al 9:
Pero aquí no acaba la cosa. De los 3 campos del bucle for, podemos obviar tantos como queramos, siempre y cuando incluyamos los puntos y coma. Así, podemos hacer la inicialización antes del bucle  (o no hacerla), evaluar la condición dentro del bucle, o modificar la condición dentro del bloque entre llaves.
Nos vemos en la segunda parte de la bilogía destinada al control de flujo, donde explicaremos conceptos tan interesantes como los bucles while y do…while, y las sentencias break continue.

CAPTURAS DEL CURSO VIRTUAL 

Chavez Cheneau David Alonso


Nina Trelles Cristofer


Vídeo de Simulación en clase

Video de Tareas a ser evaluadas


Observaciones:

-Observamos que tenemos que cargar el programa a usar en el comando #include ya que a veces nos puede dar un error y no compilaría el código.

-Existen funcionen que obligatoriamente deben estar incluidas en nuestro comando por ejemplo la función void y la include o int ya que sin estas no estaríamos declarando o dándole la base al programa.

-Observamos que el comando while true se ejecuta para bucles de control ya que gracias a estar el programa puede volver a ejecutarse indefinidamente.

-Nos dimos cuenta de que podemos crear infinidades de programas para diferentes funciones en el ámbito de la electrónica y sus aplicaciones.

-Tuvimos que entender el primer programa para poder crear otro apartir de este ya que los comandos son la parte escensial de esto y deben ser utilizados específicamente.

Conclusiones:

-Utilizamos el microcontrolador en aplicaciones de control electronico.

-Desarrollamos y ejecutamos programas de un microcontrolador PIC.

-Programamos y configuramos interfaces basicas de un microcontrolador.

-Aprendimos a cargar los programas tanto en el entrenador como en la tarjeta real .

-Diferenciamos los dos archivos que nos proporciona el pic compiler cada uno para diferente plataforma.