PROGRAMACIÓN I

TRABAJO SEGUNDA UNIDAD.
1.- Conceptos básicos de algoritmo. 2.- Metodología de la programación. 3.- Diagramas de flujo. 4.- Pseudocódigos.

Aldo Axel Alcántar Aguirre 06040718

Página 1

PROGRAMACIÓN I Conceptos básicos de algoritmo.
Podemos encontrar varias definiciones que nos ayudan a comprender el concepto de lo que es un algoritmo, algunas de ellas son:  Diccionario de la Real Academia de la Lengua Española: 1. m. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. 2. m. Método y notación en las distintas formas del cálculo.  Un algoritmo (del latín, dixit algorithmus y éste del matemático persa al-Jwarizmi) es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Es decir, que un algoritmo es un método para encontrar la solución a algún problema. Los algoritmos son el objeto de estudio de la algoritmia y su definición queda formalizada por la Máquina de Turing. Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver problemas matemáticos; al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida ("efecto caja negra"). Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser definido, finito y eficiente. Por eficiente se entiende que las instrucciones encuentran la solución en el menor tiempo posible; finito implica que tiene un determinado número de pasos, es decir, que termina; y definido, que si se sigue el mismo proceso más de una vez se llega siempre al mismo resultado. En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemática, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.  Un algoritmo es un método para resolver un problema, debe presentarse como una secuencia ordenada de instrucciones que siempre se ejecutan en un tiempo finito y con una cantidad de esfuerzo también finito. En un algoritmo siempre debe haber un punto de inicio y un punto de terminación, estos deben ser únicos y deben ser fácilmente identificables. Página 2

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

PROGRAMACIÓN I
 La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

CARACTERÍSTICAS DE UN ALGORITMO Todo algoritmo debe cumplir las siguientes características: A. Debe ser Preciso; Esto es, debe especificar sin ambigüedad el orden en que se deben ejecutar las instrucciones. B. Debe estar Definido; Esto es, cada vez que se ejecute bajo las mismas condiciones, la secuencia de ejecución deberá ser la misma proporcionándonos el mismo resultado. C. Debe ser Finito; Esto es, siempre que sea adecuado se realizarán un número finito de instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.

Metodología de Programación.
Una metodología de programación es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de un programa que resuelve un problema algorítmico. Estas metodologías generalmente se estructuran como una secuencia de pasos que parten de la definición del problema y culminan con un programa que lo resuelve.

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

Página 3

PROGRAMACIÓN I
A continuación se presenta de manera general los pasos de una metodología: El Diálogo Con la cual se busca comprender totalmente el problema a resolver. Con la cual se establece de manera precisa las entradas, salidas y las condiciones que deben cumplir. En esta etapa se construye un algoritmo que cumpla con la especificación. Se traduce el programación. algoritmo a un lenguaje de

La Especificación

Diseño

Codificación Prueba y Verificación

Se realizan pruebas del programa implementado para determinar su validez en la resolución del problema.

Diagramas de flujo.
El diagrama de flujo representa la forma más tradicional y duradera para especificar los detalles algorítmicos de un proceso. Se utiliza principalmente en programación, economía y procesos industriales; estos diagramas utilizan una serie de símbolos con significados especiales. Son la representación gráfica de los pasos de un proceso, que se realiza para entender mejor al mismo. Son modelos tecnológicos utilizados para comprender los rudimentos de la programación lineal. Otra definición del diagrama de flujo es la siguiente: "Es un esquema para representar gráficamente un algoritmo. Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de operación. Para hacer comprensibles los diagramas a todas las personas, los símbolos se someten a una normalización; es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocía sus símbolos, los podía interpretar. La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente."

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

Página 4

PROGRAMACIÓN I
Símbolos estandarizados según ISO 5807: No es indispensable usar un tipo especial de símbolos para crear un de flujo, pero existen algunos ampliamente utilizados por lo que es conocerlos y utilizarlos, ampliando así las posibilidades de crear un más claro y comprensible para crear un proceso lógico y con múltiples adecuadas. diagrama adecuado diagrama opciones

