SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Tema 1
Algoritmos
2
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
3
Introducción
 Un ordenador es un sistema para procesar información
Procesador
Entrada =
Datos
Salida =
Resultados
Algoritm
o
Introducción
 Ciclo de vida del software
4
análisis
diseño
IMPLEMENTACIÓN
PRUEBAS
mantenimiento
documentación
5
Contenidos
1. Introducción
2. Concepto de algoritmo
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
6
Concepto de algoritmo
 Algoritmo (según el DRAE):
(del árabe al-Khowârizmî) “Conjunto ordenado y finito de
operaciones que permite hallar la solución de un problema”
– Ejemplos sencillos de algoritmos según esta definición podrían ser
una receta de cocina o las instrucciones para armar una bicicleta.
7
Concepto de algoritmo
 Breve reseña histórica:
– Los primeros algoritmos registrados datan de Babilonia, originados
en las matemáticas como un método para resolver un problema
usando una secuencia de cálculos más simples.
– El primer algoritmo famoso es el cálculo del MCD de dos números
(Grecia, aproximadamente del s. IV a. C.).
8
Concepto de algoritmo
 En Informática:
– Un algoritmo es una secuencia de pasos a seguir para resolver un
problema usando un computador u ordenador.
– La algoritmia o ciencia de los algoritmos, es uno de los pilares de la
informática.
9
Concepto de algoritmo
 Definiciones básicas:
– Procesador: cualquier entidad capaz de resolver un problema
– Entorno: conjunto de utensilios que el procesador puede utilizar
– Estado: situación en la que se encuentra un entorno en un momento
dado.
10
Concepto de algoritmo
 Definiciones básicas
– Acción:
Conjunto finito de operaciones que permiten llegar de un estado
inicial bien definido a otro también bien definido.
– Tipos de acciones:
 Acción primitiva o elemental
– Puede ser realizada directamente por el procesador.
 Acción compuesta o abstracta
– Ha de descomponerse en acciones más elementales para poder ser entendida por
un procesador.
11
Concepto de algoritmo
 Definición formal de algoritmo:
“Dado un procesador, un entorno, y un problema bien
definido, un algoritmo es la secuencia finita de acciones
primitivas que llevan a la solución del problema”
12
Concepto de algoritmo
 Características de un algoritmo:
– Preciso (no ambiguo): la instrucción a ejecutar en cada paso queda
determinada perfectamente.
– Determinista: debe comportarse del mismo modo ante las mismas
condiciones. Si se sigue dos veces en el mismo entorno, el resultado
obtenido es el mismo.
– Finito: Tiene fin tras un número determinado de pasos.
13
Concepto de algoritmo
 Puede haber varios algoritmos que resuelven el mismo
problema.
 Pero cuál de ellos es mejor en términos de tiempo de
ejecución y de uso de memoria?
 Un algoritmo que resuelve un problema, pero tarda un año
en hacerlo, difícilmente será de utilidad.
 Por otro lado un algoritmo que necesita un gigabyte de
memoria principal no es útil.
14
Concepto de algoritmo
 Para determinar que algoritmo es mejor, tomaremos en
consideración dos aspectos:
 El coste o complejidad espacial, es decir la cantidad de
memoria que consume.
 El coste o complejidad temporal, es decir, el tiempo que
necesita para resolver un problema.
 Ambos determinan el coste o complejidad computacional. No
siempre coincidirán consumo espacial óptimo con mínimo
tiempo de ejecución.
15
Concepto de algoritmo
 Es posible calcular o estimar el tiempo de ejecución de un
algoritmo a partir del código fuente, sin necesidad de
implementar y ejecutar los programas?
 Vamos a estudiar esta posibilidad considerando tres
algoritmos que solucionan un mismo problema: el cálculo del
cuadrado del número 10.
16
Concepto de algoritmo
Producto
Inicio
m  10*10
Escribir M
Fin
Suma
Inicio
m  0
para(i0; i<10;i++)
mm+10
Escribir m
Fin
Incremento
Inicio
m  0
para(i0; i<10; i++)
para(j0; j<10;j++)
m++;
Escribir m
Fin
Cual de los tres se ejecutará más rápido
17
Concepto de algoritmo
 (No tendremos en cuenta el tiempo de impresión de
resultados en aras de simplificar la exposición.)
 Cada programa efectúa un número diferente de productos,
