miércoles, 7 de septiembre de 2016

pseudocodigo


PSEUDOCOGIDO
El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.
Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.


APLICACIONES
Generalmente se utiliza pseudocódigo en los libros de texto y publicaciones científicas relacionadas con la informática y la computación numérica, para la descripción de algoritmos, de manera que todos los programadores puedan entenderlo, aunque no todos conozcan el mismo lenguaje de programación. Generalmente, en los libros de texto se adjunta una explicación que acompaña a la introducción y que explica las convenciones particulares en uso. El nivel de detalle del pseudocódigo puede, en algunos casos, acercarse a la de formalizar los idiomas de propósito general.
Un programador que tiene que aplicar un algoritmo específico, sobre todo uno des familiarizado, generalmente comienza con una descripción en pseudocódigo, y luego "traduce" esa descripción en el lenguaje de programación meta y lo modifica para que interactúe correctamente con el resto del programa. Los programadores también pueden iniciar un proyecto describiendo la forma del código en pseudocódigo en el papel antes de escribirlo en su lenguaje de programación, como ocurre en la estructuración de un enfoque de Top-down y Bottom-up arriba hacia abajo.



algoritmo


ALGORITMO
En matemáticas, lógica, ciencias 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-Juarisme ) 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. 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.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.


MEDIOS DE EXPRESIÓN DE UN ALGORITMO
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocodigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
  1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
  2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
  3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.


