02 algoritmos diagramas de flujo y pseudocodigo

33
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo

Upload: manuel-perdomo

Post on 20-Oct-2015

52 views

Category:

Documents


2 download

TRANSCRIPT

  • Escuela Politcnica Superior de IngenieraDepartamento de Ingeniera Informtica

    Fundamentos de la informtica

    2. Algoritmos, diagramas de flujo y pseudocdigo

  • 2Algoritmos, diagramas de flujo y pseudocdigo

    Contenido

    Algoritmos

    Diagramas de flujo

    Pseudocdigo

    Tipos de datos

    Control del flujo

    Estructuras repetitivas

    Operadores aritmticos, lgicos y relacionales

    Arrays y vectores

    Funciones

  • 3Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Algoritmos y programas

    Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema (Diccionario RAE)

    Para programar de forma eficaz es necesario aprender a resolver problemas de una forma sistemtica y rigurosa. Slo se puede llegar a realizar un buen programa si previamente se ha diseado un algoritmo

    Un algoritmo puede ser utilizado para codificar programas en distintos lenguajes

  • 4Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Algoritmos y programas

    Los algoritmos son independientes de los lenguajes de programacin. Un lenguaje de programacin permite expresar un algoritmo para que sea ejecutado por un ordenador

    Un algoritmo describe los datos de entrada, el proceso y los datos de salida

    1. Entrada: Datos que utiliza el algoritmo para su ejecucin

    2. Proceso: Reglas y operaciones del algoritmo para resolver un problema

    3. Salida: Resultados del proceso

  • 5Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Algoritmos y programas

    Un algoritmo debe ser claro y preciso, debe especificar las acciones a realizar y el orden de realizacin

    Un algoritmo debe tener un nmero finito de pasos y, cada vez que se realice con los mismos datos de entrada, debe dar el mismo resultado

  • 6Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Las fases de desarrollo de un programa

    1. Anlisis. Consiste en entender el problema que se quiere resolver Qu debemos hacer?

    2. Diseo. Plan para resolver el problema Cmo hacer?

    3. Programacin. Traduccin de un algoritmo en un programa Java o de cualquier otro lenguaje

    4. Validacin del programa. Evaluacin de los resultados del programa

  • 7Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Constantes y variables

    Las constantes y las variables son valores almacenados en una direccin de memoria. El valor almacenado debe tener un tipo de dato: entero, decimal, carcter, etc. El nombre que se utiliza para hacer referencia a una constante o una variable se denomina identificador

    El valor de una constante no cambia durante la ejecucin de un programa. Por ejemplo pi = 3,1416

    Las variables almacenan los datos utilizados por los programas. El valor de una variable puede cambiar durante la ejecucin de un programa

  • 8Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Identificadores

    Representan las variables de un programa e identifican la direccin de memoria donde se almacena una variable

    El identificador de una variable debe comenzar con una letra. Despus de la primera letra pueden aparecer ms letras o nmeros

    Un identificador no puede tener espacios en blanco

    a1 es un identificador vlido

    1a no es un identificador vlido

  • 9Algoritmos, diagramas de flujo y pseudocdigo

    Algoritmos

    Herramientas para diseo de algoritmos

    Para disear un algoritmo se dispone de dos herramientas: los diagramas de flujo y el pseudocdigo

    Un diagrama de flujo representa grficamente un algoritmo. Muestra la secuencia de operaciones a realizar para resolver un problema. Cada smbolo de un diagrama de flujo representa una accin

    El pseudocdigo es un lenguaje que describe algoritmos con una sintaxis similar a un lenguaje de programacin. Normalmente se escribe en ingls o en espaol. La traduccin de pseudocdigo a un lenguaje de programacin es muy sencilla

  • 10Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Diagramas de flujo y procesos

    Un diagrama de flujo muestra las actividades y las decisiones que definen un proceso

    Un diagrama de flujo tiene un punto de inicio y un nmero finito de puntos de finalizacin. Puede dividirse en carriles para identificar a los responsables de realizar cada actividad

    Un diagrama de flujo es una herramienta til en las fases de anlisis y diseo de software

  • 11Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Simbologa

    El inicio y el final de un diagrama de flujo se representa con un rectngulo con los bordes redondeados

    Los procesos se representan con rectngulos

  • 12Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Simbologa

    Los controles del flujo se representan con rombos. Dentro del rombo se indica la condicin o expresin lgica a evaluar

    condicin

    Actividad 1

    Actividad 3

    Actividad 2

    S

    No

  • 13Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Simbologa

    Para indicar un punto de unin de dos o ms flujos se utiliza un conector

    La entrada y salida de datos se representa con el smbolo

  • 14Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Simbologa

    Para indicar un punto de unin dos o ms flujos de ejecucin se utiliza el flujo se utiliza un join. El flujo no continua hasta que todos los flujos de entrada hayan finalizado

    Para iniciar dos o ms flujos en paralelo se utiliza un fork

  • 15Algoritmos, diagramas de flujo y pseudocdigo

    Diagramas de flujo

    Flujo secuencial Flujo condicionado

    En este caso se ejecutan las actividades 1, 2, 3 y 4, de forma ordenada

    En este caso se ejecuta siempre la actividad 1. Si la condicin es verdadera, entonces se ejecuta la actividad 2, en caso contrario se realiza la actividad 3. Finalmente, se ejecuta la actividad 4

    condicin

    Actividad 1

    Actividad 3

    Actividad 2

    S

    No

    Actividad 4

    Actividad 2

    Actividad 1

    Actividad 3

    Actividad 4

  • 16Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Se denomina pseudocdigo a un lenguaje basado en normas lxicas y gramaticales similares a las utilizadas por los lenguajes de programacin

    El pseudocdigo combina lenguaje coloquial con las normas gramaticales de los lenguajes de programacin

    Es una herramienta til en las fases de anlisis y diseo de software

  • 17Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    El pseudocdigo permite disear algoritmos utilizando frases en lenguaje comn, instrucciones de programacin y palabras clave para definir las estructuras bsicas de control

    Los algoritmos escritos en pseudocdigo se puede convertir fcilmente a cualquier lenguaje de programacin

  • 18Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    El pseudocdigo es una herramienta muy til

    1. Facilita la comprensin y la verificacin del algoritmo a desarrollar

    2. Permite representar de forma fcil operaciones repetitivas complejas

    3. Facilita la traduccin a un lenguaje de programacin

    4. Permite observar claramente los distintos niveles de la estructura de un programa

  • 19Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Pseudocdigo y algoritmos

    1. El algoritmo tiene un nico punto de inicio

    2. El algoritmo tiene un nmero finito de posibles puntos de finalizacin

    3. Es necesario que exista un nmero finito de caminos, entre el punto de inicio y los posibles puntos de finalizacin

  • 20Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Tipos de datos

    Los tipos de datos bsicos utilizados en pseudocdigo son: char, int, float, boolean

    char carcter

    int nmero entero

    float nmero real

    boolean admite un valor falso o verdadero

    Las variables se declaran como se indica a continuacin:

    variable1 = valor

    variable2, variable3, ... , variablen

  • 21Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Instrucciones

    Conjunto de instrucciones que se ejecutan secuencialmente, en su orden natural

    La ejecucin del programa comienza por la primera instruccin y continua sucesivamente con las siguientes en orden secuencial:

    Instruccin1Instruccin2

    Instruccinn

  • 22Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Control del flujo y decisiones

    Para tomar decisiones y controlar el flujo de un algoritmo se puede tomar una decisin simple o mltiple

    La decisin simple puede tomar dos caminos, en funcin de que la condicin sea verdadera o falsa

    La decisin mltiple puede tomar muchos caminos, no necesariamente excluyentes entre s

  • 23Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Control del flujo y decisiones

    Flujo simple

    if (expresin lgica)

    Conjunto de instrucciones1else

    Conjunto de instrucciones2end if

  • 24Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Control del flujo y decisiones

    Flujo mltiple

    switch (expresin lgica)

    : Conjunto de instrucciones1: Conjunto de instrucciones2: Conjunto de instrucciones3

    : Conjunto de instruccionesn

    default: Conjunto de instrucciones alternativas

    end switch

  • 25Algoritmos, diagramas de flujo y pseudocdigo

    Pseucocdigo

    Estructuras iterativas

    Para repetir un conjunto de instrucciones un nmero determinado de veces es necesario utilizar una estructura iterativa

    Existen tres tipos de estructuras iterativas

    for

    while

    do while

  • 26Algoritmos, diagramas de flujo y pseudocdigo

    Pseucocdigo

    Estructuras iterativas

    for (inicio; expresion lgica; incremento)

    Conjunto de instrucciones

    end for

    while (expresin lgica)

    Conjunto de instrucciones

    end while

    do while (expresin lgica)

    Conjunto de instrucciones

    end do

  • 27Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Operadores aritmticos

    + suma

    - resta

    * producto

    / divisin

    ^ potencia

    Div divisin entera (cociente)

    Mod division entera (residuo)

    Sqr cuadrado

    Sqrt raz cuadrada

  • 28Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Operadores relacionales

    Los operadores relacionales evalan una expresin y devuelven un valor falso o verdadero

    < menor que

    > mayor que

    = mayor o igual que

    diferente de

  • 29Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Operadores lgicos

    Los operadores lgicos evalan una expresin lgica devuelven un valor falso o verdadero

    AND A AND B es verdadero si A y B son verdaderos

    OR A OR B es verdadero si A o B son verdaderos

    NOT negacin del operando A, es decir, verdadero si A es falso, falso si A es verdadero

  • 30Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Arrays y vectores

    Un conjunto de datos del mismo tipo se almacena en un array o tabla

    nombre variable[d1, ..., dn]

    En este caso, d1, ..., dn representan las dimensiones del array. Cada dimensin tiene un nmero de localidades determinadas

    Un array de una dimensin se denomina vector

  • 31Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Funciones

    Una funcin es un conjunto de instrucciones que tienen por objeto realizar un clculo. Una funcin siempre devuelve un resultado

    El uso de funciones facilita la estructura y organizacin de un programa

  • 32Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Funciones

    function

    (lista de parmetros)

    begin

    Conjunto de instrucciones

    return (valor de la funcion)

    end function

    donde:

    lista de parmetros: < tipo de dato> variable1

    valor de la funcin: variable | valor

  • 33Algoritmos, diagramas de flujo y pseudocdigo

    Pseudocdigo

    Funciones

    Existen funciones que se especifican a partir de su propia definicin. Este tipo de funciones se denominan recurrentes o recursivas

    Una funcin recursiva se define en trminos de s misma, siempre que exista una solucin simple conocida

    El factorial de un nmero es un ejemplo de una definicin recursiva

    Si n=0, entonces Factorial(0) = 1Si n>0, entonces Factorial(n) = n * Factorial(n-1)

    Factorial(n)={