domingo, 4 de septiembre de 2016


QUE ES UN DIAGRAMA DE FLUJO?

Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso.
El diagrama de flujo ofrece una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las operaciones de interdepartamentales… Facilita también la selección de indicadores de proceso.

ELABORACIÓN DEL DIAGRAMA DE FLUJO
El diagrama de flujo debe ser realizado por un equipo de trabajo en el que las distintas personas aporten, en conjunto, una perspectiva completa del proceso, por lo que con frecuencia este equipo será multifuncional y multijerárquico.
Determinar el proceso a diagramar.
Definir el grado de detalle. El diagrama de flujo del proceso puede mostrar a grandes rasgos la información sobre el flujo general de actividades principales, o ser desarrollado de modo que se incluyan todas las actividades y los puntos de decisión. Un diagrama de flujo detallado dará la oportunidad de llevar realizar un análisis más exhaustivo del proceso.
Identificar la secuencia de pasos del proceso. Situándolos en el orden en que son llevados a cabo.
Construir el diagrama de flujo. Para ello se utilizan determinados símbolos. Cada organización puede definir su propio grupo de símbolos. En la figura anterior se mostraba un conjunto de símbolos habitualmente utilizados. Al respecto cabe decir que en la figura “Conector de proceso” es frecuentemente utilizado un círculo como símbolo. Para la elaboración de un diagrama de flujo, los símbolos estándar han sido normalizados, entro otros, el American National Standars Institute (ANSI).

BENEFICIOS DEL DIAGRAMA DE FLUJO

Facilita la obtención de una visión transparente del proceso, mejorando su comprensión. El conjunto de actividades, relaciones e incidencias de un proceso no es fácilmente discernible a priori.
Permiten definir los límites de un proceso. A veces estos límites no son tan evidentes, no estando definidos los distintos proveedores y clientes (internos y externos) involucrados.
El diagrama de flujo facilita la identificación de los clientes, es más sencillo determinar sus necesidades y ajustar el proceso hacia la satisfacción de sus necesidades y expectativas.
Estimula el pensamiento analítico en el momento de estudiar un proceso, haciendo más factible generar alternativas útiles.
Proporciona un método de comunicación más eficaz, al introducir un lenguaje común, si bien es cierto que para ello se hace preciso la capacitación de aquellas personas que entrarán en contacto con la diagramación.
Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades que componen el proceso.
Igualmente, constituye una excelente referencia para establecer mecanismos de control y medición de los procesos, así como de los objetivos concretos para las distintas operaciones llevadas a cabo.

Facilita el estudio y aplicación de acciones que redunden en la mejora de las variables tiempo y costes de actividad e incidir, por consiguiente, en la mejora de la eficacia y la eficiencia.


EJEMPLOS DE DIAGRAMAS DE FLUJO


SIMBOLOS UTILIZADOS EN LOS DIAGRAMAS DE FLUJO

HISTORIA DE LOS LENGUAJES DE PROGRAMACIÓN

Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica semejante a la de los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.
¿QUE ES UN LENGUAJE DE PROGRAMACIÓN?

Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
·         El desarrollo lógico del programa para resolver un problema en particular.
·         Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
·         Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
·         Prueba y depuración del programa.
·         Desarrollo de la documentación.

CARACTERISTICAS

·         Legibilidad: consiste en si el lenguaje tiene una sintaxis sencilla, fáciles de leer y fáciles de compilar
·         Ortogonalidad: permite combinar en una sola instrucción diversas características del lenguaje, de esta manera se consiguen programas más cortos y más compactos.
·         Naturalidad para la aplicación: consiste en el lenguaje proporcione herramientas adecuadas para el fin para el que está pensado.
·         Soporte a la abstracción: Solucionar tipos de problemas y no problemas concretos. Debe permitir que el programador pueda crear funciones y procedimientos.
·         Entorno de programación: Los lenguajes han de ir acompañados de un entorno donde programar.
·         Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc.


CLASIFICACIÓN DEL LENGUAJE DE PROGRAMACIÓN

Los lenguajes de programación se clasifican por su nivel de abstracción del procesador, en este caso la abstracción es un principio por el cual se aísla toda aquella información que no es resulta relevante a un determinado nivel de conocimiento.

1. Lenguaje de bajo nivel: es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
En general se utiliza este tipo de lenguaje para programar controladores (drivers).

Ventajas

-Mayor adaptación al equipo.
-Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Inconvenientes
-Imposibilidad de escribir código independiente de la máquina.
-Mayor dificultad en la programación y en la comprensión de los programas.
-El programador debe conocer más de un centenar de instrucciones.
-Es necesario conocer en detalle la arquitectura de la máquina.

Características

-Se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle.
-Está orientado a la máquina.

