Universidad Nacional Mayor de San Marcos Facultad de Ingeniera de Sistemas
John Ledgard Trujillo Trejo jtrujillot@unmsm.edu.pe
ALGORITMICA I Teora de Algoritmos: Partes de un programa Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I MOTIVACION Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I MOTIVACION
SOFTWARE SISTEMA INFORMATICO ORDENADOR HARDWARE SOFTWARE DATOS ALGORITMOS PROGRAMAS INFORMACI N Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Sistema informtico Estos componentes se relacionan haciendo posible el procesamiento automtico de los datos, a travs de ordenadores, para producir informacin til. Es el conjunto que resulta de la integracin de cuatro elementos: Hardware, Software, Datos y Personas. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Dato, proceso e informacin Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Dato, proceso e informacin Dato e informacin son dos trminos que suelen confundirse
Datos.- Representacin de algn hecho, concepto o entidad real (los datos pueden tomar diferentes formas; por ejemplo, palabras escritas o habladas, nmeros y dibujos).
Informacin.- Implica datos procesados y organizados.
Sistema de procesamiento de informacin.- Es un sistema que transforma datos brutos en informacin organizada, significativa y til. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Dato, proceso e informacin Sistema de Banca Electrnica Reservas de pasajes Sistemas Hospitalarios Sistemas Bibliogrficos Lectura remota de datos Procesos industriales en tiempo real Control de inventarios en tiempo real
Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Definicin de algoritmo Conjunto especfico de procedimientos (matemticos y lgicos simples) bien definidos que pueden seguirse para resolver un problema en un nmero determinado de pasos. Conjunto de instrucciones que especifican la secuencia de operaciones a realizar en orden, para resolver un sistema especfico o clase de problemas. La palabra "algoritmo deriva del nombre latinizado del gran matemtico rabe Mohamed Ibn Moussa Al Kow Rizmi Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Definicin de algoritmo Ejemplo de Algoritmo: Imaginemos que estamos creando un pequeo robot que debe subir 10 escalones. El robot entiende solo dos instrucciones LevantaPieIzquierdo (para levantar el pie izquierdo y subir un escaln) y LevantaPieDerecho (para levantar el pie derecho y subir otro escaln), con lo que podr ir ascendiendo hasta llegar al final de la escalera. Si solo pudisemos utilizar estas dos instrucciones el algoritmo para subir las escaleras es el siguiente: Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Clasificacin de algoritmo Algoritmo Cualitativo: Descritos mediante palabras. Resolver una ecuacin de segundo grado. Calcular los sueldos de los empleados. Calcular los impuestos a pagar de los vecinos de un municipio. Elaboracin de una receta El tejido de chompa . Bsqueda de un numero telefnico. Cambio de una llanta Cambio de un foco quemado Algoritmo Cuantitativo: Se basan en clculos numricos. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Caractersticas de un algoritmo Todo algoritmo debe cumplir las siguientes caractersticas:
1. Debe ser Preciso; que debe especificar sin ambigedad el orden en que se deben ejecutar las instrucciones. Un algoritmo es un mtodo para resolver un problema. Debe presentarse como una secuencia ordenada de instrucciones que siempre se ejecutan en tiempo finito y con una cantidad de esfuerzo tambin finito. En un algoritmo siempre debe haber un punto de inicio y un punto de terminacin. Estos deben ser nicos y deben ser fcilmente identificables. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Caractersticas de un algoritmo 2. Debe estar Definido; i.e., cada vez que se ejecute bajo las mismas condiciones, la secuencia de ejecucin deber ser la misma proporcionndonos el mismo resultado. 3. Debe ser Finito; i.e., siempre que sea adecuado se realizarn un nmero finito de instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguaje algortmico El lenguaje algortmico es aquel por medio del cual se realiza un anlisis previo del problema a resolver y encontrar un mtodo que permita resolverlo. El conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse, se le denomina algoritmo. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguaje informtico El lenguaje informtico es aquel por medio del cual dicho algoritmo se codifica a un sistema comprensible por el ordenador o computadora. Este tipo de lenguaje es ms cercano a la mquina que al ser humano y podemos distinguir distintos tipos dependiendo de la proximidad a la maquina. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Programa y programacin Programa, en informtica es sinnimo de software, es el conjunto de instrucciones que ejecuta un ordenador o computadora. Un programa es la especificacin de un cmputo. Programa, es una descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el mundo real. Programar es automatizar y definir una serie de procesos para resolver un problema y obtener un resultado final. Un programa imita un comportamiento o accin humana ; otras veces simula (es decir, reproduce) un fenmeno fsico. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Programa y programacin El arte de la programacin es el mtodo por el que se describir a una computadora (mediante un lenguaje de programacin) un fenmeno, una accin, un comportamiento o una idea. Un plan que se establece para resolver un problema . Conjunto de instrucciones que dirige la computadora (ordenador) para ejecutar operaciones especificas para lograr un efecto deseado (a menudo la solucin a un problema en particular) puede consistir en uno o varios mdulos o rutinas, cada uno de los cuales puede estar compuesto de varias subrutinas. Ensamblado lgico de uno o varios mdulos inter relacionados. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin Los lenguajes de programacin son cdigos estructurados con una buena sintaxis y una buena gramtica que sirve para transmitir nuestras ideas y darnos a entender con la computadora. Lenguaje Mquina o bajo nivel. 1011101 Lenguaje Ensamblador. mov cx,5 Lenguaje de alto nivel. A = A +2 Lenguaje de las 4 generaciones. 4 gls CASE (Ingeniera en Software auxiliada por computadora) Visuales. Lenguaje Natural. Dragn Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin LENGUAJES DE PRIMERA GENERACIN (1954-1958) Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin LENGUAJES DE SEGUNDA GENERACIN (1959-1961) Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin LENGUAJES DE TERCERA GENERACIN (1962-1970) Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Lenguajes de programacin LENGUAJES ORIENTADO A OBJETOS (1985 en adelante) Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Antecedentes y Problemas y retos Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Modelos de Desarrollo del Ciclo de Vida y Procesos Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Anlisis de Requerimientos y Especificaciones Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Diseo de Software y Metodologas Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Sistemas de Alta Integridad Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Mtodos Formales Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Administracin de Proyectos de Software Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Administracin de la Calidad del Software Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Ambientes de Desarrollo de Software Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Mantenimiento del Software Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I La tortuga y la liebre: Desarrollo de software Cumplimiento Exitoso del Proyecto Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Programas Objetivo final Pensar, Razonar, reflexionar Codificar Revisar: Hacer una nueva versin Revisar Revisar Depurar: Encontrar y remover errores Depurar Depurar Prueba Codificar Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Programas Programa Fuente: Es un programa escrito en un lenguaje de alto nivel o bajo nivel, el cual es traducido por un traductor a un programa objeto. Programa Objeto: Es un programa traducido al lenguaje interno del computador o lenguaje maquina. Programa Ejecutable: Es un programa objeto traducido puesto a modo ejecutable y almacenado en la memoria principal del computador, listo para su ejecucin. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Programas: traductores de lenguaje Son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a cdigo maquina. Emsamblador (Traductor) Es un programa que traduce las instrucciones del programa fuente del lenguaje ensamblador (assembler) a un programa objeto (lenguaje maquina). Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente en maquina. Programa montador o enlazador (linkeador), es aquel que produce el proceso de enlazar el programa objeto con rutinas del sistema (libreras del lenguaje de programacin) produciendo el programa ejecutable. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Traductores de lenguaje: interprete Es un programa que toma como entrada un programa fuente lo analiza y ejecuta directamente, sin generar ningn cdigo equivalente. Su accin equivale a la de un intrprete humano, que traduce las frases que oye sobre la marcha, sin producir ningn escrito permanente. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Traductores de lenguaje: compilador Es un programa que toma como entrada un programa fuente, lo analiza y traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la mquina). Su accin equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua. Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Compilador e interprete: ventajas y desventajas Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Adems, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecucin.
Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis del lenguaje fuente se hace una sola vez, durante la generacin del programa equivalente. En cambio, un intrprete se ve obligado generalmente a analizar cada instruccin tantas veces como se ejecute (incluso miles o millones de veces). Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Proceso de ejecucin de un programa Escribir el programa fuente y almacenarlo en un dispositivo de almacenamiento. Introducir el programa fuente en la memoria del computador Compilacin del programa. Verificar y depurar errores de compilacin. Obtencin del programa objeto. El linkeador enlaza y obtiene el programa ejecutable. Ejecucin del programa Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I PROCESO DE EJECUCIN DE UN PROGRAMA Teora de Algoritmos: Partes de un programa Lic. John Ledgard Trujillo Trejo 2007 - I Discusin, preguntas...