Você está na página 1de 11

5hertz.

com

http://5hertz.com/tutoriales/?p=756

Programacin estructurada.

Si tienes en tu poder un Arduino y te estas iniciando en el mundo de la programacin este tutorial es para
ti. Sabemos que te mueres de ganas por comenzar a hacer programas para tu Arduino, pero que mejor que empezar
a programar con el pie derecho, y ese es el propsito de ste tutorial.
Contenido:
1. Introduccin.
2. Qu es la programacin estructurada?.
3. Estructuras de control.
3.1 Secuencia (o bloque de instrucciones).
3.2 Seleccin.
3.2.1 Estructura If.
3.2.2 If Else.
3.2.3 Estructura Switch.
3.3 Iteracin.
3.3.1 Estructura While.
3.3.2 Estructura Do While.
3.3.3 Estructura For.
4. Instruccines GOTO, BREAK, CONTINUE.
4.1 Instruccin GOTO
4.2 Instruccin BREAK
4.3 Instruccin CONTINUE
5. Comentarios
6. Identacin.

2. QU ES LA PROGRAMACIN ESTRUCTURADA?
A medida que un programa aumenta de tamao, aumenta a su vez la complejidad para leerlo, su tiempo de
desarrollo, de mantenimiento y disminuye su calidad si no se tiene mantiene un correcto orden y estructura del
programa.
Es por esto que surgi un paradigma de programacin llamado Programacin estructurada, que consiste en
mejorar la claridad, calidad y acelerar el tiempo de desarrollo, utilizando nicamente subrutinas y 3 estructuras de
control: Secuencial, de Seleccin (IF y SWITCH) y de Iteracin (ciclos FOR y WHILE), sustituyendo estas 3
estructuras a la instruccin de transferencia incondicional (GOTO), que usndose de manera indiscriminada puede
llevar a un cdigo muy difcil de leer y modificar (El llamado cdigo espagueti).

3. ESTRUCTURAS DE CONTROL

Existen en la mayora de los lenguajes de programacin, 3 estructuras de control de flujo principales, que nos
permiten realizar instrucciones solo al cumplirse ciertas condiciones, o realizarlas durante un tiempo determinado en
que una condicin se cumpla, stas estructuras son las siguientes:

3.1. SECUENCIA (o bloque de instrucciones).


Es la estructura ms bsica y consiste en realizar una secuencia de instrucciones de manera obligatoria, no
permitindonos realmente tomar decisin alguna. El inicio de un bloque de instrucciones se indica con un smbolo {
y el final con un }.

Ejemplo de secuencia de instrucciones en Arduino.

3.2. SELECCIN.
stas estructuras consisten en ejecutar una instruccin (O un bloque de instrucciones) segn el resultado de una
condicin lgica (con resultado cierto o falso) o bien elegir entre un varios grupos de instrucciones si se tiene ms
de 2 respuestas a la condicin.
Para realizar una seleccin se suelen utilizar las estructuras If y else if (Para condiciones verdadero/falso) y la
estructura Switch case para mltiples casos.

3.2.1. Estructura IF.


sta estructura toma como parmetro un valor booleano (verdadero / falso) para tomar una decisin, ste valor
puede ser directamente una variable / constante, o el resultado de operaciones lgicas al momento: igualdad (==),
desigualdad (!=), mayor que (>), menor que (<), etc.

Ejemplo de estructura If en Arduino.

3.2.2. IF.. ELSE


Esta estructura permite extender las capacidades de la estructura If, permitindonos elegir entre 2 instrucciones o
conjuntos de instrucciones a realizar, segn si la condicin toma un valor Verdadero o Falso.

Ejemplo de estructura If .. Else en Arduino.

3.2.3. Estructura SWITCH


La estructura Switch responde a un conjunto de casos, seleccionando alguno de ellos si el caso coincide con el
parmetro de entrada.
Ejemplo de programacin en Arduino:
La estructura Switch hace uso en gran medida
de la instruccin Break, ya que permite salir
inmediatamente de la estructura al terminar el
caso elegido (Si no se usa se continuaran
ejecutando los casos posteriores).
Nota: Esta estructura no funciona para valores
con rangos, solo para valores exactos! Si se
desea tomar decisiones basados en rangos de
valores, es recomendable usar varias
estructuras If.. Else anidadas, como en el
siguiente ejemplo:

Ejemplo de programacin en Arduino de la estructura switch.

Ejemplo de programacion de Arduino con estructuras If.. Else


anidadas.

3.3. ITERACIN
Estas estructuras de control sirven para repetir una instruccin o bloque de instrucciones mientras que se cumpla
una condicin lgica, para lo cual tambin tenemos varias opciones a elegir para distintas situaciones (For, while y
do while).
Cabe destacar que en todas las estructuras de iteracin, se ejecutar todo el bloque de instrucciones dentro de la
estructura si ya comenz a ejecutarse, aunque la variable que controle la condicin lgica cambie dentro del bloque
(Esto porque la condicin solo se verifica una vez en cada iteracin, ya sea al inicio o al final del bloque, segn el
tipo de estructura).

3.3.1. Estructura WHILE


sta es la estructura de iteracin ms sencilla de usar y fcil de entender, toma como parmetro una condicin
lgica, y se ejecuta el cdigo mientras que se satisfaga la condicin.
sta estructura verifica la condicin ANTES de comenzar el bloque de instrucciones, por lo que si no se satisface la
condicin, puede nunca ejecutar el bloque.
Ejemplo:
sta estructura adems te permite generar ciclos infinitos
(muy utilizado al programar microcontroladores), si siempre
cumplimos la condicin lgica de la siguiente manera:

Ejemplo de programacin de Arduino con estructura While.

Ejemplo de programacin de Arduino con ciclos infinitos.

