Anda di halaman 1dari 46

Pontificia Universidad Catlica Madre y Maestra Vicerrectora Acadmica Facultad Ciencias de las Ingenieras Ingeniera en Sistemas y Computacin - ISC

Introduccin a la Algoritmia
Leccin 1 Introduccin a la Algoritmia

16-ene-13 Santiago, Rep. Dom.

Introduccin a la Algoritmia
Evolucin de la Computacin

El baco
Primer dispositivo mecnico para contar. Fecha estimada: 3,000 A.C. Origen: Abakos (superficie plana)

Introduccin a la Algoritmia
Evolucin de la Computacin

La Pascalina
Primera mquina mecnica de sumar. Origen:

1,642, francia, Blaise Pascal Caractersticas: Dimensiones de una caja de zapatos, com ruedas dentadas em su interior conectadas entre s que formaban uma cadena de transmisin.

Introduccin a la Algoritmia
Evolucin de la Computacin

Calculadora Universal
Mquina que sumaba, restaba, multiplicaba y divida. Origen: 1,673, alemania, Gottfried Leibniz (inventor del sistema binario) Otros datos: Sucesor de pascal y su pascalina.

Introduccin a la Algoritmia
Evolucin de la Computacin

El telar de Jacquard
Se controlaba por medio de tarjetas perforadas para conseguir tejer patrones em la tela. Origen: 1,801, francia, Joseph Jacquard Caractersticas: Permita an a inexpertos elaborar complejos diseos. Es la mquina inferior que intersecciona los hilos para producir la tela.

Introduccin a la Algoritmia
Evolucin de la Computacin

Mquina Analtica
Era un computador de uso general. Debera funcionar 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. Tambin perforara tarjetas. Almacenara 1,000 nmeros de 50 dgitos c/u. Otros datos: No pudo ser construida debido a razones de ndole financiera, polticca y legal.

Introduccin a la Algoritmia
Evolucin de la Computacin

Mquina Tabuladora
Sistema de tarjetas perforadas elctricas basado en la lgica de Boole. Origen: 1890, E.E.U.U., Herman Hollerith Otros datos: Utilizada para tabular el censo del 1890 de E.E.U.U., proceso que dur 2 aos. Se cre luego la Tabulating Machine Company, con la que se fund luego la IBM.

Introduccin a la Algoritmia
Evolucin de la Computacin

Generaciones de la Computadora
Varan segn varios autores, pero todos concuerdan en que existen al menos 5; desde la primera hasta la quinta, variando entre s segn el tipo de computador, sus caractersticas, su velocidad y su propsito.

Introduccin a la Algoritmia
Evolucin de la Computacin

1era. Generacin
1951-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 y lentas. Velocidad: 1,000 calculaciones por segundo. Propsito: Apoyar grandes compaas privadas y al gobierno. Matemticas o de negocios.

Introduccin a la Algoritmia
Evolucin de la Computacin

2da. Generacin
1959-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, pero an no su costo. Velocidad: 10,000 calculaciones por segundo. Propsito: Surgen los primeros procesadores de palabra y hojas de clculo.

Introduccin a la Algoritmia
Evolucin de la Computacin

3ra. Generacin
1964-1971 (IBM 360, DEC PDP-1) Caractersticas: - Se desarrollan los circuitos integrados (pastillas de silicio) para integrar miles de componentes. - 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.

Introduccin a la Algoritmia
Evolucin de la Computacin

4ta. Generacin
1971-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 los hogares.

Introduccin a la Algoritmia
Evolucin de la Computacin

5ta. Generacin
1988-Actual. (IBM AT, DEC PDP-1) Caractersticas: - Gran evolucin de microprocesadores, hasta convertirse en multi-ncleos. - Surgen las microcomputadores y supercomputadoras. - Se desarrolla la inteligencia artificial, robtica, sistemas expertos y redes de comunicaciones. Velocidad: 112,000,000 clcs. por segundo en adelante.

Introduccin a la Algoritmia
Evolucin de la Computacin

Tipos de Computadoras
- Supercomputadoras - Macrocomputadores (mainframes) - Minicomputadoras - Microcomputadores (PCs)

Introduccin a la Algoritmia
Evolucin de la Computacin

Supercomputadoras
Es el ms potente y rpido Diseadas para procesar enormes cantidades de informaciones en 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 para la creacin de aviones, simuladores de vuelo.

