tema 6 algoritmos y programas fundamentos de informática. i.t.i. mecánica e i.t.i. química. curso...
TRANSCRIPT
![Page 1: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/1.jpg)
Tema 6
Algoritmos y Programas
Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química.
Curso 2009/2010© Dpto. de Informática UVA
![Page 2: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/2.jpg)
Tema 6: Algoritmos y Programas
2
Objetivos
Al terminar este tema deberás ser capaz de:– Definir qué es un algoritmo.– Describir las características que debe cumplir un
algoritmo.– Representar un algoritmo.– Definir qué es un programa.– Describir las propiedades del lenguaje C.
![Page 3: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/3.jpg)
Tema 6: Algoritmos y Programas
3
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
8. Introducción al lenguaje C
![Page 4: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/4.jpg)
Tema 6: Algoritmos y Programas
4
Introducción
Un ordenador es un sistema para procesar información
ProcesadorEntrada = Datos
Salida = Resultados
Algoritmo
![Page 5: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/5.jpg)
Tema 6: Algoritmos y Programas
Introducción
Ciclo de vida del software
5
análisis
diseñoIMPLEMENTACIÓN
PRUEBAS
documentación
![Page 6: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/6.jpg)
Tema 6: Algoritmos y Programas
6
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
8. Introducción al lenguaje C
![Page 7: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/7.jpg)
Tema 6: Algoritmos y Programas
7
Concepto de algoritmo
AlgoritmoAlgoritmo (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.
![Page 8: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/8.jpg)
Tema 6: Algoritmos y Programas
8
Concepto de algoritmo
Breve reseña histórica: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.).
![Page 9: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/9.jpg)
Tema 6: Algoritmos y Programas
9
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.
![Page 10: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/10.jpg)
Tema 6: Algoritmos y Programas
10
Concepto de algoritmo
Definiciones básicas:– ProcesadorProcesador: cualquier entidad capaz de resolver
un problema– EntornoEntorno: conjunto de utensilios que el procesador
puede utilizar– EstadoEstado: situación en la que se encuentra un
entorno en un momento dado.
![Page 11: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/11.jpg)
Tema 6: Algoritmos y Programas
11
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.
![Page 12: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/12.jpg)
Tema 6: Algoritmos y Programas
12
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”
![Page 13: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/13.jpg)
Tema 6: Algoritmos y Programas
13
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.
![Page 14: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/14.jpg)
Tema 6: Algoritmos y Programas
14
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
8. Introducción al lenguaje C
![Page 15: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/15.jpg)
Tema 6: Algoritmos y Programas
15
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
![Page 16: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/16.jpg)
Tema 6: Algoritmos y Programas
16
Representación algorítmica
PseudocódigoPseudocó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
![Page 17: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/17.jpg)
Tema 6: Algoritmos y Programas
17
Representación algorítmica
Diagrama de Flujo (DF)Diagrama de Flujo (DF):– Representación gráfica del flujo de control de un
algoritmo– Elementos del (DF):
TerminalEntrada/Salida
Decisión Subprograma
Proceso
Conectores
si
no
![Page 18: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/18.jpg)
Tema 6: Algoritmos y Programas
18
Inicio
Fin
SUMA <- 2NUM <- 4
SUMA <- SUMA +NUM
NUM <- NUM + 2
NUM <= 100
SI
escribirSUMA
NO
Pseudocódigo Diagrama de flujo
Representación algorítmica
Entorno suma, numInicio // Iniciar variables
suma<- 2 num <- 4
// Suma de los númerosrepetir
suma <- suma + numnum <- num +2
mientras (num <= 100) // Escribir resultado escribir (suma)Fin
![Page 19: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/19.jpg)
Tema 6: Algoritmos y Programas
19
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
8. Introducción al lenguaje C
![Page 20: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/20.jpg)
Tema 6: Algoritmos y Programas
20
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
![Page 21: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/21.jpg)
Tema 6: Algoritmos y Programas
21
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é?
![Page 22: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/22.jpg)
Tema 6: Algoritmos y Programas
22
Ejemplos de algoritmo
Método tradicional
981
* 1234
3924
2943
1962
981
1210554
![Page 23: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/23.jpg)
Tema 6: Algoritmos y Programas
23
Ejemplos de algoritmo
Método tradicional Pero en UK…
981 981
* 1234 * 1234
3924 981
2943 1962
1962 2943
981 3924
1210554 1210554
![Page 24: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/24.jpg)
Tema 6: Algoritmos y Programas
24
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.
![Page 25: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/25.jpg)
Tema 6: Algoritmos y Programas
25
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
![Page 26: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/26.jpg)
Tema 6: Algoritmos y Programas
26
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
![Page 27: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/27.jpg)
Tema 6: Algoritmos y Programas
27
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
![Page 28: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/28.jpg)
Tema 6: Algoritmos y Programas
28
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
![Page 29: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/29.jpg)
Tema 6: Algoritmos y Programas
29
Ejemplos de algoritmo
Ejercicio:– ¿Cuál es mejor y por qué?– ¿Qué criterios podemos utilizar para valorar un
algoritmo?
![Page 30: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/30.jpg)
Tema 6: Algoritmos y Programas
30
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
8. Introducción al lenguaje C
![Page 31: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/31.jpg)
Tema 6: Algoritmos y Programas
31
Programas
ProgramaPrograma: Algoritmo codificado en un lenguaje de programación.
ProgramarProgramar: Fraccionar un problema en forma de instrucciones adecuadamente formuladas para que un ordenador pueda llevarlas a la práctica.
![Page 32: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/32.jpg)
Tema 6: Algoritmos y Programas
32
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.
![Page 33: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/33.jpg)
Tema 6: Algoritmos y Programas
33
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
8. Introducción al lenguaje C
![Page 34: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/34.jpg)
Tema 6: Algoritmos y Programas
34
Lenguajes de programaciónClasificació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
![Page 35: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/35.jpg)
Tema 6: Algoritmos y Programas
35
Lenguajes de programaciónLenguajes 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).
![Page 36: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/36.jpg)
Tema 6: Algoritmos y Programas
36
Lenguajes de programaciónLenguajes 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.
![Page 37: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/37.jpg)
Tema 6: Algoritmos y Programas
37
Lenguajes de programaciónLenguajes 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.
![Page 38: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/38.jpg)
Tema 6: Algoritmos y Programas
38
Lenguajes de programación Traductores
TraducciónTraducció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
CompiladorCompilador: 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.
![Page 39: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/39.jpg)
Tema 6: Algoritmos y Programas
39
Lenguajes de programaciónCompiladores
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
![Page 40: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/40.jpg)
Tema 6: Algoritmos y Programas
40
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.
![Page 41: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/41.jpg)
Tema 6: Algoritmos y Programas
41
Lenguajes de programaciónCompiladores 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
![Page 42: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/42.jpg)
Tema 6: Algoritmos y Programas
42
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
8. Introducción al lenguaje C
![Page 43: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/43.jpg)
Tema 6: Algoritmos y Programas
43
cc viA.out
D is e ñ o
E rro r e n t ie m p o
d e lo s d a to s
E r ro r e n e l t r a ta m ie n to E r ro r e n t ie m p o
A n a l is i s T ra d u c c ió n a c ó d ig o C
C o m p ila c ió nP ru e b a s d e e je c u c ió n
d e c o m p i la c ió n
d e e je c u c ió n
a l o rd e n a d o r
Proceso de programación
![Page 44: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/44.jpg)
Tema 6: Algoritmos y Programas
44
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
8. Introducción al lenguaje C
![Page 45: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/45.jpg)
Tema 6: Algoritmos y Programas
45
Lenguaje C
Es un lenguaje estructurado de propósito general, orientado a la programación de sistemas
– Origen: Evolución de BSPL y B “The C programming language”, B. Kernighan & D. Ritchie.
(1978)– ANSI C:
Versión estándar en 1983 Nueva revisión en 1999
– Uno de los lenguajes más utilizados en la industria del software actual y en el mundo Unix/Linux
![Page 46: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/46.jpg)
Tema 6: Algoritmos y Programas
46
Lenguaje C
Características de C– Propósito general
Válido para diversos objetivos– Portable
NOTA: Sin embargo, siempre hay que compilar y probar un programa en el ordenador “destino”
– Eficiente Apropiado para la programación de sistemas
– Extendido. Gran cantidad de bibliotecas de funciones, compiladores, etc. Amplia difusión y uso.
![Page 47: Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA](https://reader035.vdocumento.com/reader035/viewer/2022081414/54f9bf334a795973508b50b4/html5/thumbnails/47.jpg)
Tema 6: Algoritmos y Programas
47
Bibliografía
Joyanes Aguilar, L. “Fundamentos de programación. Algoritmos y Estructura de Datos”, McGrawHill. Capítulo 2.
Llanos Ferraris, D. “Curso de C bajo UNIX”. Capítulo 1.