2. Lenguaje de medio nivel es un lenguaje de programación informática como el lenguaje C, que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel.
Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si fueran números (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).
Una de las características más peculiares del lenguaje de programación C; es el uso de "apuntadores", los cuales son muy útiles en la implementación de algoritmos como Listas ligadas, Tablas Hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación (como Java por ejemplo) les suele ser un poco más complicado implementar

3. Los lenguajes de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.
En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.
Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas.

Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.
¿QUE ES UN ALGORITMO?

En matemáticaslógicaciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y éste a su vez del matemático persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

EJEMPLOS DE ALGORITMOS

Algoritmo para escuchar un cd en un reproductor de música.

Paso 1: inicio
Paso 2: encender el reproductor
Paso 3:presionar el botón eject para abrir la unidad de cd
Paso 4. Insertar cd de audio en la unidad
Paso 5. Presionar el botón Eject para cerrar la unidad de cd
Paso 6. Esperar a que la unidad detecte el cd e inicie la reproducción
Paso7. Ajustar el volumen
Paso 8. Escuchar música
Paso 9. Fin
¿QUE ES PSEUDOCODIGOS?


En ciencias de la computación, y análisis numérico el pseudocódigo (o falso lenguaje) es una descripción de un algoritmo informático de programación de alto nivel compacto e informal que utiliza las convenciones estructurales de un lenguaje de programación verdadero, pero que está diseñado para la lectura humana en lugar de la lectura en máquina, y con independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código de lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la codificación efectivamente. No existe una sintaxis estándar para el pseudocódigo, aunque los cuatro programas que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Aunque los diagramas de flujo y UML sean más amplios en el papel, pueden ser considerados como una alternativa gráfica al pseudocódigo.


Un pseudo - codigo es una herramienta que nos permite describir textualmente como se va a comportar un programa, utilizando una mezcla de lenguaje de programación con palabras del lenguaje común.

Ejemplos de algoritmos en Pseudocódigo


En esta sección puede observar ejemplos de pseudocódigos válidos en PSeInt, así como también sus correspondientes diagramas de flujo (en cualquiera de las tres formas soportadas). Recuerde que el lenguaje de PSeInt puede adaptarse a diferentes perfiles. A modo de ejemplo se incluyen los algoritmos para dos perfiles diferentes, uno con reglas flexibles, y otro con reglas estrictas.



  • Suma: Este es el ejemplo más simple. Muestra cómo cargar dos números de dos variables, calcular la suma de los mismos y mostrarla en pantalla.
  • Mayores: Busca los dos mayores de un arreglo de N datos.
  • Coloquial: En este ejemplo se muestran algunas de las variantes que se pueden utilizar con el perfil de lenguaje Flexible para que el pseudocódigo se asemeje más al lenguaje coloquial.
  • Subprocesos: Ejemplo básico que ilustra la sintaxis para declarar nuevas funciones en pseudocódigo.
  • AdivinaNumero: Sencillo juego en el que el usuario debe adivinar un número aleatorio
  • Promedio: Ejemplo básico de uso de un acumulador y la estructura de control Para para calcular el promedio de un conjunto de valores
  • Triangulo: Este algoritmo determina a partir de las longitudes de tres lados de un triángulo si corresponden a un triángulo rectángulo (para utiliza la relación de Pitágoras, tomando los dos lados de menor longitud como catetos), y en caso afirmativo informa el área del mismo. Ejemplo de laestructura Si-Entonces y anidamiento.
  • OrdenaLista: Este ejemplo almacena una lista de nombres en un arreglo y luego los ordena alfabéticamente. El método de ordenamiento es relativamente simple. Para la entrada de datos se utiliza una estructura Mientras, sin saber a priori la cantidad de datos que se ingresarán
  • Modulo: Ejemplo trivial del uso del operador de módulo (MOD o %)
  • Menu: Ejemplo simple de menú de opciones, con las estructuras Repetir-Hasta Que y Segun
  • Digitos: Separa los dígitos de un número entero utilizando el operador módulo
  • Resolvente: Utiliza la fórmula resolvente para determinar las raíces de una ecuación de segundo grado a partir de sus tres coeficientes, y las informa adecuadamente según su tipo (reales iguales, reales distintas, imaginarias)
  • Primos: Calcula iterativamente los N primeros números primos
  • Factorizacion: Ejemplo de algoritmo para descomponer un número en sus factores primos
  • Cadenas: Muestra la utilización de las funciones de cadenas para contar las vocales de una frase
  • Para: En este ejemplo se recorre un arreglo utilizando las tres variantes de la estructura Para
  • Potencia: Ejemplo de una función recursiva para calcular una potencia
  • Promedio2: Ejemplo de cómo crear subprocesos que reciban arregloscomo argumento
  • Misil: Ejemplo de animación con códigos ASCII y la instrucción Esperar
  • Romanos: Muestra como convertir números enteros a notación romana utilizando arreglos
  • Hanoi: Implementa el conocido juego de las torres de Hanoi en pseudocódigo
  • TaTeTi: Algoritmo para el juego del TaTeTi