ALGORITMOS COMO FUNCIONES
Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aún, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera.1 9 11 Como cada secuencia de bits representa a un numero natural (véase sistema binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se pueden calcular. Es decir que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución.
En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada. Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición.
Cuando una función puede ser calculada por medios algorítmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha función es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo.


ANÁLISIS DE ALGORITMOS
Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.
El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computacion y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Lexico, cuyos códigos pueden estar en el idioma del programador.
Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de este con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas.

viernes, 2 de septiembre de 2016

DIAGRAMA DE FLUJO


DIAGRAMA DE FLUJO


Se conoce como diagramas de flujo a aquellos gráficos representativos que se utilizan para esquematizar conceptos vinculados a la programación, la economía, los procesos técnicos y/o tecnológicos, la psicología, la educación y casi cualquier temática de análisis.



Los diagramas de flujo son múltiples y diversos y pueden abordar muchos temas distintos de formas también muy diferentes. En cualquier caso, el aspecto en común entre ellos es la presencia de un vínculo entre los conceptos enunciados y una interrelación entre las ideas. Comúnmente, se utiliza este tipo de diagramas para detallar el proceso de un algoritmo y, así, se vale de distintos símbolos para representar la trayectoria de operaciones precisas a través de flechas. Siempre que existe un diagrama de flujo existe un proceso o sistema que pretende ser graficado a través de símbolos visuales que, en vez de términos verbales, simplifican el funcionamiento de dicho proceso y lo hacen más claro y evidente al lector.

Para que el diagrama de flujo tenga sentido como tal, debe existir un camino hacia una solución que parte de un único inicio y arriba a un único punto final. Con el propósito de desarrollar un diagrama de estas características, se recomienda definir el propósito y destinatario del gráfico, identificar las ideas principales, determinar los límites y alcance del proceso a detallar, establecer el nivel de detalle requerido, identificar acciones, procesos y subprocesos, construir el diagrama y finalmente titularlo con exactitud. Conviene revisar el diagrama para comprobar que cumple su objetivo con claridad y precisión.

Los símbolos más utilizados en los diagramas de flujo son la flecha (que indica sentido y trayectoria), el rectángulo (representa un evento o proceso), el rombo (una condición), el círculo (un punto de conexión) y otros.

Además, existen diversos tipos de diagramas. El vertical, en el que la secuencia o flujo es de arriba hacia abajo; el horizontal, de izquierda a derecha; el panorámico, puede apreciarse de una vez y de forma tanto vertical como horizontal; el arquitectónico, describe una ruta sobre un plano arquitectónico de trabajo.

DIAGRAMAS DE FLUJOS

DIAGRAMA DE FLUJO

Se conoce como diagramas de flujo a aquellos gráficos representativos que se utilizan para esquematizar conceptos vinculados a la programación, la economía, los procesos técnicos y/o tecnológicos, la psicología, la educación y casi cualquier temática de análisis.



Los diagramas de flujo son múltiples y diversos y pueden abordar muchos temas distintos de formas también muy diferentes. En cualquier caso, el aspecto en común entre ellos es la presencia de un vínculo entre los conceptos enunciados y una interrelación entre las ideas. Comúnmente, se utiliza este tipo de diagramas para detallar el proceso de un algoritmo y, así, se vale de distintos símbolos para representar la trayectoria de operaciones precisas a través de flechas. Siempre que existe un diagrama de flujo existe un proceso o sistema que pretende ser graficado a través de símbolos visuales que, en vez de términos verbales, simplifican el funcionamiento de dicho proceso y lo hacen más claro y evidente al lector.

Para que el diagrama de flujo tenga sentido como tal, debe existir un camino hacia una solución que parte de un único inicio y arriba a un único punto final. Con el propósito de desarrollar un diagrama de estas características, se recomienda definir el propósito y destinatario del gráfico, identificar las ideas principales, determinar los límites y alcance del proceso a detallar, establecer el nivel de detalle requerido, identificar acciones, procesos y subprocesos, construir el diagrama y finalmente titularlo con exactitud. Conviene revisar el diagrama para comprobar que cumple su objetivo con claridad y precisión.

Los símbolos más utilizados en los diagramas de flujo son la flecha (que indica sentido y trayectoria), el rectángulo (representa un evento o proceso), el rombo (una condición), el círculo (un punto de conexión) y otros.

Además, existen diversos tipos de diagramas. El vertical, en el que la secuencia o flujo es de arriba hacia abajo; el horizontal, de izquierda a derecha; el panorámico, puede apreciarse de una vez y de forma tanto vertical como horizontal; el arquitectónico, describe una ruta sobre un plano arquitectónico de trabajo.

Un diagrama de flujo es la representación grafica del flujo o secuencia de rutinas simples. Tiene la ventaja de indicar la secuencia del proceso en cuestión, las unidades involucradas y los responsables de su ejecución; en pocas palabras es la representación simbólica o pictórica de un procedimiento administrativo.
Son de gran importancia ya que ayudan a designar cualquier representación grafica de un procedimiento o parte de este; el diagrama de flujo como su nombre lo dice representa el flujo de información de un procedimiento.
Existen diversos métodos que se pueden llevar a cabo en procedimientos de los arreglos (vector), ya sean en forma de ordenación, como de búsqueda.
El método de ordenación es una de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganización un conjunto dado de objetos en una secuencia determinada.
El método de ordenación más conocido y popular entre estudiantes y aprendices de programación, es el método burbuja, por su facilidad de comprensión y programación.
El método de búsqueda es una operación que tiene por objeto la localización de un elemento dentro de la estructura de datos. Encontramos dos técnicas que utiliza este método de acceso, para encontrar elementos dentro de un array: Búsqueda secuencial y búsqueda binaria.
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (Clave). El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero.
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado.
DESARROLLO:
1.     Son de gran importancia ya que ayudan a designar cualquier representación grafica de un procedimiento o parte de este; el diagrama de flujo como su nombre lo indica representa el flujo de información de un procedimiento.
En la actualidad los diagramas de flujo son considerados en la mayoría de las empresas o departamentos de sistemas como uno de los principales instrumentos en la realización de cualquier método o sistema.
Son importantes los diagramas de flujo en toda organización y departamento, ya que este permite la visualización de las actividades innecesarias y verifica si la distribución del trabajo esta equilibrada, es decir, bien distribuida en las personas, sin sobrecargo para algunas mientras otros trabajan con mucha holgura.

Los diagramas de flujo son importantes para el diseñador por que le ayudan en la definición, formulación, análisis y solución del problema. El diagrama de flujo ayuda al análisis a comprender el sistema de información de acuerdo con las operaciones de procedimientos incluidos, le ayudara analizar esas etapas, con el fin tanto de mejorarlas como de incrementar la existencia de sistemas de información para la administración.

diagramas de flujo

QUE ES UN DIAGRAMA DE FLUJOS

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

Beneficios del Diagrama de Flujo

En primer lugar, 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. La diagramación hace posible aprehender ese conjunto e ir más allá, centrándose en aspectos específicos del mismo, apreciando las interrelaciones que forman parte del proceso así como las que se dan con otros procesos y subprocesos.

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.
Constituye el punto de comienzo indispensable para acciones de mejora, rediseño o reingeniería.






Las actividades de análisis y diagramación de procesos ayudan a la organización a comprender cómo se están desarrollando sus procesos y actividades, al tiempo que constituyen el primer paso para mejorar las prácticas organizacionales.
Diagramar es establecer una representación visual de los procesos y subprocesos, lo que permite obtener una información preliminar sobre la amplitud de los mismos, sus tiempos y los de sus actividades.
La representación gráfica facilita el análisis, uno de cuyos objetivos es la descomposición de los procesos de trabajo en actividades discretas. También hace posible la distinción entre aquellas que aportan valor añadido de las que no lo hacen, es decir que no proveen directamente nada al cliente del proceso o al resultado deseado. En este último sentido cabe hacer una precisión, ya que no todas las actividades que no proveen valor añadido han de ser innecesarias; éstas pueden ser actividades de apoyo y ser requeridas para hacer más eficaces las funciones de dirección y control, por razones de seguridad o por motivos normativos y de legislación.
Todas estas razones apuntan hacia el diagrama de flujo de procesos como un instrumento primordial para la correcta gestión de los procesos. La realización de un diagrama de flujo es una actividad íntimamente ligada al hecho de modelar un proceso, que es por sí mismo un componente esencial en la gestión de procesos.
Frecuentemente los sistemas (conjuntos de procesos y subprocesos integrados en una organización) son difíciles de comprender, amplios, complejos y confusos; con múltiples puntos de contacto entre sí y con un buen número de áreas funcionales, departamentos y personas implicadas. Un modelo una representación de una realidad compleja) puede dar la oportunidad de organizar y documentar la información sobre un sistema. El diagrama de flujo de proceso constituye la primera actividad para modelar un proceso.
Pero ¿qué es un modelo? Un modelo es una representación de una realidad compleja. Modelar es desarrollar una descripción lo más exacta posible de un sistema y de las actividades llevadas a cabo en él.
Cuando un proceso es modelado, con ayuda de una representación gráfica (diagrama de flujo de proceso), pueden apreciarse con facilidad las interrelaciones existentes entre distintas actividades, analizar cada actividad, definir los puntos de contacto con otros procesos, así como identificar los subprocesos comprendidos. Al mismo tiempo, los problemas pueden ponerse de manifiesto claramente dando la oportunidad al inicio de acciones de mejora.

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.