Introduccin a la Algoritmia
Evolucin de la Computacin

Mainframes
Grandes, rpidos sistemas capaces de controlar cientos de usuarios y dispositivos. Son ms poderosas para ejecutar a varias tareas simultnea y rpidamente.

Introduccin a la Algoritmia
Evolucin de la Computacin

Minicomputadoras
Versin ms pequea que mainframe; ms econmica y menor mantenimiento. Es orientada a tareas especficas. Es multiproceso, capaz de soportar hasta 200 usuarios simultneamente. Se usa para almacenar grandes bases de datos, servidores de archivos, web, correo, entre otras.

Introduccin a la Algoritmia
Evolucin de la Computacin

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 del monitor. 4. Computadores que estn en una sola unidad (monitor y gabinete/CPU). 5. Estaciones de trabajo.

Introduccin a la Algoritmia
Evolucin de la Computacin

Sistema Operativo
Es un conjunto de componentes lgicos (software) interconectados entre s que actan como interfaz entre los dispositivos fsicos (hardware) y el usuario, para que ste ltimo pueda utilizar un computador. Sus principales componentes son la gestin de procesos, gestin de la memoria principal, gestin de almacenamiento secundario, el sistema de entrada-salida, el sistema de archivos, sistemas de proteccin, sistema de comunicaciones, programas del sistema y gestor de recursos.

Introduccin a la Algoritmia
Evolucin de la Computacin

S.O.s de Microsoft
MS-DOS domin el mercado de sistemas operativos durante los aos 80s. Se caracterizaba por ser monotarea y monousuario para ordenadores personales. Windows 3.0, 3.1 y 3.11 surgieron entre el 1990 y 1992. Tena interfaz grfica, incluy la memoria virtual y cierta mejora en controladores de dispositivo.

Introduccin a la Algoritmia
Evolucin de la Computacin

S.O.s de Microsoft
Windows 95 era hbrido entre 16 y 32 bits. Sustituye a MS-DOS como sistema operativo y Windows 3.x como entorno grfico. Incorpor el sistema de archivos FAT32, era compatible con USB. Tena una interfaz simplificada y era compatible con las anteriores versiones de Windows.

Introduccin a la Algoritmia
Evolucin de la Computacin

S.O.s de Microsoft
Windows NT fue hecha y comercializada por un mayor uso de fiabilidad en negocios, con interfaz ms robusta y un sistema de redes similar 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 y 7, los cuales estn en la vanguardia en aplicaciones multimedia, redes, interfaz grfica y seguridad.

Introduccin a la Algoritmia
Evolucin de la Computacin

Otros S.O.s
Entre otros sistemas operativos, tenemos los de Apple (favorito para los fanticos de los grficos, el diseo multimedia y la GUI)., IBM (OS/2, un sistema multitarea para mquinas basadas en Intel en ambientes de negocios) y UNIX (primer sistema operativo multiusuario, multiprocesamiento en PCs y gratuito).

Introduccin a la Algoritmia
Etimologa

Algoritmo
La palabra Algoritmo proviene del nombre del matemtico llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi, quien vivi entre los siglos VIII y IX. Su trabajo consisti en preservar y difundir el conocimiento de la antigua Grecia y de la India. Explic que mediante una especificacin clara y concisa de cmo calcular sistemticamente 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 distintas variantes para el nombre al usar el alfabeto latn (Al-Khorezmi, Al-Khwarizmi, AlKhawarizmi, Al-Khawaritzmi, Al-Khowarizmi).

Introduccin a la Algoritmia
Definicin
Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones que un computador debe realizar para llevar a cabo la solucin de un problema en un tiempo ms finito.
Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solucin o indicar la falta de esta a un problema en un tiempo determinado.

Introduccin a la Algoritmia
Pasos para Realizar un Algoritmo
Definicin del Problema
Anlisis del Problema Diseo del algoritmo Codificacin del algoritmo (convertir el algoritmo en programa)

1-

2-

3-

4-

5-

Prueba y depuracin
Documentacin

6-

Introduccin a la Algoritmia
Caractersticas de un Algoritmo

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 cada vez. Sin ambigedad, cada paso debe indicar la accin a realizar sin criterios de interpretacin. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento, o sea, debe tener un nmero finito de pasos.

