You are on page 1of 42

C.U.

mircoles, 1 de abril de 2009

ALGORITMICA I
Teora de Algoritmos: Partes de un programa
John Ledgard Trujillo Trejo jtrujillot@unmsm.edu.pe

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas

Teora de Algoritmos: Partes de un programa

MOTIVACION

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

MOTIVACION
SOFTWARE
SISTEMA INFORMATICO ALGORITMOS ORDENADOR

Algoritmica I

DATOS

SOFTWARE

INFORMACI N PROGRAMAS
2009 - I

HARDWARE
Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Sistema informtico
Es el conjunto que resulta de la integracin de cuatro elementos: Hardware, Software, Datos y Personas.

Algoritmica I

Estos componentes se relacionan haciendo posible el procesamiento automtico de los datos, a travs de ordenadores, para producir informacin til.
2009 - I Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Dato, proceso e informacin

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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.
2009 - I Lic. John Ledgard Trujillo Trejo

Algoritmica I

Teora de Algoritmos: Partes de un programa

Dato, proceso e informacin

S istem a d e B an ca E lectr n ica

Algoritmica I

R eser v as d e p asajes S istem as H osp italar ios S istem as B ibliog r ficos L ectu r a r em ota de datos P r ocesos in d u str iales en tiem p o r eal C on tr ol de in v en tar ios en tiem p o r eal

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Definicin de algoritmo
La palabra "algoritmo deriva del nombre latinizado del gran matemtico rabe Mohamed Ibn Moussa Al Kow Rizmi

Algoritmica I

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.
2009 - I Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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:

Algoritmica I

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Clasificacin de algoritmo

Algoritmo Cualitativo: Descritos mediante palabras.

Algoritmo Cuantitativo: Se basan en clculos numricos.

Algoritmica I

Elaboracin de una receta El tejido de chompa . Bsqueda de un numero telefnico. Cambio de una llanta Cambio de un foco quemado

Resolver una ecuacin de segundo grado. Calcular los sueldos de los empleados. Calcular los impuestos a pagar de los vecinos de un municipio.

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Caractersticas de un algoritmo
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.

Algoritmica I

Todo algoritmo debe cumplir las siguientes caractersticas: Debe ser Preciso; que debe especificar sin ambigedad el orden en que se deben ejecutar las instrucciones.
Lic. John Ledgard Trujillo Trejo

2009 - I

Teora de Algoritmos: Partes de un programa

Caractersticas de un algoritmo
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. 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.
Lic. John Ledgard Trujillo Trejo

Algoritmica I

2009 - I

Teora de Algoritmos: Partes de un programa

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.

Algoritmica I

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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.

Algoritmica I

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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. Un programa imita un comportamiento o accin humana ; otras veces simula (es decir, reproduce) un fenmeno fsico. Programar es automatizar y definir una serie de procesos para resolver un problema y obtener un resultado final.
2009 - I Lic. John Ledgard Trujillo Trejo

Algoritmica I

Teora de Algoritmos: Partes de un programa

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.
2009 - I Lic. John Ledgard Trujillo Trejo

Algoritmica I

Teora de Algoritmos: Partes de un programa

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

Algoritmica I

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Lenguajes de programacin

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Lenguajes de programacin
LENGUAJES DE PRIMERA GENERACIN (1954-1958)

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Lenguajes de programacin
LENGUAJES DE SEGUNDA GENERACIN (1959-1961)

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Lenguajes de programacin
LENGUAJES DE TERCERA GENERACIN (1962-1970)

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Lenguajes de programacin
LENGUAJES ORIENTADO A OBJETOS (1985 en adelante)

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Antecedentes y Problemas y retos

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Modelos de Desarrollo del Ciclo de Vida y Procesos

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Anlisis de Requerimientos y Especificaciones

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Diseo de Software y Metodologas

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Sistemas de Alta Integridad

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Mtodos Formales

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Administracin de Proyectos de Software

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software


Administracin de la Calidad del Software

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software Ambientes de Desarrollo de Software

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software Mantenimiento del Software

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

La tortuga y la liebre: Desarrollo de software Cumplimiento Exitoso del Proyecto

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Programas
Depurar Revisar:
Hacer una nueva versin

Revisar Depurar Revisar Objetivo final Prueba

Algoritmica I

Depurar:
? o j a At
Encontrar y remover errores

Codificar

Pensar, Razonar, reflexionar


2009 - I

Codificar
Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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.
2009 - I Lic. John Ledgard Trujillo Trejo

Algoritmica I

Teora de Algoritmos: Partes de un programa

Programas: traductores de lenguaje


Son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a cdigo maquina.

Algoritmica I

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.
2009 - I Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Traductores de lenguaje: interprete

Algoritmica I

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.

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

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.

Algoritmica I

2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Compilador e interprete: ventajas y desventajas

Algoritmica I

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).
Lic. John Ledgard Trujillo Trejo

2009 - I

Teora de Algoritmos: Partes de un programa

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
2009 - I Lic. John Ledgard Trujillo Trejo

Algoritmica I

Teora de Algoritmos: Partes de un programa

PROCESO DE EJECUCIN DE UN PROGRAMA

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

Teora de Algoritmos: Partes de un programa

Discusin, preguntas...

Algoritmica I
2009 - I

Lic. John Ledgard Trujillo Trejo

You might also like