algoritmos (ff)

20
Introducción a la programación: Introducción a la programación: Algoritmos

Upload: sergio-eduardo-arboleda-villa

Post on 03-Sep-2015

13 views

Category:

Documents


0 download

DESCRIPTION

Que es un algoritmo

TRANSCRIPT

  • Introduccinalaprogramacin:

    Introduccinalaprogramacin:

    Algoritmos

  • Algoritmo La palabra algoritmo proviene del nombre del matemtico

    persa del siglo IX Muhammad ibn Musa al-Jwarizmi

    Un algoritmo es una secuencia ordenada de pasos, sinambigedades, que permite la resolucin de un problemadado y expresado en lenguaje natural, ej. en castellano.

    Caractersticas de un algoritmo Preciso: Indica el orden de realizacin de cada uno de sus

    pasos. Finito: si se sigue el algoritmo, se debe terminar en algn

    momento, es decir tiene un numero finito de pasos. Definido: si se sigue dos veces el algoritmo con los mismo

    datos de entrada, la salida debe ser la misma.

  • Algoritmoparacambiarunalamparita 1. Retirar la lamparita fundida

    1. Colocar una escalera debajo de la lmpara 2. Subir la escalera 3. Desenroscar la lamparita en el sentido contrario de las agujas del

    reloj 4. Bajar la escalera

    2. Poner una lamparita nueva 1. Tomar la lamparita nueva 2. Subir la escalera 3. Enroscar la lamparita en el sentido de las agujas del reloj 4. Bajar la escalera 5. Retirar la escalera

  • Descripcindealgoritmos Metodologa para describir algoritmos

    Entrada: Informacin dada al algoritmo. Proceso: Operaciones o clculos necesarios para encontrar la solucin

    del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los

    procesos realizados.

    El lenguaje algortmico debe ser independiente de cualquierlenguaje de programacin particular, pero fcilmentetraducible a cada uno de ellos. Alcanzar estos objetivosconducir al empleo de mtodos normalizados para larepresentacin de algoritmos, tales como los diagramas deflujo o el pseudocdigo.

  • Notacionesparadescribiralgoritmos Mtodo informal

    Lenguaje natural Ventajas: comprensible e intuitivo Inconveniente: impreciso

    Mtodos formales Pseudocdigo

    Lenguaje natural limitado y sin ambigedad Diagramas

    Diagramas de flujo u organigramas Utiliza un conjunto de smbolos para representar cada estructura de control y mediante

    lneas de flujo se indica el orden en que se realiza el flujo lgico del algoritmo

    Diagramas de Nassi-Schneiderman o Diagramas N-S Los pasos sucesivos se escriben en cajas con distintas formas segn la estructura de

    control que representen

  • Notacionesparadescribiralgoritmos Variables

    Numricas: Enteros: integer Reales (punto flotante): real

    Alfanumricas: Carcter: char Cadena de caracteres: string

    Lgicas: boolean

    Operaciones: Asignacin: = Aritmticas: +, -, *, /, ^ (potenciacin), MOD (resto divisin entera) Lgicas: >,

  • Algoritmoquecalculelasuperficiedeunrectnguloproporcionndolesubaseyaltura.(Metodologa) Especificaciones de entrada:

    Qu datos son de entrada? Cuntos datos se introducirn? Cuntos son datos de entrada validos?

    Especificaciones de salida: Cules son los datos de salida? Cuntos datos de salida se producirn? Qu formato y precisin tendrn los resultados?

    El algoritmo que podemos utilizar es el siguiente: Paso 1: Entrada desde el teclado de los datos de base y altura Paso 2: Calculo de la superficie, multiplicando la base por la altura Paso 3: Salida por pantalla de base, altura y superficie calculada.

  • Algoritmoparacalcularelcocientedeunadivisinenterasinusarlaoperacindedivisin(LenguajeNatural)

    1. Leer el numerador N y el denominador D 2. Inicializar el cociente a 0 (C 0) 3. Si N=D volver al paso 4 7. Mostrar el valor de C

    10 250

  • Algoritmoparacalcularelcocientedeunadivisinentera(Diagramadeflujo)

  • DiagramasdeFlujoSon grficas detalladas que representan los pasos que se debenejecutar dentro de la computadora a fin de producir los resultadosesperados. Los Diagramas de Flujos son una tcnica estndar pararepresentar algoritmos y son independientes del lenguaje deprogramacin utilizado.

    InicioyTrminodeprogramaosubprograma.

    Asignacin/Accin

    Entradadeinformacin

    Salidadeinformacin

    CicloiterativoMientras

    CiclorepetitivoPara

    Cierredeciclos

    SentidodelFlujo

    Simbologa

    Condicin(Direccindelflujodecontrol)

    MQ

    PARA

    CIERRE

  • DiagramasdeFlujo Todo diagrama de flujo debe tener un inicio y un fin. Las lneas utilizadas para indicar la direccin del diagrama

    deben ser rectas, horizontales o verticales, nunca se debencruzar entre si.

    No deben haber lneas sin conexin a los dems elementosdel diagrama de flujo.

    Un diagrama de flujo se debe construir de arriba hacia abajoy de requerirse de izquierda a derecha.

    La notacin o smbolos utilizados son independientes dellenguaje de programacin utilizado para la elaboracin delprograma o aplicacin.

    No puede llegar mas de una lnea de conexin a un smbolo.

  • EstructurasBsicasdelosDiagramasdeFlujo

    1) Secuencia Simple

    C= (A+B)*(A-B)

    Leer A, B

    Inicio

    Imprimir C

    Final

  • 2) Decisin Simple

    Condicin

    INST

    F

    V

    Forma1 Forma2

    Condicin

    INST 2

    FV

    INST 1

    A = 20

    A = A + 1

    F

    V

    A < 20

    A = C

    FV

    A = B

    Ejemplos:

    El objeto decisin selecciona el flujo a seguir de acuerdo al valor lgico de una condicin. La condicin debe ser siempre una expresin que al ser evaluada de como resultado un valor Lgico.

  • 3) Decisin Mltiple

    INST 1

    Variable

    B

    INST 2 INST 3

    CA

    A = A + 1

    I

    2

    A = A + 2 A = A + 3

    31

  • 4) Iteracin

    El objeto Ciclo Mientras tiene como funcin el ejecutar un bloque de objetos mientras que una condicin sea verdadera. La condicin debe ser siempre una expresin que al ser evaluada de como resultado un valor de tipo Lgico. Si al evaluar la condicin se obtiene el valor F la ejecucin del algoritmo continuar a partir del objeto que sigue al Cierre.

    Condicin

    INST

    A < 10

    A = A + 1

    Ejemplos:

    MQ

    MQ

  • 5) Repeticin

    Ejemplos:

    v = inicio, fin, incremento

    INST

    I = 1, 20, 1

    A = A + 1

    Su funcin es ejecutar un bloque de objetos mientras que la variable contadora no alcance el lmite establecido por el valor final. El contador es siempre una variable de tipo de dato entero. Contiene adems un valor inicial que ser asignado al contador al iniciar la ejecucin del ciclo, un valor final y un valor de incremento. Si el contador excede el valor final, la ejecucin continuar a partir del objeto que sigue al Cierre. En caso contrario, se ejecutar el cuerpo del ciclo y el contador ser incrementado en el valor indicado por el incremento.

    PARA

  • EJEMPLODeterminar si un nmero ingresado por el usuario es par o impar.

    Leer A

    Inicio

    Imprimir par

    Final

    A > 0

    A = A - 2

    A = 0FV

    Imprimir impar

    MQ

  • Se denomina notacin de pseudocdigo a aquella quepermite describir la solucin de un problema en forma dealgoritmo dirigido a una computadora utilizando palabras yfrases del lenguaje natural sujetas a determinadas reglas.

    El pseudocdigo se considera una herramienta para el diseoque permite obtener una solucin mediante aproximacionessucesivas.

    Pseudocdigo

    1. Inicio2. Int a, b, c // declara las variables a, b y c como enteras3. a

  • Algoritmoparacalcularlasumadedosvaloresingresadosporteclado(Pseudocdigo)

    1. Inicio2. Int a, b, c3. Escribir Ingrese un valor entero4. Leer a5. Escribir Ingrese otro valor entero6. Leer b7. c

  • WebgrafayLicencia: Textos tomados, corregidos y modificados de diferentes pginas

    de Internet, tutoriales y documentos. Este documento se encuentra bajo Licencia Creative Commons

    2.5 Argentina (BY-NC-SA), por la cual se permite su exhibicin,distribucin, copia y posibilita hacer obras derivadas a partir dela misma, siempre y cuando se cite la autora del Prof. Matas E.Garca y slo podr distribuir la obra derivada resultante bajouna licencia idntica a sta.

    Autor:

    Matas E. Garca.

    Prof. & Tec. en Informtica [email protected]