sumas e incrementos:
18
Y si el coste fuera diferente, como por ejemplo el de la
siguiente. Tabla:
 ¿Qué programa sería más rápido en este otro escenario?
 En ese caso, producto sería el más
 rápido e incremento el más lento
19
¿Y si sumar fuese más rápido? Pongamos por caso que los
tiempos de ejecución de cada operación fueran éstos:
 Entonces resultaría “vencedor” el programa que calcula 102 sumando
(tardaría 83 μs):
20
Concepto de algoritmo
 No es tan fácil, decidir qué programa es más rápido, al
menos no si queremos tener en cuenta el coste de cada
instrucción ya que éste depende del computador.
21
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
22
Lenguajes
de representación algorítmica
 ¿Cómo se escribe un algoritmo?
Representándolo mediante un lenguaje 
lenguaje de representación algorítmica
 Dos tipos de representación:
– Pseudocódigo
– Diagramas de flujo
23
Representación algorítmica
 Pseudocódigo:
– Lenguaje similar al natural, pero al que se añaden reglas para
conseguir una definición precisa del algoritmo
– Algunas reglas:
 Empieza por la palabra “Inicio” y termina con la palabra “Fin”
 Se escribe una acción por línea
 Se subrayan las palabras clave
24
Representación algorítmica
 Diagrama de Flujo (DF):
– Representación gráfica del flujo de control de un algoritmo
– Elementos del (DF):
Terminal
Entrada/
Salida
Decisión Subprograma
Proceso
Conectores
si
no
25
Inicio
Fin
SUMA <- 2
NUM <- 4
SUMA <- SUMA +
NUM
NUM <- NUM + 2
NUM <= 100
SI
escribir
SUMA
NO
Pseudocódigo Diagrama de flujo
Representación algorítmica
Entorno
suma, num
Inicio
// Iniciar variables
suma<- 2
num <- 4
// Suma de los números
repetir
suma <- suma + num
num <- num +2
mientras(num <= 100)
// Escribir resultado
escribir (suma)
Fin
26
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
27
 Hay que tener en cuenta que para resolver un determinado
problema existe más de un algoritmo
– Todos encuentran la solución correcta…
pero unos lo hacen mejor que otros.
Ejemplos de algoritmo
28
Ejemplos de algoritmo
 Multiplicar 981 por 1234
– Varias formas (algoritmos) de hacerlo:
 Método clásico
 Multiplicación “à la russe”
 Divide y vencerás
– Con todas se alcanza la solución
 ¿Cuál es la mejor? ¿Por qué?
29
Ejemplos de algoritmo
 Método tradicional
981
* 1234
3924
2943
1962
981
1210554
30
Ejemplos de algoritmo
 Método tradicional
Pero en UK…
981 981
* 1234 * 1234
3924 981
2943 1962
1962 2943
981 3924
1210554 1210554
31
Ejemplos de algoritmo
 Multiplicación “à la russe”
– Se escriben el multiplicando y el multiplicador iniciando dos
columnas.
– Se obtienen los siguientes elementos de las columnas,
hasta que quede un 1 en la columna de la izquierda:
 La columna de la izquierda se va dividiendo entre dos,
ignorando los restos.
 La columna de la derecha se va multiplicando por dos.
– El resultado se obtiene sumando los números de la
columna de la derecha cuyo número correspondiente de la
columna izquierda sea impar.
– Sólo es necesario saber sumar, multiplicar por 2 y dividir
entre 2. Se encuentra en el hardware de las ALU’s.
32
Ejemplos de algoritmo
 Multiplicación “à la russe”
981 1234
490 2468
245 4936
122 9872
61 19744
30 39488
15 78976
7 157952
3 315904
1 631808
33
Ejemplos de algoritmo
 Multiplicación “à la russe”