Introduccin a la Algoritmia
Caractersticas de un Algoritmo
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 que se requiera para y en su ejecucin. Tener una o ms salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos qu fue. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.

Introduccin a la Algoritmia
Tipos de Algoritmos
* No Grficos: Representan en forma descriptiva las operaciones que debe realizar un algoritmo (pseudo cdigo). Espaol Estructurado.
* Grficos: Mapa estructurado que muestra los pasos del algoritmo (diagrama de flujo).

Introduccin a la Algoritmia
Pseudocdigo
Es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Requieren menos espacio para representar instrucciones complejas.
Es uma herramienta de programacin em la que las instrucciones se escriben em palabras 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 de especificaciones de algoritmos.

Introduccin a la Algoritmia
Pseudocdigo - Ejemplo
Calcular la paga neta de un trabajador conociendo el nmero de horas trabajadas, la tarifa 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 = PagaBruta Impuestos 5. Visualizar PagaBruta, Impuestos, PagaNeta.

Introduccin a la Algoritmia
Diagrama de Flujo
Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn registros por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin.

Introduccin a la Algoritmia
Diagrama de Flujo

Simbologa
Flujos Muestran la direccin a la que fluye el proceso. Terminador Iniciar o termina un proceso algortmico. Proceso Realiza clculos y asignaciones. Decisin Evala una expresin y fija el curso de accin correspondiente. Entrada Captura uno o varios datos desde el teclado. Conectores Controlan el flujo hacia otra parte del proceso.

Salida Imprime por pantalla un letrero y/o informacin.

Subproceso Invoca una funcin definida previamente.

Introduccin a la Algoritmia
Diagrama de Flujo

Ejemplo
Realice un programa que calcule el sueldo neto de un empleado. De 1 a 1,000 se le deduce un 10%, sino un 25%.
Inicio nombre, precio, horas

bruto = horas * precio Fin bruto <=1000 no deduc = bruto * 0.25 neto = bruto - deduc si deduc = bruto * 0.10 Nmina de nombre es Sueldo bruto: bruto, Deducciones: deduc, Sueldo neto: neto

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
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 calificaciones de una clase.
La mayora de las instrucciones ejecutables de la computadora se reflejan en cambios o en los valores de las partidas de datos. Los datos de entrada se transforman 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).

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
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)

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
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)

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
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 son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos. Ejemplos de nmeros enteros son: 5 6 -15 4

20

1340

17

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Reales: El tipo real consiste en un subconjunto de los nmeros reales.
Los nmeros reales siempre tienen un punto decimal y pueden ser positivos o negativos. 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 lgico tambin llamado booleano es aquel que slo puede tomar uno de dos valores: verdadero o falso (true or false). Este tipo de datos se utiliza para representar las alternativas (s/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta ser veradadera o falsa, segn sea par o impar.

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
El tipo caracter es el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipo caracter contiene un solo caracter.
Los caracteres que reconocen las diferentes computadoras no son estndares; sin embargo, 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 (+, -, *, /, ^, ., ;, <, >, $, )

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Resumiendo los tipos de datos simples:

DATOS

NUMRICO

CARACTER

LGICO

ENTERO

REAL

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Los programas de computadoras contienen ciertos valores que no deben cambiar durante la ejecucin del programa. Tales valores se llaman constantes. De igual forma, existen otros valores que cambiarn durante la ejecucin del programa; a estos valores se les llama variables. Una constante es una partida de datos que permanecen sin cambios durante todo el desarrollo del algoritmo o durante la ejecucin del programa. El tipo de una constante 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

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo 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 intenta asignar 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

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Las variables se clasifican segn su uso en:
De asignacin: Son aquellas que guardan resultados de operaciones, valores iniciales y valores de otra variable. Contadores: Son aquellas que se usan para llevar la secuencia de alguna operacin que se est realizando. Siempre se debe inicializar esta variable en 0 para no obtener valores no deseados del conteo.

Introduccin a la Algoritmia
Datos, Tipos de Datos y Variables
Acumuladores: Cuando se utilizan para obtener la suma de una serie de valores. Tambin se debe inicializar a cero.
Subndices: Manejan la referencia a una ilera de datos e indica la posicin de los datos. El valor correspondiente es la posicin donde se encuentra el dato que se est procesando. Se inicializan de acuerdo a la posicin del valor con que se empezara a trabajar.

Anda mungkin juga menyukai