domingo, 26 de abril de 2015

 SIMBOLOGÍA

Existen diferentes símbolos utilizados en la diagramación, de los cuales podemos destacar cinco

símbolos básicos con los cuales se puede representar prácticamente cualquier algoritmo informático

por muy complejo que éste sea.

Estos símbolos son los siguientes:


En la diagramación, también contamos con una serie de símbolos auxiliares que no intervienen en el proceso del algoritmo, pero que pueden ser útiles para ayudarnos a dar claridad a nuestros  diagramas, algunos de ellos son los siguientes:
CONSIDERACIONES

Aprovecharemos el diagrama anterior, para mencionar algunas consideraciones importantes:

· El diagrama puede desarrollarse en cualquier dirección, sin embargo es aconsejable que el desarrollo se realice en lo posible de arriba hacia abajo y de izquierda a derecha.

· Debe procurarse que el símbolo de inicio se encuentre en la parte superior o superior izquierda del diagrama.

· El final se debe procurar que quede en la parte inferior o inferior-derecha. Si esto no es
Posible, debe separarse ligeramente del cuerpo del diagrama a fin de que sea fácilmente
Identificado.

· Se pueden utilizar palabras para especificar la acción dentro del símbolo como es el caso de “Introducir A y B”, aunque esto es innecesario ya que con poner simplemente “A, B” se
Sobreentiende. Es el mismo caso de poner “Comparar si A>B” o simplemente “A > B”.

· Es válido hacer que dos flechas apunten a un símbolo, aunque es más estético hacer que la segunda flecha apunte a la primera que si está apuntando al símbolo, tal como se hace en el Caso del “FIN”

. SÍMBOLOS COMPUESTOS

En diagramación se acostumbra también el uso de símbolos compuestos que nos reduzcan la complejidad y el tamaño del diagrama. Estos símbolos representan estructuras de uso común y que ya están adecuadamente definidos. Este es el caso del símbolo de “Ciclo automático” que es como sigue:


El símbolo del Ciclo automático representa al ciclo “for” de la mayoría de los lenguajes.
Para entender mejor este símbolo, veamos el siguiente ejemplo

sábado, 25 de abril de 2015






El algoritmo es algo que forma parte de nuestro día a día, en realidad es un concepto tan común que resulta hasta raro que, muchos de nosotros, solo lo conozcamos cuando nos ponemos a estudiar programación.
Comencemos leyendo la definición formal a ver si lo entendemos bien:
Algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solución a un problema.
Como detalle fíjate que no necesitas acudir a un libro de programación para conocer la palabra algoritmo, pues como decía es algo que cualquiera de nosotros hace en la vida normal. Ésta que está aquí es la definición de la Real Academia de la Lengua.
En otras palabras un algoritmo es la descripción de un proceso o una serie de pasos que tenemos que dar para conseguir alguna cosa.
Existen algoritmos en nuestro día a día a montones, de hecho nos pasamos el día ejecutando algoritmos 
→Preparar café 
→Tomar un baño 
→Hacer la cama 
Son operaciones tan habituales y tan simples que casi siempre obviamos que exista un algoritmo definido para ello. Aunque no todos los algoritmos son tan sencillos.
Un algoritmo se define mediante la especificación de una serie de pasos, como en este ejemplo. Beber un vaso de agua: 

  • Saco un vaso del armario 
  • Saco la botella de agua de la nevera 
  • Lleno el vaso 
  • Aproximo el vaso a mi boca 
  • Trago el líquido

Qué es un programa

Ahora, para ahondar en el concepto de algoritmo, debe quedar claro que éste es un paso previo a escribir código. Para escribir un programa antes debo pensar en el algoritmo que resuelve mi necesidad. El programa viene después del algoritmo: es la expresión de un algoritmo en un lenguaje de programación.

Cómo se expresan algoritmos

Existen muchos modos de expresar algoritmos. Por ejemplo con palabras. Ya hemos expresado un algoritmo con palabras antes cuando pensamos en las acciones de beber un vaso de agua. Pero también se pueden expresar con:
Aunque los diagramas de flujo o el pseudocódigo son útiles porque nos permiten un paso intermedio entre los algoritmos expresados por palabras y el código fuente de los programas, no los vamos a ver de momento. Dado que todos sabemos escribir, por ahora vamos a limitarnos a escribir los algoritmos con palabras.

Ejemplos de algoritmos y programas

En este punto en el vídeo se vieron un par de ejemplos de algoritmos expresados con palabras y sus correspondientes programas en el lenguaje Javascript.
  • Perímetro de un rectángulo 
  • Media
En resumen "Programar es escribir algoritmos en un lenguaje que entienda la máquina" ¿Qué os parece esa frase? ¿Opináis que es correcta?
Estos programas que hemos visto sin duda ilustran bien esa frase, pero pensar que cuando hacéis un programa grande (un juego, un programa de gestión), entran en juego cientos o miles de algoritmos distintos y como programadores debemos no solo escribirlos, sino hacer que se comporten bien los unos con los otros, se coordinen, comuniquen, compartan información, respondan a las acciones del usuario, etc, etc.
Por tanto, podríamos decir que programar es mucho más que escribir algoritmos en un lenguaje de programación.

Fases para resolver un problema

Ya las hemos visto de manera implícita en el bloque anterior de esta clase, pero en resumen: Partimos de un problema, diseñamos un algoritmo y escribimos un programa. Pero en esas fases se encuentran implícitas muchas acciones que deben ser realizadas. Por ejemplo:
1. Identificación del problema 
2. Análisis 
3. Diseño del algoritmo 
4. Programación del algoritmo 
5. Ejecución y validación del funcionamiento
Muchos de nosotros pensamos que programar es simplemente escribir el código en un lenguaje de programación (paso marcado con 4 en el listado anterior), pero existen diversos pasos antes y después de codificar. Programar abarcan todos esos pasos.

Partes de un algoritmo

En esta parte de la clase se explicaron las partes de un algoritmo, junto con diversos ejemplos para tratar de identificarlas ya en el código Javascript.
  • Entrada de datos 
  • Procesamiento de los datos 
  • Salida de los resultados

Características de un algoritmo

Estas son las características que debe tener un algoritmo. Algunas de ellas ya las hemos mencionado. Te darás cuenta que la mayoría son de sentido común.
Estar bien detallado: 
No nos olvidemos que a los ordenadores hay que darles todos los pasos, uno a uno, sin olvidar u obviar ninguno de ellos, porque por si solos no son capaces de entender nada.
Estar bien ordenado: 
Lógicamente, un algoritmo tiene unos pasos a ser realizados en una secuencia. Pensemos en el algoritmo de beber agua. ¿Qué os parece si después de sacar el vaso del armario de la cocina me lo llevo directamente a la boca para beber?
Tener un principio y un fin: 
Tenemos que empezar por algún lugar y terminar en un número finito de pasos, si no, no es un algoritmo. Si nunca acaba nuestro proceso soy incapaz de llegar al final y por tanto no obtengo el resultado deseado, con lo que no se cumple la definición de algoritmo.
Ser fiable: 
Este punto incluye muchas cosas, como que el algoritmo resuelva los problemas sin errores y también que una misma entrada de datos produzca una misma salida. Si estamos haciendo el algoritmo del área de un cuadrado y para un cuadrado de 2 metros una vez calculamos el área como 2 metros cuadrados y otras veces como 4 metros cuadrados, habrá algo que hemos hecho mal.