martes, 3 de junio de 2014

Bloque1

¿Qué es un algoritmo?

En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi) 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 lineal de ecuaciones.

 

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.

  1. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.

  1. 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.




 ¿Qué es un diagrama de flujo?

El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.

En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.

En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.

Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.

Las siguientes son acciones previas a la realización del diagrama de flujo:

  • Identificar las ideas principales al ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos interrelacionados, así como las terceras partes interesadas.

  • Definir qué se espera obtener del diagrama de flujo.

  • Identificar quién lo empleará y cómo.

  • Establecer el nivel de detalle requerido.

  • Determinar los límites del proceso a describir.

Los pasos a seguir para construir el diagrama de flujo son:

  • Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.

  • Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.

  • Si el nivel de detalle definido incluye actividades menores, listarlas también.

  • Identificar y listar los puntos de decisión.

  • Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.

  • Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

  • Óvalo o Elipse: Inicio y término (Abre y cierra el diagrama).

  • Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).

  • Rombo: Decisión (Formula una pregunta o cuestión).

  • Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).

  • Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).

  • Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).

    ¿Qué es una corrida de escritorio?

    La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo.

    Básicamente, una prueba de escritorio es una ejecución ‘a mano’ del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.

    consiste en dar valores a las variables que hemos definido y que siguen el flujo del programa para comprobar si al final el resultado es el acertado

    es seguir uno a uno los pasos verificando que se llegue siempre a resultados validos si nos encontramos con complicaciones es necesaario revisar nuestra propuesta de solucion. esto quiere decir que algo hicimos mal y en caso de encontrar errores en necesario revisar el proceso desde su definicion.

     ¿Qué es un pseudocodigo?

    El pseudocódigo (o falso lenguaje) es una descripción de alto nivel compacta e informal del principio operativo de un programa informático u otro algoritmo.

    Utiliza las convenciones estructurales de un lenguaje de programación real, pero está diseñado para la lectura humana en lugar de la lectura mediante 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 del 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 efectiva codificación.

    No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's 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. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.

    Las principales características de este lenguaje son:

  • Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX, Maruga Script, Seudocódigo o PSeInt. Otros Ides de consideración son Inter-P y Algor)

  • Es una forma de representación sencilla de utilizar y de manipular.

  • Facilita el paso del programa al lenguaje de programación.

  • Es independiente del lenguaje de programación que se vaya a utilizar.

  • Es un método que facilita la programación y solución al algoritmo del programa.

Todo documento en pseudocódigo debe permitir la descripción de:

  1. Instrucciones primitivas.

  2. Instrucciones de proceso....

  3. Instrucciones de control.

  4. Instrucciones compuestas.

  5. Instrucciones de descripción.

Estructura a seguir en su realización:

  1. Cabecera.

    1. Programa.

    2. Módulo.

    3. Tipos de datos.

    4. Constantes.

    5. Variables.

  2. Cuerpo.

    1. Inicio.

    2. Instrucciones.

    3. Fin.

Los pseudocódigos presentan los siguientes beneficios:

  1. Ocupan mucho menos espacio en el desarrollo del problema.

  2. Permite representar de forma fácil operaciones repetitivas complejas.

  3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.

  4. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa.

  5. En los procesos de aprendizaje de los alumnos de programación, éstos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo).

  6. Mejora la claridad de la solución de un problema.


No hay comentarios.:

Publicar un comentario