1. Algoritmos y Programas

2,513 views

Published on

Repaso de Algoritmos, Programas, Lenguajes de Programación.

Published in: Education
  • Be the first to comment

1. Algoritmos y Programas

  1. 1. ALGORITMOS Y PROGRAMAS CENTRO SUR COLOMBIANO DE LOGISTICA INTERNAIONAL TC. EN PROGRAMACION DE SOFTWARE INSTRUCTOR: EDISON AYALA TREJOS Julio de 2012
  2. 2. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoSegún la RAE (Real Academia de la lengua española), unacomputadora es una máquina electrónica, analógica odigital, dotada de una memoria de gran capacidad y demétodos de tratamiento de la información, capaz de resolverproblemas matemáticos y lógicos mediante la utilizaciónautomática de programas informáticos.
  3. 3. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoA finales de los años cuarenta Von Newman escribió en unartículo lo que serían las bases del funcionamiento de loscomputadores (seguidos en su mayor parte hasta el día dehoy).
  4. 4. ALGORITMOS Y PROGRAMASComputadora y sistema operativoModelo de Von Newman
  5. 5. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoLas mejoras que consiguió este modelo (entre otras) fueron:• Incluir el modelo de Programa Almacenado (fundamental para que el computador pueda realizar más de una tarea)• Aparece el concepto de Lenguaje de Programación.• Aparece el concepto de programa como amo secuencia de instrucciones secuenciales (aunque pueden incluir bifurcaciones y saltos).
  6. 6. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoEl modelo no ha cambiando excesivamente hasta laactualidad de modo que el modelo actual de loscomputadores es el que se indica en el grafico.
  7. 7. ALGORITMOS Y PROGRAMASComputadora y sistema operativo
  8. 8. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoDe los componentes internos del computador, cabedestacar el procesador (o microprocesador, lo demicro hace referencia al tamaño del mismo). Se tratade un chip que contiene todos los elementos de laUnidad Central de Proceso; por lo que es capaz derealizar e interpretar instrucciones. En realidad unprocesador sólo es capaz de realizar tareas sencillascomo:
  9. 9. ALGORITMOS Y PROGRAMAS Computadora y sistema operativo• Operaciones aritméticas simples: suma, resta, multiplicación y división.• Operaciones de comparación entre valores.• Almacenamiento de datos.
  10. 10. ALGORITMOS Y PROGRAMAS Computadora y sistema operativoEn definitiva los componentes sobre los que actualmente sehace referencia son:• Procesador. Núcleo digital en el que reside la CPU del computador. Es la parte fundamental del computador, la encargada de realizar todas las tareas.• Placa base. Circuito interno al que se conectan todos los componentes del computador, incluido el procesador.• Memoria RAM. Memoria principal del computador, formada por un circuito digital que está conectado mediante tarjetas a la placa base.
  11. 11. ALGORITMOS Y PROGRAMAS Computadora y sistema operativo• Memoria caché. Memoria ultrarrápida de características similares a la RAM, pero de velocidad mucho más elevada por lo que se utiliza para almacenar los últimos datos utilizados de la memoria RAM.• Periféricos. Aparatos conectados al computador mediante tarjetas o ranuras de expansión (también llamados puertos). Los hay de entrada, de salida, incluso de entrada/salida, de almacenamiento y procesamiento.• Unidades de almacenamiento. En realidad son periféricos, pero que sirven para almacenar de forma permanente los datos que se deseen del computador.
  12. 12. ALGORITMOS Y PROGRAMAS Hardware y SoftwareHardware:Se trata de todos los componentes físicos que forman parte deun computador: procesador, RAM, impresora, teclado,ratón,...Software:Se trata de la parte conceptual del computador. Es decir losdatos y aplicaciones que maneja y que permiten un grado deabstracción mayor. Cualquier cosa que se pueda almacenar enuna unidad de almacenamiento es software (la propia unidadsería hardware).
  13. 13. ALGORITMOS Y PROGRAMAS Sistema OperativoSistema Operativo:Se trata del software (programa) encargado de gestionar elcomputador. Es la aplicación que oculta la física real delcomputador para mostrarnos un interfaz que permita alusuario un mejor y más fácil manejo de la computadora.
  14. 14. ALGORITMOS Y PROGRAMAS Sistema Operativo, Funciones Principales• Permitir al usuario comunicarse con el computador. A través de comandos o a través de una interfaz gráfica.• Coordinar y manipular el hardware de la computadora: memoria, impresoras, unidades de disco, el teclado,...• Proporcionar herramientas para organizar los datos de manera lógica (carpetas, archivos,...)• Proporcionar herramientas para organizar las aplicaciones instaladas.• Gestionar el acceso a redes
  15. 15. ALGORITMOS Y PROGRAMAS Sistema Operativo, Funciones Principales• Gestionar los errores de hardware y la pérdida de datos.• Servir de base para la creación de aplicaciones, proporcionando funciones que faciliten la tarea a los programadores.• Administrar la configuración de los usuarios.• Proporcionar herramientas para controlar la seguridad del sistema.
  16. 16. ALGORITMOS Y PROGRAMAS Algunos Sistemas OperativosWindows. A día de hoy el Sistema Operativo más popular(instalado en el 95% ??? de computadoras del mundo). Es unsoftware propiedad de Microsoft por el que hay que pagar porcada licencia de uso.Unix. Sistema operativo muy robusto para gestionar redes detodos los tamaños. Actualmente en desuso debido al uso deLinux (que está basado en Unix), aunque sigue siendo muyutilizado para gestionar grandes redes (el soporte sigue siendouna de las razones para que se siga utilizando)
  17. 17. ALGORITMOS Y PROGRAMAS Algunos Sistemas Operativos• Solaris. Versión de Unix para sistemas de la empresa Sun.• Linux. Sistema operativo de código abierto, lo que significa que el código fuente está a disposición de cualquier programador, lo que permite adecuar el sistema a las necesidades de cada usuario. Esta libertad ha hecho que posea numerosas distribuciones, muchas de ellas gratuitas. La variedad de distribuciones y opciones complica su aprendizaje al usuario inicial, pero aumenta las posibilidades de selección de un sistema adecuado.
  18. 18. ALGORITMOS Y PROGRAMAS Algunos Sistemas OperativosActualmente las distribuciones Linux más conocidas son: ₋ Red Hat ₋ Fedora (versión gratuita de Red Hat) ₋ Debian ₋ Ubuntu (variante de Debian de libre distribución, quizá el Linux más exitoso de la actualidad) ₋ Mandriva ₋ SUSE• MacOs. Sistema operativo de los computadores MacIntosh. Muy similar al sistema Windows y orientado al uso de aplicaciones de diseño gráfico.
  19. 19. ALGORITMOS Y PROGRAMAS Noción de AlgoritmosSegún la RAE: conjunto ordenado y finito de operaciones quepermite hallar la solución de un problema.
  20. 20. ALGORITMOS Y PROGRAMAS Noción de AlgoritmosEl lenguaje algorítmico es aquel que implementa una soluciónteórica a un problema indicando las operaciones a realizar y elorden en el que se deben efectuarse. Por ejemplo en el casode que nos encontremos en casa con una bombilla fundida enuna lámpara, un posible algoritmo sería:(1) Comprobar si hay bombillas de repuesto(2) En el caso de que las haya, sustituir la bombilla anteriorpor la nueva(3) Si no hay bombillas de repuesto, bajar a comprar unanueva a la tienda y sustituir la vieja por la nueva
  21. 21. ALGORITMOS Y PROGRAMAS Noción de AlgoritmosLos algoritmos son la base de la programación decomputadores, ya que los programas de computador sepuede entender que son algoritmos escritos en un códigoespecial entendible por un computador.
  22. 22. ALGORITMOS Y PROGRAMAS Noción de AlgoritmosPor lo que los tres pasos anteriores pueden ser mucho máslargos:[1] Comprobar si hay bombillas de repuesto(1.1)Abrir el cajón de las bombillas(1.2)Observar si hay bombillas[2] Si hay bombillas:(2.1)Coger la bombilla(2.2)Coger una silla(2.3)Subirse a la silla(2.4)Poner la bombilla en la lámpara[3] Si no hay bombillas(3.1)Abrir la puerta(3.2)Bajar las escaleras....
  23. 23. ALGORITMOS Y PROGRAMAS Características de los algoritmos: Obligatorias• Un algoritmo debe resolver el problema para el que fue formulado. Lógicamente no sirve un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean algoritmos que resuelven problemas diferentes al planteado.• Los algoritmos son independientes del computador. Los algoritmos se escriben para poder ser utilizados en cualquier máquina.• Los algoritmos deben de ser precisos. Los resultados de los cálculos deben de ser exactos, de manera rigurosa. No es válido un algoritmo que sólo aproxime la solución.
  24. 24. ALGORITMOS Y PROGRAMAS Características de los algoritmos: Obligatorias• Los algoritmos deben de ser finitos. Deben de finalizar en algún momento. No es un algoritmo válido aquel que produce situaciones en las que el algoritmo no termina.• Los algoritmos deben de poder repetirse. Deben de permitir su ejecución las veces que haga falta. No son válidos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por la razón que sea.
  25. 25. ALGORITMOS Y PROGRAMAS Características de los algoritmos: Obligatorias• Los algoritmos deben de ser finitos. Deben de finalizar en algún momento. No es un algoritmo válido aquel que produce situaciones en las que el algoritmo no termina.• Los algoritmos deben de poder repetirse. Deben de permitir su ejecución las veces que haga falta. No son válidos los que tras ejecutarse una vez, ya no pueden volver a hacerlo por la razón que sea.
  26. 26. ALGORITMOS Y PROGRAMAS Características de los algoritmos: Ideales• Validez. Un algoritmo es válido si carece de errores. Un algoritmo puede resolver el problema para el que se planteó y sin embargo no ser válido debido a que posee errores.• Eficiencia. Un algoritmo es eficiente si obtiene la solución al problema en poco tiempo. No lo es si es lento en obtener el resultado.• Óptimo. Un algoritmo es óptimo si es el más eficiente posible y no contiene errores. La búsqueda de este algoritmo es el objetivo prioritario del programador.
  27. 27. ALGORITMOS Y PROGRAMAS Fases en la creación de algoritmosHay tres fases en la elaboración de un algoritmo:(1) Análisis. En esta se determina cuál es exactamente el problema a resolver. Qué datos forman la entrada del algoritmo y cuáles deberán obtenerse como salida.(2) Diseño. Elaboración del algoritmo.(3) Prueba. Comprobación del resultado. Se observa si elalgoritmo obtiene la salida esperada para todas las entradas.
  28. 28. ALGORITMOS Y PROGRAMAS Programas y aplicacionesPrograma. La definición de la RAE es: Conjunto unitario deinstrucciones que permite a un computador realizarfunciones diversas, como el tratamiento de textos, el diseñode gráficos, la resolución de problemas matemáticos, elmanejo de bancos de datos, etc. Pero normalmente seentiende por programa un conjunto de instruccionesejecutables por un computador.Un programa estructurado es un programa que cumple lascondiciones de un algoritmo (finitud, precisión, repetición,resolución del problema,...)
  29. 29. ALGORITMOS Y PROGRAMAS Programas y aplicacionesAplicación. Software formado por uno o más programas, ladocumentación de los mismos y los archivos necesarios parasu funcionamiento, de modo que el conjunto completo dearchivos forman una herramienta de trabajo en uncomputador.
  30. 30. ALGORITMOS Y PROGRAMAS El ciclo de vida de una aplicaciónUna de las cosas que se han definido tras el nacimiento de laingeniería del software ha sido el ciclo de vida de unaaplicación. El ciclo de vida define los pasos que sigue elproceso de creación de una aplicación desde que se proponehasta que finaliza su construcción. Los pasos son:(1) Análisis. En esta fase se determinan los requisitos que tiene que cumplir la aplicación. Se anota todo aquello que afecta al futuro funcionamiento de la aplicación. Este paso le realiza un analista.
  31. 31. ALGORITMOS Y PROGRAMAS El ciclo de vida de una aplicación(2) Diseño. Se especifican los esquemas de diseño de laaplicación. Estos esquemas forman los planos delprogramador, los realiza el analista y representan todos losaspectos que requiere la creación de la aplicación.(3) Codificación. En esta fase se pasa el diseño a códigoescrito en algún lenguaje de programación. Esta es la primeralabor que realiza el programador(4) Pruebas. Se trata de comprobar que el funcionamiento dela aplicación es la adecuada. Se realiza en varias fases:
  32. 32. ALGORITMOS Y PROGRAMAS El ciclo de vida de una aplicacióna) Prueba del código. Las realizan programadores. Normalmente programadores distintos a los que crearon el código, de ese modo la prueba es más independiente y generará resultados más óptimos.b) Versión alfa. Es una primera versión terminada que serevisa a fin de encontrar errores. Estas pruebas conviene quesean hechas por personal no informático.c) Versión beta. Versión casi definitiva del software en la queno se estiman fallos, pero que se distribuye a los clientes paraque encuentren posibles problemas.
  33. 33. ALGORITMOS Y PROGRAMAS El ciclo de vida de una aplicación(5) Mantenimiento. Tiene lugar una vez que la aplicación hasido ya distribuida, en esta fase se asegura que el sistema sigafuncionando aunque cambien los requisitos o el sistema parael que fue diseñado el software. Ante esos cambios se hacenlos arreglos pertinentes, por lo que habrá que retroceder afases anteriores del ciclo de vida.
  34. 34. ALGORITMOS Y PROGRAMASEl ciclo de vida de una aplicación
  35. 35. ALGORITMOS Y PROGRAMAS ErroresCuando un programa obtiene una salida que no es laesperada, se dice que posee errores. Los errores son uno delos caballos de batalla de los programadores ya que a vecesson muy difíciles de encontrar (de ahí que hoy en día enmuchas aplicaciones se distribuyan parches para subsanarerrores no encontrados en la creación de la aplicación).
  36. 36. ALGORITMOS Y PROGRAMAS Tipos de ErroresError del usuario. Errores que se producen cuando el usuariorealiza algo inesperado y el programa no reaccionaapropiadamente.Error del programador. Son errores que ha cometido elprogramador al generar el código. La mayoría de errores sonde este tipo.Errores de documentación. Ocurren cuando ladocumentación del programa no es correcta y provoca fallosen el manejo.
  37. 37. ALGORITMOS Y PROGRAMAS Tipos de ErroresError de entrada / salida o de comunicaciones. Ocurrecuando falla la comunicación entre el programa y undispositivo (se desea imprimir y no hay papel, falla elteclado,...)Error fatal. Ocurre cuando el hardware produce una situacióninesperado que el software no puede controlar (elcomputador se cuelga, errores en la grabación de datos,...)Error de ejecución. Ocurren cuando la ejecución del programaes más lenta de lo previsto.
  38. 38. ALGORITMOS Y PROGRAMAS Tipos de ErroresLa labor del programador es predecir, encontrar y subsanar (sies posible) o al menos controlar los errores. Una mala gestiónde errores causa experiencias poco gratas al usuario de laaplicación.
  39. 39. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónCódigo máquina. primera generación de lenguajes (1GL)Consistía en introducir la programación de la máquinamediante unos y ceros. El llamado código máquina.Todavía los computadores es el único código que entienden,por lo que cualquier forma de programar debe de serconvertida a código máquina.Cualquier programa de computador debe, finalmente, serconvertido a este código para que un computador puedeejecutar las instrucciones de dicho programa.
  40. 40. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónLenguaje ensamblado. segunda generación de lenguajes(2GL)En los años 40 se intentó concebir un lenguaje más simbólico.Poco más tarde se ideó el lenguaje ensamblador, que es latraducción del código máquina a una forma más textual.Cada tipo de instrucción se asocia a una palabramnemotécnica (como SUM para sumar por ejemplo), deforma que cada palabra tiene traducción directa en el códigomáquina.
  41. 41. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónEjemplo: (programa que saca el texto “Hola mundo” porpantalla):
  42. 42. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónLenguajes de alto nivel. lenguajes de tercera generación(3GL)Lenguajes de alto nivel. En este caso el código vale paracualquier máquina pero deberá ser traducido mediantesoftware especial que adaptará el código de alto nivel alcódigo máquina correspondiente.Tras varios intentos de representar lenguajes, en 1957 apareceel que se considera el primer lenguaje de alto nivel, elFORTRAN (FORmula TRANslation), lenguaje orientado aresolver fórmulas matemáticos.
  43. 43. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónPor ejemplo la forma en FORTRAN de escribir el texto Holamundo por pantalla es:
  44. 44. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónLenguajes de cuarta generación (4GL)Se consideraba que el lenguaje SQL (muy utilizado en lasbases de datos) y sus derivados eran de cuarta generación. Loslenguajes de consulta de datos, creación de formularios,informes,... son lenguajes de cuarto nivel.
  45. 45. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónLenguajes orientados a objetosEn los 80 llegan los lenguajes preparados para laprogramación orientada a objetos todos procedentes deSimula (1964) considerado el primer lenguaje con facilidadesde uso de objetos. De estos destacó inmediatamente C++.A partir de C++ aparecieron numerosos lenguajes queconvirtieron los lenguajes clásicos en lenguajes orientados aobjetos (y además con mejoras en el entorno deprogramación, son los llamados lenguajes visuales): VisualBasic, Delphi (versión orientada a objetos de Pascal), VisualC++,...
  46. 46. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónEn 1995 aparece Java como lenguaje totalmente orientado aobjetos y en el año 2000 aparece C# un lenguaje que toma laforma de trabajar de C++ y del propio Java.El programa Hola mundo en C# sería:
  47. 47. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónLenguajes para la webLa popularidad de Internet ha producido lenguajes híbridosque se mezclan con el código HTML con el que se crean laspáginas web. HTML no es un lenguaje en sí sino un formato detexto pensado para crear páginas web. Éstos lenguajes se usanpara poder realizar páginas web más potentes.Son lenguajes interpretados como JavaScript o VB Script, olenguajes especiales para uso en servidores como ASP, JSP oPHP.
  48. 48. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónIntérpretesA la hora de convertir un programa en código máquina, sepueden utilizar dos tipos de software: intérpretes ycompiladores.En el caso de los intérpretes se convierte cada línea a códigomáquina y se ejecuta ese código máquina antes de convertirla siguiente línea.
  49. 49. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónIntérpretesProcesoUn programa que se convierte a código máquina mediante unintérprete sigue estos pasos:(1) Lee la primera instrucción(2) Comprueba si es correcta(3) Convierte esa instrucción al código máquina equivalente(4) Lee la siguiente instrucción(5) Vuelve al paso 2 hasta terminar con todas las instrucciones
  50. 50. ALGORITMOS Y PROGRAMAS Lenguajes de programaciónCompiladoresSe trata de software que traduce las instrucciones de unlenguaje de programación de alto nivel a código máquina. Ladiferencia con los intérpretes reside en que se analizan todaslas líneas antes de empezar la traducción.
  51. 51. ALGORITMOS Y PROGRAMAS ProgramaciónLa programación consiste en pasar algoritmos a algúnlenguaje de computador a fin de que pueda ser entendido porel computador. La programación de computadores comienzaen los años 50 y su evolución a pasado por diversos pasos.La programación se puede realizar empleando diversastécnicas o métodos.Esas técnicas definen los distintos tipos de programaciones.
  52. 52. ALGORITMOS Y PROGRAMAS ProgramaciónProgramación estructuradaEn esta programación se utiliza una técnica que generaprogramas que sólo permiten utilizar tres estructuras decontrol:Secuencias (instrucciones que se generan secuencialmente)Alternativas (sentencias if)Iterativas (bucles condicionales)
  53. 53. ALGORITMOS Y PROGRAMAS ProgramaciónProgramación modularCompleta la programación anterior permitiendo la definiciónde módulos independientes cada uno de los cuales seencargará de una tarea del programa.De este forma el programador se concentra en la codificaciónde cada módulo haciendo más sencilla esta tarea. Al final sedeben integrar los módulos para dar lugar a la aplicación final.El código de los módulos puede ser invocado en cualquierparte del código.
  54. 54. ALGORITMOS Y PROGRAMAS ProgramaciónProgramación orientada a objetosEs la más novedosa, se basa en intentar que el código de losprogramas se parezca lo más posible a la forma de pensar delas personas. Las aplicaciones se representan en estaprogramación como una serie de objetos independientes quese comunican entre sí.Cada objeto posee datos y métodos propios, por lo que losprogramadores se concentran en programarindependientemente cada objeto y luego generar el códigoque inicia la comunicación entre ellos.

×