En otro artículos como el de Introducción al Lenguaje Swift en castellano he hablado de un lenguaje de programación específico, en este caso el desarrollado por Apple. Como no se si sabéis, los lenguajes de programación sirven para construir programas de ordenador usando un lenguaje similar al lenguaje humano.
Después otro «programa» se encargará de transformarlo para que le sea comprensible a dicho ordenador. Si queremos llegar a ser un buen programador lo primero que hemos de aprender en facultades, escuelas técnicas, institutos de formación profesional o en blog como este, es a crear algoritmos. Seguro que si sois nuevos en la materia, os estaréis preguntando qué es un algoritmo por lo que en este artículo pretendo dar respuesta sencilla a esa pregunta.
Podríamos decir que un algoritmo es una serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso, y que conducen a la resolución de un problema. En otras palabras, un algoritmo es un conjunto de reglas para resolver una cierta clase de problema o una forma de describir la solución a un problema. En nuestra vida cotidiana, los algoritmos nos rodean constantemente sin que nos demos cuenta. Por ejemplo, si pinchamos una rueda de nuestro coche ¿sabéis cómo sería el algoritmo para cambiarla por una nueva?
Seguro que vuestra respuesta es que si pero antes de ver como realizar el algoritmo, lo primero que hacemos es formularnos la pregunta de ¿qué necesitamos? La respuesta es bien fácil:
- Una rueda de repuesto
- Una llave para los tornillos de la rueda
- Un «típico» gato elevador
Algoritmo cambiar rueda
Ya tenemos todo lo necesario verdad, ahora nos surgiría una nueva pregunta ¿cuál es el algoritmo o pasos para cambiar la rueda pinchada por la rueda de repuesto? Pues bien empecemos por el principio enumerando todos los pasos para llevar a buen puerto la operación de reemplazo:
- Inicio
- Coger el gato
- Levantar el coche con el gato
- Aflojar tornillos de las llantas
- Sacar los tornillos de las llantas
- Quitar la rueda pinchada
- Poner la rueda de repuesto
- Poner los tornillos
- Apretar los tornillos
- Bajar el gato
- Fin
Para que os hagáis una idea, todos los algoritmos tienen una serie de características comunes inherentes a los mismos y que tienen que cumplir de forma obligatoria para que se pueda considerar que es un algoritmo propiamente dicho. Estas son las siguientes:
- Debe ser preciso. Indicar el orden de realización de cada paso. Esto es muy importante ya que seguro que a nadie se le ocurre intentar quitar la rueda pinchada sin quitar antes los tornillos que la están sujetando.
- Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Por mil y una veces que sustituyéramos una rueda pinchada con el algoritmo descrito, siempre obtendríamos en mismo resultado: la reparación de la rueda.
- Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe tener un número finito de pasos. Si el algoritmo de la rueda nunca terminara no podríamos decir que es un algoritmo ya que nunca nos ayudaría a resolver nuestro problema.
La definición de un algoritmo debe describir tres partes : Entrada, Proceso y Salida. En el algoritmo que acabamos de ver, ¿cuáles son la Entrada, el Proceso y la Salida?
- Entrada: Las herramientas y rueda de repuesto empleadas
- Proceso: La sustitución de la rueda pinchada por la rueda de repuesto
- Salida: La rueda reparada para que podamos concluir nuestro viaje
Una vez que tenemos diseñado nuestro algoritmo, en el caso de un programa informático, tendríamos que escribirlo en un lenguaje de programación para después traducirlo de forma que el ordenador se enterase de cómo procesarlo correctamente. Antes de acabar el artículo, os propongo un ejercicio: Leer los siguientes artículos relacionados con objetos y clases:
- Introducción a la Programación Orientada a Objetos
- El concepto de clase en POO
- Crear objetos usando el lenguaje Swift
- Clases y estructuras en el lenguaje Swift
Una vez leídos, modelar los objetos que nos ayudarían a resolver el algoritmo de la rueda pinchada usando el lenguaje de programación Swift y mandarme la solución en formato Microsoft Word o Pdf vía email para ver si habéis captado la idea de algoritmo. Nos leemos en el próximo!
Adios, os!