981 1234
490
245 4936
122
61 19744
30
15 78976
7 157952
3 315904
1 631808
SUMA = 1210554
34
Ejemplos de algoritmo
 Divide y vencerás
– Números con precisión par
– Se dividen por la mitad ambos operandos
– Se realizan las 4 multiplicaciones cruzadas
– Se suman los resultados desplazando previamente hacia la
izquierda
– Algoritmo recursivo
35
Ejemplos de algoritmo
 Divide y vencerás
0981
1234
Multiplicar Desplazar Resultado
09*12 4 108----
09*34 2 306--
81*12 2 972--
81*34 0 2754
Suma 1210554
36
Ejemplos de algoritmo
 Ejercicio:
– ¿Cuál es mejor y por qué?
– ¿Qué criterios podemos utilizar para valorar un algoritmo?
37
Ejercicios de algoritmos y optimización
 Ejercicio:
– ¿Cuál es mejor y por qué?
– ¿Qué criterios podemos utilizar para valorar un algoritmo?
38
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
39
Programas
 Programa: Algoritmo codificado en un lenguaje de
programación.
 Programar: Fraccionar un problema en forma de
instrucciones adecuadamente formuladas para que un
ordenador pueda llevarlas a la práctica.
40
Programas
 Las instrucciones se forman con elementos o símbolos
tomados de un determinado repertorio, y se construyen
siguiendo unas reglas precisas.
 Todo lo relativo a los símbolos y reglas para construir o
redactar con ellos un programa se denomina lenguaje de
programación.
41
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
42
Lenguajes de programación
Clasificación
 Lenguaje máquina:
– Es el que entienden los circuitos del computador (CPU)
– Inconvenientes:
 depende del modelo de computadora;
 el repertorio de instrucciones es muy reducido
 es muy laborioso
 Ensamblador (lenguaje de bajo nivel)
– Código nemotécnico para recordar mejor las instrucciones máquina
– Se mantienen los otros inconvenientes del lenguaje máquina
 Lenguajes de alto nivel
– No dependen de la computadora, y facilitan la tarea de
programación
43
Lenguajes de programación
Lenguajes de alto nivel
 FORTRAN (Formula Translation): Primer LAN(década de los 50).
Aplicaciones científico-técnicas (grandes computadores y
supercomputadores)
 COBOL (COmmon Busines Oriented Language): 1960. Aplicaciones
comerciales y de gestión.
 BASIC (Beginner’s All-purpose Symbolic Instruction Code). Desarrollado a
mediados de los 60 como lenguaje interactivo paraprincipiantes de
programación.
 Visual BASIC: es el lenguaje más popular. Versión de Microsoft del BASIC.
Permite crear programas en un ambiente visual (lenguaje de 4ª generación).
 C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo, pero es
potente, flexible y eficiente (el más utilizado para PCs y estaciones de
trabajo).
44
Lenguajes de programación
Lenguajes de alto nivel
 Pascal: Creado por Wirth en 1971. El mejor lenguaje para aprender a
programar y describir algoritmos.
 Ada: Es un lenguaje definido por el Ministerio de Defensa de USA a
finales de los 70. Esta basado en el Pascal y tiene unas reglas muy
estrictas.
 C++: Ideado a comienzos de los 80 en los BellLabs. Es una variante
del C que permite utilizar la moderna metodología de la programación
(“programación orientada a objetos”)
 Java: Desarrollado en 1991 por Sun, es similar a C++ pero más
sencillo de aprender y usar. Muy usado para programa interactivos y
dinámicos (“applets” de web). Se ha definido un computador virtual
Java compatible, cualquier computador con un programa que lo emule
puede ejecutar aplicaciones Java.
45
Lenguajes de programación
Lenguajes de alto nivel
 Otros lenguajes (usados en Inteligencia artificial):