3.3.2. Estructura DO WHILE


Casi idntica a la estructura While, con la diferencia de que la condicin se verifica al final del bloque de
instrucciones, por lo que ste se ejecuta al menos una vez. Esto es muy til si los valores que entrarn en la
condicin lgica deben adquirirse durante el ciclo, y no antes.
Ejemplo:
Los ciclos while y do while tambin
nos permiten hacer delays variables en el
cdigo, hasta que se cumpla cierto
evento como recibir un dato por serial,
que se presione un botn, etc.
Ejemplo:

Ejemplo de programacin de Arduino con estructura Do.. While

Ejemplo de programacion de Arduino con ciclos While y Do While.

3.3.3. Estructura FOR


Esta estructura es distinguida por tener una cantidad explcita de veces que debe ciclarse, as que es til para hacer
acciones repetidas una cantidad conocida de veces para hacer un programa ms corto y entendible.
La estructura For toma 3 parmetros: for(A;B;C){}
Esto significa:
Iniciando en A con incrementos de C y mientras que B se cumpla
Ejemplo:

Con esto damos por terminado el tema de las estructuras de


control (Finally!).

Ejemplo de programacin de Arduino sin estructura For.

Ejemplo de programacion de Arduino con estructura For.

4. INSTRUCCIONES GOTO, BREAK, CONTINUE


Ahora hablaremos de las instrucciones goto, break y continue, las cules pueden ser tus
mejores amigas o tus peores enemigas
dependiendo del modo en que las uses.
Estas instrucciones te permiten cambiar el flujo del programa sin restricciones, por lo que
pueden permitirte lograr saltos en tu programa que de otra manera seran complicados o
requeriran de ms cantidad de cdigo.
IMPORTANTE: deben usarse sabiamente pues el uso indiscriminado de estas instrucciones puede ocasionar un
cdigo ilegible o muy difcil de seguir, pues permiten hacer saltos en el programa en cualquier direccin, hacia
adelante o hacia atrs (a los lados tambin?).

4.1. Instruccin GOTO


El uso o desuso de esta instruccin es el ms debatido, hay mucha gente que invitan a usarlo lo menos posible, y
otros ms que insisten en que cualquier programa que utilice goto puede sustituirse por un programa mejor
estructurado que no lo utilice. sta es la instruccin que te otorga ms libertad, pero con la que ms cuidado hay que
tener, se escribe una etiqueta en cualquier parte del programa, y al usar la instruccin: goto etiqueta el programa
inmediatamente saldr de cualquier estructura de seleccin o iteracin para dirigirse a la etiqueta seleccionada.

Ejemplo de programacin de Arduino con instruccin GOTO.

4.2. Instruccin BREAK


Esta instruccin permite salir de la estructura de control actual en cualquier momento, sin tener que esperar a que
termine el bloque de instrucciones o a que deje de cumplirse la condicin lgica.

Se recomienda usarse al hacer validaciones al inicio de un ciclo, pero no es recomendado usarlo en un punto
intermedio del bloque pues esto provoca que sea ms difcil de leer el cdigo.
Es ampliamente utilizado dentro de Estructuras Switch, para salir de la estructura al terminar un caso sin ejecutar los
siguientes casos.

Ejemplo de programacin de Arduino con instruccin Break.

Como se puede ver, sabemos que si el dato es una letra X termina el ciclo, lo que nos indica que podemos dejar de
leer en este punto el cdigo pues las instrucciones posteriores no se ejecutarn.

4.3. Instruccin CONTINUE


Esta instruccin permite CONTINUAR a la siguiente iteracin de nuestro bloque de cdigo, saltndose el resto del
bloque y pasando directamente al incremento (En el caso de un For) y la condicin lgica.
Es recomendable usarla tambin al inicio del bloque cuando una condicin especfica requiera que se deje de
ejecutar el bloque, pero sin salir del ciclo actual.

Ejemplo de programacin de Arduino con instruccin Continue.

Con esto terminamos la explicacin de las instrucciones de saltos incondicionales, hay que recordar que stas son
herramientas a nuestra disposicin, pero deben usarse solo cuando sean estrictamente necesarias.

5. COMENTARIOS
Los comentarios son texto de ayuda para el programador, pero que no modifican el comportamiento del programa, lo
que nos permite hacer notas y comentarios en distintas partes del cdigo para facilitarnos su lectura la prxima vez
que lo revisemos.
Son muy importantes para documentacin y una lectura fluida del cdigo, adems de para ayudar a otras personas
a entenderlo mejor, pues hay que recordar que muchas veces trabajaremos en programas en equipo y otras
personas adems de nosotros necesitarn entender nuestro cdigo.
Existen 2 tipos de comentarios en C, los de una sola lnea y los multilnea que veremos en los siguientes ejemplos:
Comentarios de una sola lnea (precedidos por //):
Comentarios multilnea (Escritos entre /* y */):

6. IDENTACIN
La identacin es un tipo de notacin secundaria que ayuda a mejorar notablemente la legibilidad del programa,
moviendo bloques de cdigo a la derecha mediante tabulaciones o espacios.

Se suele identar el cdigo que se encuentra dentro de un bloque o una estructura de control para distinguirlo
rpidamente del resto, an sin haber comenzado a leer lo que facilita el seguir el flujo del programa en gran medida.
Comparacin de programas con y sin identacin:
Sin identar:

Y aqu acaba nuestro tutorial sobre programacin estructurada,


esperamos que les sea de utilidad para mejorar sus tcnicas de
programacin y esperen prximamente el nuevo tutorial de
programacin avanzada con Arduino .
Ir al inicio

Ejemplo de programacin de Arduino sin identar.

Ejemplo de programacin con Arduino Identado.

Você também pode gostar