Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anders Jonsson
2007-2008
Administracin
Pgina web: http://www.tecn.upf.es/~jonsson/fp07 (en construccin) Teora: Mircoles 17-18:30, Aula 119 Prctica: P1 Jueves 18:40-19:25, Aula 202 P2 Jueves 19:35-20:20, Aula 202 Tutora: Para confirmar
Administracin
Evaluacin: Prcticas: 40% Controles: 20% Examen final: 40% Las prcticas se hacen en grupos de dos Despus de cada dos prcticas hay un control en clase sobre el conocimiento de estas prcticas (ltimos 15 minutos de teora)
Clase de introduccin
1. 2. 3. 4. Qu es un ordenador? Programas y algoritmos Lenguajes de programacin Java
Qu es un ordenador?
Un sistema digital con tecnologa microelectrnica capaz de procesar informacin a partir de un grupo de instrucciones denominado programa Componentes principales:
Procesador (CPU: Central Processing Unit) Memoria (RAM: Random Access Memory)
Componentes auxiliares:
Disco duro Lector CD-ROM Teclado Pantalla etc.
5
Elementos de un ordenador
(hardware)
Unidad aritmetica y logica (ALU) Procesador
Unidad de (CPU) Control (CU)
Base 2:
Dgitos = {0, 1} 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
Representacin de textos
Representacin de imagen
00000000 00110110 00100010 00100010 00110110 00000000 00110110 00000000
Divisin de la imagen en una matriz de pixels (unidad de la imagen) Cada pixel asociado con un color
10
Representacin de sonido
4 8 12 13 12 10 8
11
Qu es un programa?
Un programa es una secuencia de instrucciones a la CPU Cada instruccin es un conjunto de bytes Ejemplos de instrucciones:
Leer un dato del teclado Guardar un dato en la memoria Ejecutar una operacin sobre dos datos Mostrar un dato en la pantalla etc.
12
Acceso a la memoria
RAM 1 12 2 125 3 45
4 2
CPU 5 0 6 10 7 32 8 64 9 15
13
Algoritmo
Un esquema para resolver cierto tipo de problema Se puede traducir en un programa para ejecutarlo en un ordenador Pasos para la resolucin de un problema con ordenador: 1. Diseo de un algoritmo 2. Codificacin de un programa 3. Ejecucin y validacin
14
Algoritmo
Componentes: Entrada: datos del problema a resolver Salida: el resultado de la resolucin Proceso: pasos a seguir para la resolucin Propiedades: Preciso: orden estricto + expresiones precisas Definido: con la misma entrada, siempre resulta la misma salida Finito: nmero finito de pasos
15
Algoritmo 1
Problema: Sumar dos nmeros Solucin: Entrada: dos nmeros Salida: guardar la suma en la memoria y imprimirla por pantalla Proceso:
1) Aadir los dos nmeros 2) Guardar el resultado en la memoria 3) Imprimir el resultado por pantalla
16
Algoritmo 2
Problema: hacer una taza de t a la inglesa Solucin: Entrada: agua, bolsa de t, leche, tetera, taza, cuchara Salida: una taza de t a la inglesa Proceso:
1. 2. 3. 4. 5. Poner la bolsa de t en la taza Poner el agua a hervir en la tetera Verter el agua hervida en la taza Aadir leche Remover
17
Algoritmo 3
Problema: averiguar la solvencia de un cliente que ejecuta un pedido a una fbrica. Solucin: Entrada: el pedido Salida: mensaje de aceptacin o rechazo Proceso:
1. 2. 3. 4. Leer el pedido Examinar la ficha del cliente Si el cliente es solvente, aceptar pedido En caso contrario, rechazar pedido
18
Lenguajes de programacin
Lenguajes mquina Lenguajes ensamblador Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal, Prolog, LISP,
19
Lenguajes mquina
Programas son secuencias de instrucciones compuestas de bytes:
16 29 156 9 82 75
Ventajas:
La CPU entiende estos programas
Desventajas:
Pensar en modo de 0s y 1s es muy difcil para nosotros
20
Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y nmeros:
LOD 15 6 LOD 16 8 ADD 15 16 17 JMP 10
Ventajas:
Ms fcil a entender
Desventajas:
Todava bastante abstracto Necesita traducir el cdigo a lenguajes mquina
21
Desventajas:
Ms complicado convertir en lenguajes mquina
22
Lenguajes de programacin:
Cmo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicacin:
Programacin de sistemas rapidez y acceso de bajo nivel: C Inteligencia artificial computacin simblica: LISP, Prolog Programacin cientfica frmulas matemticas: Fortran Negocios transacciones: COBOL Uso especfico: SQL (bases de datos), Perl (manipulacin de textos), JavaScript (pginas web), Pascal (formacin)
23
Lenguajes de programacin:
Cmo nacen, sobreviven y caducan?
1. Diferentes necesidades:
Fiabilidad: Ada Escabilidad, paradigma orientado a objeto: C C++ Portabilidad: Java
2. Evolucin:
Mejora del hardware Mejor comprensin de como reforzar criterios de legibilidad, facilidad de aprender y escribir, fiabilidad
24
INTERPRETE
25
programa ejecutable
Fase de ejecucin
EJECUCION
26
Java
Se desarroll en los comienzos de los aos 1990 La intencin era crear una herramienta para escribir programas cortos y efectivos Ventajas:
Bsico, fcil de entender Porttil: el mismo cdigo sirve para todos los sistemas operativos Soporta interfaz grfica de usuario (GUI) Apropiado para programas en Internet
Desventajas:
La ejecucin es ms lenta que algunos otros lenguajes
27
Java
El cdigo fuente se guarda en un archivo con extensin .java Un compilador traduce el cdigo fuente en cdigo de byte, y lo guarda en un archivo con extensin .class Las instrucciones son diferentes para diferentes sistemas operativos Un intrprete especfico al sistema operativo interpreta el cdigo byte para ejecutar el programa Un programa puede ser compuesto de varios archivos
28
COMPILADOR JAVA
PROGRAMA OBJETO
WINDOWS
MACINTOSH
29
javac HolaMundo.java
HolaMundo.class
System.class
llamar a la JVM
Componentes de un lenguaje
Sintaxis (gramtica): reglas que determinan de manera estricta el vocabulario, orden y formato de las instrucciones permitidas
Errores sintcticos: el programa no compila y/o no se puede interpretar
Semntica (sentido): el programa, al ejecutarlo, produce el resultado correcto que uno quiere
31
Errores de programacin
Modificar o crear un archivo .java
Compilar