– LISP (LISt Processing): Finales de los 50. Procesamiento
de datos no numéricos (caracteres, palabras y otros
símbolos). Se usa en Inteligencia Artificial.
– PROLOG:(Programming Logic): Trabaja con relaciones
lógicas entre hechos. Muy usado en inteligencia artificial.
– LOGO: versión simplificada del LISP para niños.
46
Lenguajes de programación
Traductores
 Traducción: Proceso por el cual se convierte el texto del
programa de entrada en el de salida.
– Lenguaje fuente: lenguaje en el que se escribe la entrada
– Lenguaje objeto: lenguaje en el que se escribe la salida. En general,
muy diferente del lenguaje fuente
 Compilador: Programa que acepta como entrada un texto de
programa escrito en un cierto lenguaje de alto nivel y genera
como salida texto de programa en otro lenguaje,
generalmente lenguaje máquina.
47
Lenguajes de programación
Compiladores
 Compilar ≈ Convertir de un formato a otro
– El significado deberá permanecer inalterado en la conversión
– La entrada está escrita en un lenguaje  Tiene estructura
– Semántica asociada y descrita en términos de esa estructura
 El compilador “comprende” el programa y recolecta su
significado en una representación semántica intermedia
 A la hora de generar la salida  se genera estructura y
significado
48
Lenguajes de programación Intérpretes
 Forma de trabajar cada vez más frecuente: Intérpretes
– En vez de traducir, realiza las acciones directamente
– Por ejemplo, la máquina virtual de Java
 Ventajas del uso de intérpretes
– Portabilidad: Un intérprete se escribe, habitualmente, en lenguaje de alto nivel
– Sencillez: Escribir un intérprete es menos costoso que escribir un compilador
– Señalización y manejo de errores: los compiladores cuidan “demasiado” la
eficiencia de código
– Seguridad: Funcionamiento más transparente al usuario
 Desventajas: Velocidad de los programas interpretados y consumo de
memoria.
49
Lenguajes de programación
Compiladores vs. Intérpretes
 Compiladores:
– El procesamiento del programa es considerable
– El mecanismo de interpretación previsto es la CPU (hw)
– La ejecución del programa traducido es relativamente rápida
 Intérpretes:
– El procesamiento del programa es entre mínimo y moderado
– El mecanismo de interpretación es un programa (sw)
– La ejecución del programa es, en general, más lenta y más
segura
50
Contenidos
1. Introducción
2. Definiciones básicas
3. Lenguajes de representación algorítmica
4. Ejemplos de algoritmo
5. Programas
6. Lenguajes de programación
7. El proceso de programación
51
cc vi
A.out
Diseño
Error en tiempo
de los datos
Error en el tratamiento Error en tiempo
Analisis Traducción a código C
Compilación
Pruebas de ejecución
de compilación
de ejecución
al ordenador
Proceso de programación

Weitere ähnliche Inhalte

Ähnlich wie _Algoritmos.ppt

Algoritmo
Algoritmo Algoritmo
Algoritmo jhohamn
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.pptssuser948499
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.pptJmpRene
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.pptaudysilva5
 
Unidad2 compu luis jimenez
Unidad2 compu luis jimenezUnidad2 compu luis jimenez
Unidad2 compu luis jimenezLuisJoseJimenez
 
Algoritmos computacionales y programación: 1
 Algoritmos computacionales y programación: 1 Algoritmos computacionales y programación: 1
Algoritmos computacionales y programación: 1Universidad Veracruzana
 
CURSO HERRAMIENTAS INFORMATICAS
CURSO HERRAMIENTAS INFORMATICASCURSO HERRAMIENTAS INFORMATICAS
CURSO HERRAMIENTAS INFORMATICASRodrigo Ruiz Mere
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptssuser6eba56
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pcguest965b17
 
Algoritmos y programas datos importantes
Algoritmos y programas datos importantesAlgoritmos y programas datos importantes
Algoritmos y programas datos importantesEsteban Bedoya
 

Ähnlich wie _Algoritmos.ppt (20)

AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo
Algoritmo Algoritmo
Algoritmo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppt
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppt
 
tema6-algoritmos-2010 (1).ppt
tema6-algoritmos-2010 (1).ppttema6-algoritmos-2010 (1).ppt
tema6-algoritmos-2010 (1).ppt
 
