programación

Estructuras algorítmicas

En todo algoritmo aparecerán las siguientes partes:

  1. Encabezamiento: sirve para identificar dónde empieza la descripción de nuestro algoritmo y para darle un nombre.
  2. Definición de constantes: después del encabezamiento definiremos las constantes que utilizaremos en nuestro algoritmo. En caso de no utilizar constantes no aparecerán.
  3. Definición de tipos: definiremos los tipos de nuestras variables.
  4. Declaración de variables: diremos qué variables utilizaremos en nuestro algoritmo.
  5. Cuerpo del algoritmo: acciones que realizará.
  6. Final del algoritmo: nos sirve para tener en claro donde acaba el algoritmo.

La palabra clave algoritmo se pondrá siempre al principio de un algoritmo; y junto con el nombre del algoritmo conforma el encabezamiento. La palabra clave falgoritmo se pone una vez ya hemos descrito todas las acciones de nuestro algoritmo.

Las constantes siempre tienen que aparecer en medio de las palabras claves const y fconst. De forma que siempre que veamos estas palabras sabremos que todo lo que se encuentra en medio son definiciones de constantes.

Lo mismo sucede con las definiciones de tipos y las palabras clave tipo y ftipo; así como las declaraciones de variables y las palabras clave var y fvar.

robótica

Programación en Arduino

Arduino es una plataforma electrónica de código abierto basada en hardware y software de fácil aprendizaje y utilización.

Las placas Arduino pueden leer entradas (por ejemplo: un dedo en un botón o un mensaje de Twitter) y convertirlo en salidas: activar un motor, encender un LED, etc.

Podemos, por lo tanto, decirle a nuestra placa qué hacer enviando un conjunto de instrucciones al micro-controlador. Para enviar estos mensajes se utiliza un lenguaje de programación y el software Arduino (IDE: Integrated Development Environment , es decir, Entorno de Desarrollo Integrado).

