Clase 2 de Tecnicas - ALGORITMOS

  • Upload
    mauclay

  • View
    224

  • Download
    2

Embed Size (px)

Citation preview

  • 7/24/2019 Clase 2 de Tecnicas - ALGORITMOS

    1/24

    Universidad Nacional de LansCampus VirtualCarrera: Licenciatura en Informtica EducativaMateria: Tcnicas de Programacin

    Clase 2ALGORITMOS

    Un algoritmoes un mtodo para resolver un problema.

    Es un conjunto de instrucciones ordenadas que tienen un tiempo de ejecucin y que parala cual consume una serie de recursos identificados.

    Todo algoritmotiene un punto de inicio y un punto de terminacin.

    Los cuales son nicos y claramente identificables.Todo algoritmo debe cumplir las siguientes caractersticas

    Ser preciso esto significa que los pasos u operaciones del algoritmo debendesarrollarse en un orden estricto.

    Ser definido. el algoritmo se desarrolla como paso fundamental para desarrollar unprograma! el computador solo desarrollar" las tareas programadas! con los datossuministrados# no puede improvisar ni inventa el dato que necesite para reali$ar un

    paso. %or eso! cuantas veces se ejecute el algoritmo! el resultado dependeestrictamente de los datos suministrados! de &ec&o si se ejecuta con un mismoconjunto de datos de entrada! el resultado ser" siempre el mismo.

    Ser finito el nmero de pasos de un algoritmo! por grande y complicado que sea elproblema que soluciona! debe ser limitado. Todo algoritmo incluye los pasos inicio yfin.

    Presentacin formal el algoritmo debe estar e'presado en alguna de las formascomnmente aceptadas. Las formas de presentacin de algoritmos son el

    pseudocdigo! diagrama de flujo y diagramas de (assi)*c&neiderman! entre otras.

    Correccin el algoritmo debe satisfacer la necesidad o solucionar el problema parael cual fue dise+ado. %ara garanti$ar que el algoritmo logre el objetivo! es necesario

    ponerlo a prueba# a esto se le llama verificacin o prueba de escritorio.

    Eficiencia En cuanto menos recursos requiere ser" m"s eficiente el algoritmo. Esteconcepto se aplica! entre otros puntos! las formas de almacenar los datos! de leerlos!etc.

    ,

  • 7/24/2019 Clase 2 de Tecnicas - ALGORITMOS

    2/24

    Universidad Nacional de LansCampus VirtualCarrera: Licenciatura en Informtica EducativaMateria: Tcnicas de Programacin

    Ejemplos de algoritmos son

    *upongamos que tenemos un problema en el auto! que debemos &acer-.ebemos encontrar lo que anda mal /resolver el problema0

    %ara lo cual! primeramente queremos ver que puede &acer el auto y que no puede &acer/estado inicial0

    %ara eso &acemos diferentes operaciones! ej. amos arranque! prendemos las luces /envarios casos aplicamos algunos golpes sobre el motor0.

    *i estamos en un mec"nico! nos preguntara si sentimos algo raro cuando empe$ la falla!si cambiamos algo! etc. 1ntentara reali$ar algunos controles /aceite! presin de loscilindros! carga de la batera! etc0.

    Es decir !tanto nosotros como el mec"nico !intentamos obtener datos que nos permitanllegar a un diagnstico! y finalmente saber la accin a seguir! el tiempo de reparacin yel costo.

    %or lo que el algoritmo que reali$o fue el siguiente

    o 2ecabar la informacin inicial.

    o iagnosticar /ejecutar el algoritmo0

    o 1nformar los resultados obtenidos.

    %or ejemplo! el mismo concepto es aplicable a

    1nstrucciones para montar una bicicleta. 3acer una receta de cocina. 4btener el "rea de un tri"ngulo.

    En todos ellos es conveniente responder a las siguientes preguntas

    o 56u entradas se requieren-

    o 57u"l es la salida deseada-o 56u mtodo produce la salida deseada-

    8

  • 7/24/2019 Clase 2 de Tecnicas - ALGORITMOS

    3/24

    Universidad Nacional de LansCampus VirtualCarrera: Licenciatura en Informtica EducativaMateria: Tcnicas de Programacin

    !ise"o del Algoritmo

    Un algoritmo recibe datos de entrada y devuelve datos de

    salida.Esta 9transformacin: o 9generacin: de nuevos datos se conoce como

    9procesamiento de la informacin:%ara procesar la informacin! es muy importante el tener desarrollado los

    algoritmos pertinentes! pero veremos mas adelante que no son ellos solos losinvolucrados en este procesamiento.

    Los mtodos m"s eficaces para el proceso de dise+o se basan en el conocidodivide y vencer"s.

    Es decir! la resolucin de un problema complejo se reali$a dividiendo elproblema en subproblemas y a continuacin dividir estos subproblemas en otros de nivelmas bajo o sea m"s simples &asta que pueda ser implementada una solucin en lacomputadora y s sucesivamente /de lo global a lo concreto0! es lo que se denominadise+o descendente /Top-Downdesign0 o modular.

    Una ve$ reali$ado un primer acercamiento al problema! este se &a de ampliar!/romper el problema en cada etapa y e'presar cada paso en forma mas detallada0 lo quedenominamos como refinamiento del algoritmo /Stepwise Refinement0

    7ada subproblema es resuelto mediante un mdulo /subprograma0! que tiene unsolo punto de entrada y un solo punto de salida.

    7ualquier programa bien dise+ado consta de un programa principal /el mdulode nivel mas alto0 que llama a subprogramas /mdulos de nivel mas bajo0 que a su ve$

    puede llamar a otros subprogramas.

    Los programas estructurados de esta forma se dicen que tienen un dise+omodular y el mtodo de romper el programa en mdulos m"s peque+os se llama

    programacin modular.

    Los mdulos pueden ser planeados! codificados! comprobados y depurados

    independientemente /incluso por diferentes programadores0 y a continuacincombinarlos entre si.

    El proceso implica la ejecucin de los siguientes pasos &asta que el programa se termina.

    ,. %rogramar el mdulo.8. 7omprobar el mdulo.;. *i es necesario! depurar el mdulo.

  • 7/24/2019 Clase 2 de Tecnicas - ALGORITMOS

    4/24

    Universidad Nacional de LansCampus VirtualCarrera: Licenciatura en Informtica EducativaMateria: Tcnicas de Programacin

    El dise+o del algoritmo es independiente del lenguaje deprogramacin en el que se vaya a codificar posteriormente.

    urante toda esta materia evitaremos focali$arnos en un lenguaje y de igual manera todoejemplo o ejercicio que les pida deber" ser resuelto con las instrucciones propias! queveamos dentro de algoritmos.

    %or ejemplo 2esumiendo todo lo visto &asta a&ora! en dise+o top=do>n! modular seria

    Es decir que resolver un problema! implica la resolucin de tres subproblemas en elsiguiente orden

    ,?. @n"lisis del problema#8? ise+ar el algoritmo

    ;? aplicar la solucin en la computadora.

    4bviamente cada uno de estos subproblemas pueden a su ve$ dividirse en otros# porejemplo

    7on lo cual vemos que el concepto de dividir un gran problema en peque+os problemas!nos ayuda a

    2educir la complejidad para el desarrollo

    Aacilitar entender la lgica de cada proceso