tema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppttema6-algoritmos-2010.ppt
tema6-algoritmos-2010.ppt
 
Unidad2 compu luis jimenez
Unidad2 compu luis jimenezUnidad2 compu luis jimenez
Unidad2 compu luis jimenez
 
Fundamentos de agoritmos
Fundamentos de agoritmosFundamentos de agoritmos
Fundamentos de agoritmos
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Algoritmos computacionales y programación: 1
 Algoritmos computacionales y programación: 1 Algoritmos computacionales y programación: 1
Algoritmos computacionales y programación: 1
 
CURSO HERRAMIENTAS INFORMATICAS
CURSO HERRAMIENTAS INFORMATICASCURSO HERRAMIENTAS INFORMATICAS
CURSO HERRAMIENTAS INFORMATICAS
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pc
 
Vivi Reinoso
Vivi ReinosoVivi Reinoso
Vivi Reinoso
 
Algoritmos y programas datos importantes
Algoritmos y programas datos importantesAlgoritmos y programas datos importantes
Algoritmos y programas datos importantes
 

Kürzlich hochgeladen

Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosisauVillalva
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptReYMaStERHD
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptxNancyJulcasumaran
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potableFabricioMogroMantill
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfCristinCrdova1
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx170766
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheElisaLen4
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosRamiroCruzSalazar
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoluishumbertoalvarezv1
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfssuser202b79
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 

Kürzlich hochgeladen (20)

Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 

