Introd. a la Algoritmia - Tema 1

Embed Size (px)

Citation preview

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    1/46

    Introduccin a la Algoritmia

    Leccin 1Introduccin a la Algoritmia

    Pontificia Universidad Catlica Madre y Maestra

    Vicerrectora Acadmica

    Facultad Ciencias de las Ingenieras

    Ingeniera en Sistemas y Computacin - ISC

    16-ene-13Santiago, Rep. Dom.

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    2/46

    Introduccin a la Algoritmia

    El bacoPrimer dispositivo mecnico para contar.

    Fecha estimada:3,000 A.C.

    Origen:

    Abakos (superficie plana)

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    3/46

    Introduccin a la Algoritmia

    La PascalinaPrimera mquina mecnica de sumar.

    Origen:1,642, francia, Blaise Pascal

    Caractersticas:

    Dimensiones de una caja dezapatos, com ruedas dentadas em suinterior conectadas entre s que

    formaban uma cadena detransmisin.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    4/46

    Introduccin a la Algoritmia

    Calculadora UniversalMquina que sumaba, restaba, multiplicaba ydivida.

    Origen:

    1,673, alemania, Gottfried Leibniz

    (inventor del sistema binario)

    Otros datos:

    Sucesor de pascal y su pascalina.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    5/46

    Introduccin a la Algoritmia

    El telar de JacquardSe controlaba por medio de tarjetas perforadaspara conseguir tejer patrones em la tela.

    Origen:

    1,801, francia, Joseph Jacquard

    Caractersticas:

    Permita an a inexpertos elaborarcomplejos diseos. Es la mquina

    inferior que intersecciona los hilospara producir la tela.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    6/46

    Introduccin a la Algoritmia

    Mquina AnalticaEra un computador de uso general. Deberafuncionar con tarjetas perforadas y la salida se

    producira por una impresora.

    Origen:

    1822, gran bretaa, Charles Babbage

    Caractersticas:

    Con un motor a vapor, 30m de largo

    por 10 de ancho. Tambinperforara tarjetas. Almacenara1,000 nmeros de 50 dgitos c/u.

    Otros datos:

    No pudo ser construida debido arazones de ndole financiera, polticca y legal.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    7/46

    Introduccin a la Algoritmia

    Mquina TabuladoraSistema de tarjetas perforadas elctricas basadoen la lgica de Boole.

    Origen:

    1890, E.E.U.U., Herman Hollerith

    Otros datos:

    Utilizada para tabular el censo del1890 de E.E.U.U., proceso que dur

    2 aos. Se cre luego la TabulatingMachine Company, con la que sefund luego la IBM.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    8/46

    Introduccin a la Algoritmia

    Generaciones de la

    Computadora

    Varan segn varios autores, pero todosconcuerdan en que existen al menos 5; desde laprimera hasta la quinta, variando entre s segnel tipo de computador, sus caractersticas, suvelocidad y su propsito.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    9/46

    Introduccin a la Algoritmia

    1era. Generacin1951-1958 (UNIVAC, IBM 701, IBM 650)

    Caractersticas:- Tubos al vaco, tarjetas perforadas.

    - IBM era el principal fabricante.

    - Cilindros magnticos para almacenamiento.

    - Grandes, mucha electricidad, calientes ylentas.

    Velocidad: 1,000 calculaciones por segundo.

    Propsito: Apoyar grandes compaas privadasy al gobierno. Matemticas o de negocios.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    10/46

    Introduccin a la Algoritmia

    2da. Generacin1959-1964 (Burroughs, UNIVAC, NCR)

    Caractersticas:- Usaban transistores (rpidos, pequeos).

    - Pequeos anillos magnticos para almac.

    - Nuevos lenguajes de programacin(COBOL, FORTRAN)

    - Se comenz a disminuir su tamao, peroan no su costo.

    Velocidad: 10,000 calculaciones por segundo.

    Propsito: Surgen los primeros procesadores de

    palabra y hojas de clculo.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    11/46

    Introduccin a la Algoritmia

    3ra. Generacin1964-1971 (IBM 360, DEC PDP-1)

    Caractersticas:- Se desarrollan los circuitos integrados

    (pastillas de silicio) para integrar miles decomponentes.

    - Emerge la industria del software.

    - Ms pequeas, rpidas, menos calientes y

    menor energa elctrica.

    Velocidad: 1,000,000 clcs. por segundo.

    Propsito: Programas ms flexibles.Matemticas y negocios.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    12/46

    Introduccin a la Algoritmia

    4ta. Generacin1971-1988 (IBM AT, DEC PDP-1)

    Caractersticas:- Aparecen los microprocesadores con

    velocidades impresionantes en alta densidad.

    - Los chips realizan diferentes tareas.

    - Intel se introduce masivamente al mercado.

    Velocidad: 10,000,000 clcs. por segundo.

    Propsito: Se extiende a la industria y loshogares.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    13/46

    Introduccin a la Algoritmia

    5ta. Generacin1988-Actual. (IBM AT, DEC PDP-1)

    Caractersticas:- Gran evolucin de microprocesadores, hasta

    convertirse en multi-ncleos.

    - Surgen las microcomputadores ysupercomputadoras.

    - Se desarrolla la inteligencia artificial,

    robtica, sistemas expertos y redes decomunicaciones.

    Velocidad: 112,000,000 clcs. por segundo enadelante.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    14/46

    Introduccin a la Algoritmia

    Tipos de

    Computadoras

    - Supercomputadoras

    - Macrocomputadores (mainframes)

    - Minicomputadoras

    - Microcomputadores (PCs)

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    15/46

    Introduccin a la Algoritmia

    Supercomputadoras

    Es el ms potente y rpido Diseadas para

    procesar enormes cantidades de informacionesen poco tiempo, dedicadas a una sola tarea.

    Ejemplos:

    - Estudio de energa y armas nucleares.

    - Bsq. de yacimientos petrolferos a travs

    de grandes bases de datos ssmicas.- El estudio y prediccin de tornados y del

    clima de cualquier parte del mundo.

    - Elaboracin de maquetas y proyectos parala creacin de aviones, simuladores de vuelo.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    16/46

    Introduccin a la Algoritmia

    Mainframes

    Grandes, rpidos sistemas capaces de controlar

    cientos de usuarios y dispositivos. Son mspoderosas para ejecutar a varias tareassimultnea y rpidamente.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    17/46

    Introduccin a la Algoritmia

    Minicomputadoras

    Versin ms pequea que mainframe; ms

    econmica y menor mantenimiento. Esorientada a tareas especficas.

    Es multiproceso, capaz de soportar hasta 200usuarios simultneamente. Se usa paraalmacenar grandes bases de datos, servidores

    de archivos, web, correo, entre otras.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    18/46

    Introduccin a la Algoritmia

    Microcomputadoras

    Surgieron al crearse los microprocesadores.

    Son para uso personal, de oficina y escuelas.

    Algunos tipos de PCs:

    1. Tipo mini-torre, separado del monitor.

    2. Porttiles (laptop, netbook, pocket PC).

    3. Con gabinete (CPU) horizontal, separado delmonitor.4. Computadores que estn en una sola unidad(monitor y gabinete/CPU).

    5. Estaciones de trabajo.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    19/46

    Introduccin a la Algoritmia

    Sistema Operativo

    Es un conjunto de componentes lgicos

    (software) interconectados entre s que actancomo interfaz entre los dispositivos fsicos(hardware) y el usuario, para que ste ltimopueda utilizar un computador.

    Sus principales componentes son la gestin de

    procesos, gestin de la memoria principal,gestin de almacenamiento secundario, elsistema de entrada-salida, el sistema dearchivos, sistemas de proteccin, sistema decomunicaciones, programas del sistema ygestor de recursos.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    20/46

    Introduccin a la Algoritmia

    S.O.s de Microsoft

    MS-DOS domin el mercado de sistemas

    operativos durante los aos 80s. Secaracterizaba por ser monotarea y monousuariopara ordenadores personales.

    Windows 3.0, 3.1 y 3.11 surgieron entre el1990 y 1992. Tena interfaz grfica, incluy la

    memoria virtual y cierta mejora encontroladores de dispositivo.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    21/46

    Introduccin a la Algoritmia

    S.O.s de Microsoft

    Windows 95 era hbrido entre 16 y 32 bits.

    Sustituye a MS-DOS como sistema operativo yWindows 3.x como entorno grfico. Incorporel sistema de archivos FAT32, era compatiblecon USB.

    Tena una interfaz simplificada y era

    compatible con las anteriores versiones deWindows.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    22/46

    Introduccin a la Algoritmia

    S.O.s de Microsoft

    Windows NT fue hecha y comercializada por

    un mayor uso de fiabilidad en negocios, coninterfaz ms robusta y un sistema de redessimilar a los sistemas de red UNIX.

    A partir de la versin 5.0 (windows 2000)microsoft la combina con las versiones 9x y

    surgen las versiones de Windows XP, Vista y7, los cuales estn en la vanguardia enaplicaciones multimedia, redes, interfaz grficay seguridad.

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    23/46

    Introduccin a la Algoritmia

    Otros S.O.s

    Entre otros sistemas operativos, tenemos los de

    Apple (favorito para los fanticos de losgrficos, el diseo multimedia y la GUI)., IBM(OS/2, un sistema multitarea para mquinasbasadas en Intel en ambientes de negocios) yUNIX (primer sistema operativo multiusuario,multiprocesamiento en PCs y gratuito).

    Evolucin de la Computacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    24/46

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    25/46

    Introduccin a la Algoritmia

    AlgoritmoLa palabra Algoritmo proviene del nombre del matemtico llamado AbuAbdullah Muhammad bin Musa al-Khwarizmi, quien vivi entre los siglos VIII y

    IX. Su trabajo consisti en preservar y difundir el conocimiento de la antiguaGrecia y de la India.

    Explic que mediante una especificacin clara y concisa de cmo calcularsistemticamente se podran definir algoritmos que fueran usados en dispositivos

    mecnicos similares a un baco, en vez de las manos.

    La palabra Algoritmo como la conocemos fue asimilada debido a las distintasvariantes para el nombre al usar el alfabeto latn (Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi, Al-Khowarizmi).

    Etimologa

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    26/46

    Introduccin a la Algoritmia

    Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa lasoperaciones que un computador debe realizar para llevar a cabo la solucin de unproblema en un tiempo ms finito.

    Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo yformulados con base a un conjunto finito de reglas no ambiguas, que proveen unprocedimiento para dar la solucin o indicar la falta de esta a un problema en untiempo determinado.

    Definicin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    27/46

    Introduccin a la Algoritmia

    Pasos para Realizar un Algoritmo

    1- Definicin del Problema

    2-

    Anlisis del Problema

    3- Diseo del algoritmo

    4- Codificacin del algoritmo (convertir el algoritmo en programa)

    5- Prueba y depuracin

    6- Documentacin

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    28/46

    Introduccin a la Algoritmia

    Caractersticas de un Algoritmo

    Ser preciso e indicar el orden de realizacin de

    cada paso, no debe ser ambiguo. Debe estar definido. Si se sigue un algoritmo dos

    veces, se debe obtener el mismo resultado cadavez. Sin ambigedad, cada paso debe indicar laaccin a realizar sin criterios de interpretacin.

    Debe ser finito. Si se sigue un algoritmo, se debeterminar en algn momento, o sea, debe tener unnmero finito de pasos.

    Caractersticas de un Algoritmo

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    29/46

    Introduccin a la Algoritmia

    Caractersticas de un Algoritmo

    Debe resolver el problema correctamente. El tiempo

    y esfuerzo por cada paso realizado debe ser preciso,no usando nada ms ni nada menos que aquello quese requiera para y en su ejecucin.

    Tener una o ms salidas: Debe siempre devolver unresultado; de nada sirve un algoritmo que hace algo

    y nunca sabemos qu fue. Por salida de resultadosdebe entenderse todo medio o canal por el cual esposible apreciar los efectos de las acciones delalgoritmo.

    Caractersticas de un Algoritmo

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    30/46

    Introduccin a la Algoritmia

    * No Grficos:

    Representan en forma descriptiva las operaciones que debe realizar unalgoritmo (pseudo cdigo). Espaol Estructurado.

    * Grficos:

    Mapa estructurado que muestra los pasos del algoritmo (diagrama deflujo).

    Tipos de Algoritmos

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    31/46

    Introduccin a la Algoritmia

    Es una descripcin de alto nivel de un algoritmo que emplea una mezcla delenguaje natural con algunas convenciones sintcticas propias de lenguajes deprogramacin, como asignaciones, ciclos y condicionales, aunque no est regidopor ningn estndar.

    Requieren menos espacio para representar instrucciones complejas.

    Es uma herramienta de programacin em la que las instrucciones se escriben empalabras similares al ingls o espaol, que facilitan tanto la escritura como la lectura

    de programas. Em esencia, el pseudicdigo se puede definir como um lenguaje deespecificaciones de algoritmos.

    Pseudocdigo

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    32/46

    Introduccin a la Algoritmia

    Calcular la paga neta de un trabajador conociendo el nmero de horas trabajadas, latarifa horaria y la taza de impuestos.

    Algoritmo:

    1. Leer Horas, Tarifa, Tasa.

    2. Calcular PagaBruta = Horas * Tarifa

    3. Calcular Impuestos = PagaBruta * Tasa

    4. Calcular PagaNeta = PagaBrutaImpuestos

    5. Visualizar PagaBruta, Impuestos, PagaNeta.

    Pseudocdigo - Ejemplo

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    33/46

    Introduccin a la Algoritmia

    Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolosconectados con flechas para indicar la secuencia de instrucciones y estn registrospor ISO.

    Los diagramas de flujo son usados para representar algoritmos pequeos, ya queabarcan mucho espacio y su construccin es laboriosa. Por su facilidad de lecturason usados como introduccin a los algoritmos, descripcin de un lenguaje ydescripcin de procesos a personas ajenas a la computacin.

    Diagrama de Flujo

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    34/46

    Introduccin a la Algoritmia

    Simbologa

    Diagrama de Flujo

    FlujosMuestran ladireccin a la que fluye elproceso.

    TerminadorIniciar otermina un procesoalgortmico.

    ProcesoRealiza clculosy asignaciones.

    SalidaImprime porpantalla un letrero y/oinformacin.

    DecisinEvala unaexpresin y fija el curso deaccin correspondiente.

    EntradaCaptura uno ovarios datos desde elteclado.ConectoresControlan elflujo hacia otra parte delproceso.

    SubprocesoInvoca unafuncin definidapreviamente.

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    35/46

    Introduccin a la Algoritmia

    EjemploRealice un programa que calcule el sueldo neto de un empleado. De 1 a 1,000 se lededuce un 10%, sino un 25%.

    Diagrama de Flujo

    Inicio

    nombre, precio, horas

    bruto = horas * precio

    Nmina de nombre es Sueldo bruto:

    bruto, Deducciones: deduc, Sueldo

    neto: neto

    bruto

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    36/46

    Introduccin a la Algoritmia

    El primer objetivo de toda computadora es el manejo de la informacin o datos.Estos datos pueden ser las cifras de ventas de un supermercado o las calificacionesde una clase.

    La mayora de las instrucciones ejecutables de la computadora se reflejan encambios o en los valores de las partidas de datos. Los datos de entrada setransforman por el programa, despus de las etapas intermedias, en datos de salida.

    Existen dos clases de tipos de datos:

    - simples(sin estructura)- y compuestos (estructurados).

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    37/46

    Introduccin a la Algoritmia

    Los distintos tipos de datos se representan en diferentes formas en la computadora.A nivel de mquina, un dato es un conjunto o secuencia de bits (dgitos 0 1).

    Los tipos de datos simples son los siguientes:

    - numricos (enteros, reales)

    - lgicos

    - caracter

    Los tipos de datos compuestos son los siguientes:

    Cadenas (string) Vectores y Matrices (array)

    Punteros (pointer) Registro (records)

    Archivos o ficheros (file)

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    38/46

    Introduccin a la Algoritmia

    Los distintos tipos de datos se representan en diferentes formas en la computadora.A nivel de mquina, un dato es un conjunto o secuencia de bits (dgitos 0 1).

    Los tipos de datos simples son los siguientes:

    - numricos (enteros, reales)

    - lgicos

    - caracter

    Los tipos de datos compuestos son los siguientes:

    Cadenas (string) Vectores y Matrices (array)

    Punteros (pointer) Registro (records)

    Archivos o ficheros (file)

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    39/46

    Introduccin a la Algoritmia

    El tipo numrico es el conjunto de los valores numricos.

    Estos pueden representarse en dos formas distintas:

    tipo numrico entero

    tipo numrico real

    Enteros:

    Es un subconjunto finito de los nmeros enteros. Los enteros sonnmeros completos, no tienen componentes fraccionarios o decimales ypueden ser negativos o positivos.

    Ejemplos de nmeros enteros son:

    5 6 -15 4 20 1340 17

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    40/46

    Introduccin a la Algoritmia

    Reales: El tipo real consiste en un subconjunto de los nmeros reales.

    Los nmeros reales siempre tienen un punto decimal y pueden ser positivos onegativos. Un nmero real consta de un entero y una parte decimal.

    Ejemplos de nmeros reales son:

    0.08 3739.41 3.7452 -52.321 -8.12 3.0

    El tipo lgicotambin llamado booleanoes aquel que slo puede tomar uno dedos valores: verdadero o falso (true or false). Este tipo de datos se utiliza pararepresentar las alternativas (s/no) a determinadas condiciones. Por ejemplo,cuando se pide si un valor entero es par, la respuesta ser veradadera o falsa, segnsea par o impar.

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    41/46

    Introduccin a la Algoritmia

    El tipo caracter es el conjunto finito y ordenado de caracteres que la computadorareconoce. Un dato tipo caracter contiene un solo caracter.

    Los caracteres que reconocen las diferentes computadoras no son estndares; sinembargo, la mayora reconoce los siguientes caracteres alfabticos y numricos:

    Caracteres alfabticos (A, B, C, , Z) (a, b, c, . , z)

    Caracteres numricos (1, 2, 3, , 9, 0)

    Caracteres especiales (+, -, *, /, ^, ., ;, , $, )

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    42/46

    Introduccin a la Algoritmia

    Resumiendo los tipos de datos simples:

    Datos, Tipos de Datos y Variables

    DATOS

    NUMRICO CARACTER LGICO

    REALENTERO

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    43/46

    Introduccin a la Algoritmia

    Los programas de computadoras contienen ciertos valores que no deben cambiardurante la ejecucin del programa. Tales valores se llaman constantes. De igualforma, existen otros valores que cambiarn durante la ejecucin del programa; aestos valores se les llama variables.

    Una constante es una partida de datos que permanecen sin cambios durante todo eldesarrollo del algoritmo o durante la ejecucin del programa. El tipo de unaconstante lo define el valor que tienen asignado.

    Ejemplo de constantes:Numricas: 1.234, 4, 3.14, 12

    Caracter: a, ;, 2, +, X

    Lgicas: Verdadero y Falso

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    44/46

    Introduccin a la Algoritmia

    Una variable es un objeto o partida de datos cuyo valor puede cambiar durante eldesarrollo del algoritmo o ejecucin del programa.

    Una variable que es de un cierto tipo puede tomar nicamente valores de ese tipo.

    Una variable caracter, por ejemplo, puede tomar como valor slo caracteres,mientras que una variable entera puede tomar slo valores enteros. Si se intentaasignar un valor de un tipo a una variable de otro tipo se producira un error de tipo.

    Una variable se identifica por los atributos: nombre y tipo

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    45/46

    Introduccin a la Algoritmia

    Las variables se clasifican segn su uso en:

    De asignacin:

    Son aquellas que guardan resultados de operaciones, valores iniciales yvalores de otra variable.

    Contadores:

    Son aquellas que se usan para llevar la secuencia de alguna operacin quese est realizando.

    Siempre se debe inicializar esta variable en 0 para no obtener valores nodeseados del conteo.

    Datos, Tipos de Datos y Variables

  • 7/30/2019 Introd. a la Algoritmia - Tema 1

    46/46

    Introduccin a la Algoritmia

    Acumuladores:

    Cuando se utilizan para obtener la suma de una serie de valores. Tambinse debe inicializar a cero.

    Subndices:

    Manejan la referencia a una ilera de datos e indica la posicin de losdatos. El valor correspondiente es la posicin donde se encuentra el datoque se est procesando. Se inicializan de acuerdo a la posicin del valorcon que se empezara a trabajar.

    Datos, Tipos de Datos y Variables