* Flecha. Indica el sentido y trayectoria del proceso de información o tarea. * Rectángulo. Se usa para representar un evento o proceso determinado. Éste es controlado dentro del diagrama de flujo en que se encuentra. Es el símbolo más comúnmente utilizado. Se usa para representar un evento que ocurre de forma automática y del cual generalmente se sigue una secuencia determinada. * Rombo. Se utiliza para representar una condición. Normalmente el flujo de información entra por arriba y sale por un lado si la condición se cumple o sale por el lado opuesto si la condición no se cumple. Lo anterior hace que a partir de éste el proceso tenga dos caminos posibles. * Círculo. Representa un punto de conexión entre procesos. Se utiliza cuando es necesario dividir un diagrama de flujo en varias partes, por ejemplo por razones de espacio o simplicidad. Una referencia debe de darse dentro para distinguirlo de otros. La mayoría de las veces se utilizan números en los mismos. Existen además una variedad de formas especiales para denotar las entradas, las salidas, los almacenamientos, etcétera. De acuerdo al estándar ISO, los símbolos e incluso las flechas deben tener ciertas características para permanecer dentro de sus lineamientos y ser considerados sintácticamente correctos. En el caso del círculo de conexión, se debe procurar usarlo sólo cuando se conecta con un proceso contenido dentro de la misma hoja. Existen también conectores de página, que asemejan a una casita y se utilizan para unir actividades que se encuentran en otra hoja. En los diagramas de flujo se presuponen los siguientes aspectos: * Existe siempre un camino que permite llegar a una solución * Existe un único inicio del proceso * Existe un único punto de fin para el proceso de flujo, salvo del rombo que indica una comparación con dos caminos posibles y además una gran ayuda.

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

Página 5

PROGRAMACIÓN I
A su vez, es importante que al construir diagramas de flujo, se observen las siguientes recomendaciones: * Evitar sumideros infinitos, burbujas que tienen entradas pero no salidas. * Evitar las burbujas de generación espontánea, que tienen salidas sin tener entradas, porque son sumamente sospechosas y generalmente incorrectas. * Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero, pero puede esconder un error aún más grave: a veces el analista no etiqueta un flujo o un proceso porque simplemente no se le ocurre algún nombre razonable.

4. Pseudocódigos.
Un pseudocódigo o falso lenguaje, es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software. No hay ningún compilador o intérprete de pseudocódigo informático (en el caso de que lo hubiera serían los lectores de dicho pseudocódigo informatico, por ej. una idea de un jefe de programación a el staff de programadores), y por tanto no puede ser ejecutado en un ordenador, pero las similitudes con la mayoría de los lenguajes informáticos lo hacen fácilmente convertible. El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas. Su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución a un problema. No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar. Es una herramienta ágil para el estudio y diseño de aplicaciones, veamos un ejemplo, que podríamos definir como: lenguaje imperativo, de tercera generación, según el método de programación estructurada. Pseudocódigo = Pseudo (Supuesto) + Código (Instrucción). Cualquier instrucción puede ser sustituida por una estructura de control. El siguiente ejemplo muestra un pseudocódigo de un método de ordenamiento denominado Ordenamiento de burbuja en el cual aparecen varias estructuras anidadas.

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

Página 6

PROGRAMACIÓN I
Este algoritmo ordena una lista L.

procedimiento // hacer para si es una lista con n elementos//

hasta hacer entonces

mientras Ventajas de utilizar un Pseudocódigo a un diagrama de flujo.
1. Permite representar de forma fácil operaciones repetitivas complejas. 2. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal. 3. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa. 4. En los procesos de aprendizaje de los alumnos de programación, estos 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).

Trabajo Segunda Unidad – Aldo Axel Alcántar Aguirre

Página 7