Introd. a la Algoritmia - Tema 1
-
Upload
miguel-moronta -
Category
Documents
-
view
238 -
download
2
Transcript of Introd. a la Algoritmia - Tema 1
-
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