_Algoritmos.ppt

  • 2. 2 Contenidos 1. Introducción 2. Concepto de algoritmo 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 3. 3 Introducción  Un ordenador es un sistema para procesar información Procesador Entrada = Datos Salida = Resultados Algoritm o
  • 4. Introducción  Ciclo de vida del software 4 análisis diseño IMPLEMENTACIÓN PRUEBAS mantenimiento documentación
  • 5. 5 Contenidos 1. Introducción 2. Concepto de algoritmo 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 6. 6 Concepto de algoritmo  Algoritmo (según el DRAE): (del árabe al-Khowârizmî) “Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema” – Ejemplos sencillos de algoritmos según esta definición podrían ser una receta de cocina o las instrucciones para armar una bicicleta.
  • 7. 7 Concepto de algoritmo  Breve reseña histórica: – Los primeros algoritmos registrados datan de Babilonia, originados en las matemáticas como un método para resolver un problema usando una secuencia de cálculos más simples. – El primer algoritmo famoso es el cálculo del MCD de dos números (Grecia, aproximadamente del s. IV a. C.).
  • 8. 8 Concepto de algoritmo  En Informática: – Un algoritmo es una secuencia de pasos a seguir para resolver un problema usando un computador u ordenador. – La algoritmia o ciencia de los algoritmos, es uno de los pilares de la informática.
  • 9. 9 Concepto de algoritmo  Definiciones básicas: – Procesador: cualquier entidad capaz de resolver un problema – Entorno: conjunto de utensilios que el procesador puede utilizar – Estado: situación en la que se encuentra un entorno en un momento dado.
  • 10. 10 Concepto de algoritmo  Definiciones básicas – Acción: Conjunto finito de operaciones que permiten llegar de un estado inicial bien definido a otro también bien definido. – Tipos de acciones:  Acción primitiva o elemental – Puede ser realizada directamente por el procesador.  Acción compuesta o abstracta – Ha de descomponerse en acciones más elementales para poder ser entendida por un procesador.
  • 11. 11 Concepto de algoritmo  Definición formal de algoritmo: “Dado un procesador, un entorno, y un problema bien definido, un algoritmo es la secuencia finita de acciones primitivas que llevan a la solución del problema”
  • 12. 12 Concepto de algoritmo  Características de un algoritmo: – Preciso (no ambiguo): la instrucción a ejecutar en cada paso queda determinada perfectamente. – Determinista: debe comportarse del mismo modo ante las mismas condiciones. Si se sigue dos veces en el mismo entorno, el resultado obtenido es el mismo. – Finito: Tiene fin tras un número determinado de pasos.
  • 13. 13 Concepto de algoritmo  Puede haber varios algoritmos que resuelven el mismo problema.  Pero cuál de ellos es mejor en términos de tiempo de ejecución y de uso de memoria?  Un algoritmo que resuelve un problema, pero tarda un año en hacerlo, difícilmente será de utilidad.  Por otro lado un algoritmo que necesita un gigabyte de memoria principal no es útil.
  • 14. 14 Concepto de algoritmo  Para determinar que algoritmo es mejor, tomaremos en consideración dos aspectos:  El coste o complejidad espacial, es decir la cantidad de memoria que consume.  El coste o complejidad temporal, es decir, el tiempo que necesita para resolver un problema.  Ambos determinan el coste o complejidad computacional. No siempre coincidirán consumo espacial óptimo con mínimo tiempo de ejecución.
  • 15. 15 Concepto de algoritmo  Es posible calcular o estimar el tiempo de ejecución de un algoritmo a partir del código fuente, sin necesidad de implementar y ejecutar los programas?  Vamos a estudiar esta posibilidad considerando tres algoritmos que solucionan un mismo problema: el cálculo del cuadrado del número 10.
  • 16. 16 Concepto de algoritmo Producto Inicio m  10*10 Escribir M Fin Suma Inicio m  0 para(i0; i<10;i++) mm+10 Escribir m Fin Incremento Inicio m  0 para(i0; i<10; i++) para(j0; j<10;j++) m++; Escribir m Fin Cual de los tres se ejecutará más rápido
  • 17. 17 Concepto de algoritmo  (No tendremos en cuenta el tiempo de impresión de resultados en aras de simplificar la exposición.)  Cada programa efectúa un número diferente de productos, sumas e incrementos:
  • 18. 18 Y si el coste fuera diferente, como por ejemplo el de la siguiente. Tabla:  ¿Qué programa sería más rápido en este otro escenario?  En ese caso, producto sería el más  rápido e incremento el más lento
  • 19. 19 ¿Y si sumar fuese más rápido? Pongamos por caso que los tiempos de ejecución de cada operación fueran éstos:  Entonces resultaría “vencedor” el programa que calcula 102 sumando (tardaría 83 μs):
  • 20. 20 Concepto de algoritmo  No es tan fácil, decidir qué programa es más rápido, al menos no si queremos tener en cuenta el coste de cada instrucción ya que éste depende del computador.
  • 21. 21 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 22. 22 Lenguajes de representación algorítmica  ¿Cómo se escribe un algoritmo? Representándolo mediante un lenguaje  lenguaje de representación algorítmica  Dos tipos de representación: – Pseudocódigo – Diagramas de flujo
  • 23. 23 Representación algorítmica  Pseudocódigo: – Lenguaje similar al natural, pero al que se añaden reglas para conseguir una definición precisa del algoritmo – Algunas reglas:  Empieza por la palabra “Inicio” y termina con la palabra “Fin”  Se escribe una acción por línea  Se subrayan las palabras clave
  • 24. 24 Representación algorítmica  Diagrama de Flujo (DF): – Representación gráfica del flujo de control de un algoritmo – Elementos del (DF): Terminal Entrada/ Salida Decisión Subprograma Proceso Conectores si no
  • 25. 25 Inicio Fin SUMA <- 2 NUM <- 4 SUMA <- SUMA + NUM NUM <- NUM + 2 NUM <= 100 SI escribir SUMA NO Pseudocódigo Diagrama de flujo Representación algorítmica Entorno suma, num Inicio // Iniciar variables suma<- 2 num <- 4 // Suma de los números repetir suma <- suma + num num <- num +2 mientras(num <= 100) // Escribir resultado escribir (suma) Fin
  • 26. 26 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 27. 27  Hay que tener en cuenta que para resolver un determinado problema existe más de un algoritmo – Todos encuentran la solución correcta… pero unos lo hacen mejor que otros. Ejemplos de algoritmo
  • 28. 28 Ejemplos de algoritmo  Multiplicar 981 por 1234 – Varias formas (algoritmos) de hacerlo:  Método clásico  Multiplicación “à la russe”  Divide y vencerás – Con todas se alcanza la solución  ¿Cuál es la mejor? ¿Por qué?
  • 29. 29 Ejemplos de algoritmo  Método tradicional 981 * 1234 3924 2943 1962 981 1210554
  • 30. 30 Ejemplos de algoritmo  Método tradicional Pero en UK… 981 981 * 1234 * 1234 3924 981 2943 1962 1962 2943 981 3924 1210554 1210554
  • 31. 31 Ejemplos de algoritmo  Multiplicación “à la russe” – Se escriben el multiplicando y el multiplicador iniciando dos columnas. – Se obtienen los siguientes elementos de las columnas, hasta que quede un 1 en la columna de la izquierda:  La columna de la izquierda se va dividiendo entre dos, ignorando los restos.  La columna de la derecha se va multiplicando por dos. – El resultado se obtiene sumando los números de la columna de la derecha cuyo número correspondiente de la columna izquierda sea impar. – Sólo es necesario saber sumar, multiplicar por 2 y dividir entre 2. Se encuentra en el hardware de las ALU’s.
  • 32. 32 Ejemplos de algoritmo  Multiplicación “à la russe” 981 1234 490 2468 245 4936 122 9872 61 19744 30 39488 15 78976 7 157952 3 315904 1 631808
  • 33. 33 Ejemplos de algoritmo  Multiplicación “à la russe” 981 1234 490 245 4936 122 61 19744 30 15 78976 7 157952 3 315904 1 631808 SUMA = 1210554
  • 34. 34 Ejemplos de algoritmo  Divide y vencerás – Números con precisión par – Se dividen por la mitad ambos operandos – Se realizan las 4 multiplicaciones cruzadas – Se suman los resultados desplazando previamente hacia la izquierda – Algoritmo recursivo
  • 35. 35 Ejemplos de algoritmo  Divide y vencerás 0981 1234 Multiplicar Desplazar Resultado 09*12 4 108---- 09*34 2 306-- 81*12 2 972-- 81*34 0 2754 Suma 1210554
  • 36. 36 Ejemplos de algoritmo  Ejercicio: – ¿Cuál es mejor y por qué? – ¿Qué criterios podemos utilizar para valorar un algoritmo?
  • 37. 37 Ejercicios de algoritmos y optimización  Ejercicio: – ¿Cuál es mejor y por qué? – ¿Qué criterios podemos utilizar para valorar un algoritmo?
  • 38. 38 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 39. 39 Programas  Programa: Algoritmo codificado en un lenguaje de programación.  Programar: Fraccionar un problema en forma de instrucciones adecuadamente formuladas para que un ordenador pueda llevarlas a la práctica.
  • 40. 40 Programas  Las instrucciones se forman con elementos o símbolos tomados de un determinado repertorio, y se construyen siguiendo unas reglas precisas.  Todo lo relativo a los símbolos y reglas para construir o redactar con ellos un programa se denomina lenguaje de programación.
  • 41. 41 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 42. 42 Lenguajes de programación Clasificación  Lenguaje máquina: – Es el que entienden los circuitos del computador (CPU) – Inconvenientes:  depende del modelo de computadora;  el repertorio de instrucciones es muy reducido  es muy laborioso  Ensamblador (lenguaje de bajo nivel) – Código nemotécnico para recordar mejor las instrucciones máquina – Se mantienen los otros inconvenientes del lenguaje máquina  Lenguajes de alto nivel – No dependen de la computadora, y facilitan la tarea de programación
  • 43. 43 Lenguajes de programación Lenguajes de alto nivel  FORTRAN (Formula Translation): Primer LAN(década de los 50). Aplicaciones científico-técnicas (grandes computadores y supercomputadores)  COBOL (COmmon Busines Oriented Language): 1960. Aplicaciones comerciales y de gestión.  BASIC (Beginner’s All-purpose Symbolic Instruction Code). Desarrollado a mediados de los 60 como lenguaje interactivo paraprincipiantes de programación.  Visual BASIC: es el lenguaje más popular. Versión de Microsoft del BASIC. Permite crear programas en un ambiente visual (lenguaje de 4ª generación).  C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo, pero es potente, flexible y eficiente (el más utilizado para PCs y estaciones de trabajo).
  • 44. 44 Lenguajes de programación Lenguajes de alto nivel  Pascal: Creado por Wirth en 1971. El mejor lenguaje para aprender a programar y describir algoritmos.  Ada: Es un lenguaje definido por el Ministerio de Defensa de USA a finales de los 70. Esta basado en el Pascal y tiene unas reglas muy estrictas.  C++: Ideado a comienzos de los 80 en los BellLabs. Es una variante del C que permite utilizar la moderna metodología de la programación (“programación orientada a objetos”)  Java: Desarrollado en 1991 por Sun, es similar a C++ pero más sencillo de aprender y usar. Muy usado para programa interactivos y dinámicos (“applets” de web). Se ha definido un computador virtual Java compatible, cualquier computador con un programa que lo emule puede ejecutar aplicaciones Java.
  • 45. 45 Lenguajes de programación Lenguajes de alto nivel  Otros lenguajes (usados en Inteligencia artificial): – LISP (LISt Processing): Finales de los 50. Procesamiento de datos no numéricos (caracteres, palabras y otros símbolos). Se usa en Inteligencia Artificial. – PROLOG:(Programming Logic): Trabaja con relaciones lógicas entre hechos. Muy usado en inteligencia artificial. – LOGO: versión simplificada del LISP para niños.
  • 46. 46 Lenguajes de programación Traductores  Traducción: Proceso por el cual se convierte el texto del programa de entrada en el de salida. – Lenguaje fuente: lenguaje en el que se escribe la entrada – Lenguaje objeto: lenguaje en el que se escribe la salida. En general, muy diferente del lenguaje fuente  Compilador: Programa que acepta como entrada un texto de programa escrito en un cierto lenguaje de alto nivel y genera como salida texto de programa en otro lenguaje, generalmente lenguaje máquina.
  • 47. 47 Lenguajes de programación Compiladores  Compilar ≈ Convertir de un formato a otro – El significado deberá permanecer inalterado en la conversión – La entrada está escrita en un lenguaje  Tiene estructura – Semántica asociada y descrita en términos de esa estructura  El compilador “comprende” el programa y recolecta su significado en una representación semántica intermedia  A la hora de generar la salida  se genera estructura y significado
  • 48. 48 Lenguajes de programación Intérpretes  Forma de trabajar cada vez más frecuente: Intérpretes – En vez de traducir, realiza las acciones directamente – Por ejemplo, la máquina virtual de Java  Ventajas del uso de intérpretes – Portabilidad: Un intérprete se escribe, habitualmente, en lenguaje de alto nivel – Sencillez: Escribir un intérprete es menos costoso que escribir un compilador – Señalización y manejo de errores: los compiladores cuidan “demasiado” la eficiencia de código – Seguridad: Funcionamiento más transparente al usuario  Desventajas: Velocidad de los programas interpretados y consumo de memoria.
  • 49. 49 Lenguajes de programación Compiladores vs. Intérpretes  Compiladores: – El procesamiento del programa es considerable – El mecanismo de interpretación previsto es la CPU (hw) – La ejecución del programa traducido es relativamente rápida  Intérpretes: – El procesamiento del programa es entre mínimo y moderado – El mecanismo de interpretación es un programa (sw) – La ejecución del programa es, en general, más lenta y más segura
  • 50. 50 Contenidos 1. Introducción 2. Definiciones básicas 3. Lenguajes de representación algorítmica 4. Ejemplos de algoritmo 5. Programas 6. Lenguajes de programación 7. El proceso de programación
  • 51. 51 cc vi A.out Diseño Error en tiempo de los datos Error en el tratamiento Error en tiempo Analisis Traducción a código C Compilación Pruebas de ejecución de compilación de ejecución al ordenador Proceso de programación