diagramas de flujo

Diagramas de flujos

El  manejo u ordenación de un diagrama de flujo muy extenso se puede complicar. La solución a este problema la encontraremos, al menos parcialmente, utilizando el método del “Divide y vencerás”. En nuestro caso a través de lo que se denomina “programación modular”, que estudiaremos más adelante. En relación a los diagramas de flujo viene a ser equivalente a la organización de los planos de un proyecto: igual que tenemos planos de cimentación, planta 1, planta 2, secciones, instalaciones, etc. tendremos diagramas de flujo independientes para entrada de datos, proceso de cálculo número 1, proceso de cálculo número 2, salida de datos, etc.

Para la creación de diagramas de flujo utilizaremos unos símbolos y normas de construcción determinados. En nuestro caso, un modelo simplificado de los estándares internacionales, con el objeto de poder interpretar y ser interpretados por otros programadores.


pseudocodigo


PSEUDOCÓDIGO



Antes de entrar de lleno en el establecimiento del significado del término pseudocódigo, se hace necesario que procedamos a determinar el origen etimológico de las dos palabras que le dan forma:
-Pseudo deriva del griego, de “seudo”, que puede traducirse como “falso”.
-Código, por su parte, emana del latín. En concreto, de “codices, codex” que se empleaban para referirse a los documentos o libros donde los romanos tenían escritas todas y cada una de sus leyes.

Nuestra lengua apela a diversos elementos compositivos para formar palabras. Uno de los más habituales es pseudo o seudo, que permite referirse a que algo no es original, sino que es falso o una imitación.

Un código, por su parte, es una serie de símbolos que forman parte de un sistema y que tienen un determinado valor ya asignado. Los símbolos que se incluyen en un código se combinan respetando reglas y permiten transmitir un mensaje.

Estas definiciones nos permiten comprender qué es un pseudocódigo, una noción que se emplea en el ámbito de la informática. Se trata de un falso lenguaje, ya que apela a las normas de estructura de un lenguaje de programación aunque se encuentra desarrollado para que pueda ser leído por un ser humano y no interpretado por una máquina.
El pseudocódigo, en este sentido, esta considerado como una descripción de un algoritmo que resulta independiente de otros lenguajes de programación. Para que una persona pueda leer e interpretar el código en cuestión, se excluyen diversos datos que no son clave para su entendimiento.

Un pseudocódigo, por lo tanto, se emplea cuando se pretende describir un algoritmo sin la necesidad de difundir cuáles son sus principios básicos. De esta manera, un ser humano encontrará mayores facilidades para comprender el mensaje, a diferencia de lo que ocurriría si estuviese frente a un lenguaje de programación real.

A la hora de llevar a cabo la creación de un pseudocódigo, se hace necesario que su estructura se encuentre compuesta de las siguientes partes:

-Una cabecera, que, a su vez, se debe componer de cinco áreas diferenciadas como son el programa, el módulo, los tipos de datos, las constantes y las variables.


-El cuerpo, que se dividirá en inicio, instrucciones y fin.

Además de todo lo expuesto, se hace importante establecer otra serie de datos de interés relativos a cualquier pseudocódigo:
-Se debe poder ejecutar en cualquier ordenador.


-No tiene nada que ver con el lenguaje de programación que se vaya a poder usar después, es decir, que es independiente respecto al mismo.


-Tiene que ser sencillo de usar y también de manipular.


-Debe permitir que se pueda acometer la descripciones de diversos tipos de instrucciones, tales como de proceso, de control, de descripción, primitivas o compuestas.


-A la hora de poder desarrollar la creación del citado pseudocódigo hay que tener en cuenta que se utilizarán diversos tipos de estructuras de control. En concreto, estas podemos decir que son de tres clases: selectivas, secuenciales e iterativas.

Estas características hacen que los pseudocódigos sean utilizados en obras científicas y educativas y en las etapas previas al desarrollo de un software, a la manera de boceto antes de proceder a la programación.