(Descargar IDE: https://www.arduino.cc/en/Main/Software)

Ejemplo: código para sensor y LED

Por lo tanto, al contrario de otras tecnologías como pueda ser un ratón o un teclado, Arduino no es un hardware que se conecte y listo. Requiere de un proceso de configuración y aprendizaje previo y una programación para el micro-controlador.

¿Qué es un IDE o entorno de desarrollo?

Existen muchos entornos de desarrollo para muchos lenguajes de programación. Son herramientas que nos permite programar  y de alguna manera son como procesador de textos. Para escribir un mensaje podemos trabajar con Word o con el Bloc de notas (que es más básico); la finalidad es la misma: escribir mensajes. El IDE de Arduino es algo parecido, la única diferencia es que tiene ciertas herramientas que nos permitirán cargar el programa al micro-controlador.

Con los años, Arduino ha sido el cerebro de miles de proyectos, desde objetos cotidianos hasta instrumentos científicos más complejos. Una comunidad mundial de creadores (estudiantes, aficionados, artistas, programadores y profesionales) se ha reunido en torno a esta plataforma de código abierto; sus contribuciones se han sumado a una increíble cantidad de conocimientos accesibles que puede ser de gran ayuda para principiantes y expertos.

programación

Algoritmos y cambios de estado

El objetivo del algoritmo es resolver un problema. La forma como un algoritmo resuelve un problema forma parte del algoritmo mismo. La resolución del problema se consigue actuando sobre el entorno donde está inmerso el algoritmo.

Por ejemplo, una lavadora dispone de un método para lavar la ropa. Por tanto, podemos decir que las lavadoras disponen de un algoritmo para lavar la ropa.

¿Cuál es el entorno sobre el que actúa la lavadora? De una manera simplificada, podemos decir que es la ropa que se encuentra dentro del tambor de la lavadora.

¿Cómo actúa?

Si le pedimos a la lavadora que lave la ropa, la lavadora seguirá el siguiente proceso:

  • utilizar agua y jabón del cajón.
  • calentar el agua a 40 grados.
  • dar vueltas durante 20 minutos. Es decir, lavar.
  • expulsar el agua.
  • incorporar más agua.
  • dar vueltas durante 10 minutos.
  • dar vueltas durante 10 minutos (aclarado).
  • expulsar el agua.
  • centrifugar

Inicialmente la ropa está sucia y después de que la lavadora aplique el algoritmo de lavar, la ropa está limpia. Es decir, se ha generado un cambio de estado en el entorno sobre el que actúa la lavadora. 

Estado inicial: ropa sucia y estado final: ropa limpia. Por tanto, hemos solucionado el problema: lavar la ropa. La lavadora, para lavar ropa, ejecuta un conjunto de acciones. Cada una de las acciones modifica el estado anterior. Es decir, entre el estado inicial y el estado final pueden darse muchos estados intermedios

Las acciones que ejecuta la lavadora genera cambios de estado en el entorno; cambios que nos acercarán hacia el estado final deseado. 

Por lo tanto, el entorno de un algoritmo es el conjunto de objetos que intervienen en éste. Por otro lado, los únicos objetos que la ejecución de un algoritmo podrá modificar son las variables. Así pues, un proceso -la ejecución de un algoritmo- sólo se puede modificar el entorno cambiando el valor de las variables que contiene. 

programación

Declaración de objetos

Antes de que un algoritmo utilice un objeto, es preciso que éste se haya declarado previamente.

  • Si el objeto es constaste, se debe declarar dentro de un apartado acotado por las palabras clave const … fconst.
  • Si el objeto es variable, se declarará dentro de un apartado acotado por las palabras var… fvar.

En el caso de un objeto constante, tenemos que escribir su nombre, su tipo y el valor constante:

En el caso de un objeto variable, la declaración toma la forma:

En el caso de variables del mismo tipo, se pueden declarar de la siguiente forma:

Existen una serie de palabras que delimitan las partes del algoritmo. Estas palabras se denominan palabras clave, y nos ayudan a identificar fácilmente a qué se corresponde cada elemento. Estas palabras claves son exclusivas del lenguaje algorítmico, por lo tanto, no las podemos usar como nombre de los objetos (constantes o variables). Por ejemplo, no podemos usar var como nombre de constante o variable.

matemática

¿Qué es un número complejo?

Un número complejo, z, está formado por una parte real, a = Re(z), y una parte imaginaria, b = Im(z), y se escribe a + bi , o bien, (a, b).

Un número complejo es una expresión con dos sumandos: uno es un número real y el otro es un número real por una letra i. Por ejemplo, z es un ejemplo de número complejo: z = 3 + 4i

El sumando sin la i se denomina parte real, mientras que el número que acompaña a la i se denomina parte imaginaria del número complejo. En el ejemplo anterior, 3 es la parte real y se indica 3 = Re(z); mientras que 4 es la parte imaginaria y se indica 4 = Im(z).

Un número complejo también puede escribirse en forma de par ordenado; en el ejemplo, el número complejo z = 3 + 4i también puede escribirse como (3, 4), siendo la primera coordenada la parte real, y la segunda coordenada la parte imaginaria.
Así pues, un número complejo es un número formado por una parte real, a, y una parte imaginaria, b, que se escribe: a + bi o bien, (a, b)

Para representar un número complejo pueden utilizarse los ejes coordenados cartesianos, el eje X para la parte real y el eje Y para la parte imaginaria.

Los números complejos son imprescindibles, ya que permiten que cualquier ecuación polinómica tenga solución. Para ello, se requiere que los números reales sean completados con el denominado número i, cuyo valor es i = √-1

programación

Algoritmo: conceptos y definiciones

Un algoritmo se define como una descripción no ambigua y precisa de las acciones que hay que realizar para resolver un problema bien definido en un tiempo finito. Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema.

Para comprender el concepto de algoritmo, es preciso definir los conceptos de entorno, acción, proceso y procesador.

  • Entorno: es el conjunto de objetos necesarios para llevar a cabo una tarea determinada. El estado del entorno es un momento determinado en la descripción del estado de los objetos del entorno en aquel momento concreto. Un algoritmo actúa de manera que hace cambiar progresivamente el estado de su entorno.
  • Acción: es un suceso finito en el tiempo y que tiene un efecto definido y previsto. Una acción puede actuar sobre un entorno y lo puede modificar, es decir, se parte de un estado inicial y se llega a un estado final diferente.
  • Proceso: es la ejecución de una o varias acciones. El algoritmo expresa unas pautas que hay que seguir para llevar a cabo una tarea concreta. El encargado de llevar a cabo el proceso es el procesador.
  • Procesador: es una entidad capaz de comprender y ejecutar eficazmente un algoritmo. El destinatario del algoritmo es el procesador.

La computadora procesará nuestros algoritmos, pero para hacerlo es necesario que entienda nuestras lenguaje algorítmico. Es preciso, por lo tanto, transcribir nuestros algoritmos a un lenguaje de programación, es decir, a un lenguaje capaz de ser comprendido por la computadora. Así pues, un programa es sólo la codificación de un algoritmo en un lenguaje que la computadora entienda.

Lo realmente importante es, entonces, llegar a saber diseñar un algoritmo que resuelva un problema determinado. El hecho de codificarlo para obtener un programa consiste simplemente es realizar una traducción.

programación

Diseño de algoritmos

La etapa de diseño es una de las más costosas en el desarrollo de un programa. Un algoritmo adecuado presentará las siguientes características:

  • Corrección: el algoritmo hace lo que realmente se pide.
  • Inteligibilidad: el algoritmo debe ser claro y fácil de entender.
  • Eficiencia: el algoritmo debe llevar a cabo la tarea que se le ha encargado en tiempo razonable.
  • Generalidad: con pocos cambios, debe poder adaptarse a otros enunciados parecidos.

Cuando diseñemos algoritmos debemos tener siempre presente estos cuatro criterios.

Etapas de diseño de un algoritmo

  1. Entender el problema.
  2. Plantear y planificar la solución.
  3. Formular la solución.
  4. Evaluar la corrección de la solución propuesta.

Entender el problema: en esta etapa hay que saber qué se pide y de qué estado inicial partimos. En esta etapa se pretende ordenar ideas e identificar cuáles son las condiciones iniciales (pre-condición) y a partir de ahí establecer el objetivo que se quiere alcanzar (post-condición). Si no entendemos el problema difícilmente lo podremos resolver. La especificación formal de los algoritmos es una buena herramienta para alcanzar esta etapa rigurosamente y evitar ambigüedades.

Plantear y planificar la solución: en esta etapa hay que dedicar mucho tiempo y concentración.

Formulación de la solución: la notación algorítmica nos permitirá expresar de manera precisa y clara el algoritmo que proponemos. Para hacerlo hay que conocer perfectamente la sintaxis y la semántica de los elementos del lenguaje algorítmico.

Implementación del un programa: una vez que tengamos el diseño del algoritmo, lo codificaremos para obtener un programa. Las etapas de implementación de un programa son: traducir el algoritmo al lenguaje de programación, editar el programa, compilarlo, montarlo y ejecutarlo.

programación

¿Qué es un algoritmo?

En el ámbito de las tecnologías de la información y la comunicación (TICs) una de las tareas más importantes es el desarrollo de programas de computación. Podemos definir al algoritmo como un procedimiento de cálculo que consiste en seguir un conjunto ordenado y finito de instrucciones que conduce a la solución de un problema. El lenguaje algorítmico se trata de un lenguaje rígido con pocas instrucciones que sirven para expresar lo que queremos que la computadora haga.

Por lo tanto, podemos pensar en un algoritmo como una receta o guión que hay que seguir para resolver un problema determinado, normalmente a partir de una información que tenemos de entrada.

Un algoritmo nos indica las acciones que hay que seguir para resolver un problema concreto, pero necesitamos un autómata (procesador) que sea capaz de ejecutarlo en un entorno afectado. Un programa de computación es sólo la codificación de un algoritmo en un lenguaje que la computadora entiende.

Podríamos pensar en una lavadora como un autómata; es una máquina capaz de realizar una tarea de manera autómata, en este caso, lavar la ropa.

Si le pedimos a la lavadora que lave la ropa, la lavadora seguirá el siguiente proceso:

  • utilizar agua y jabón del cajón.
  • calentar el agua a 40 grados.
  • dar vueltas durante 20 minutos. Es decir, lavar.
  • expulsar el agua.
  • incorporar más agua.
  • dar vueltas durante 10 minutos.
  • dar vueltas durante 10 minutos (aclarado).
  • expulsar el agua.
  • centrifugar

Podríamos considerar, por lo tanto, que todo este conjunto de acciones que la lavadora ha llevado a cabo, es el algoritmo diseñado para lavar la ropa.