Você está na página 1de 31

Fundamentos de

Programación/Programación I
Administración
• Evaluación:
Prácticas: 40%
Controles: 20%
Examen final: 40%
• Las prácticas se hacen en grupos de dos
• Después de cada dos prácticas hay un control en
clase sobre el conocimiento de estas prácticas
(últimos 15 minutos de teoría)

2
Clase de introducción
1. ¿Qué es un ordenador?
2. Programas y algoritmos
3. Lenguajes de programación
4. Java

3
¿Qué es un ordenador?
• “Un sistema digital con tecnología microelectrónica
capaz de procesar información 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.
4
Elementos de un ordenador
(hardware)

Unidad aritmetica Memoria Principal


yProcesador
logica (ALU)
(RAM)
Unidad
(CPU) de
Control (CU) Programa

Dispositivos de entrada Dispositivos de salida Dispositivos de


teclado pantalla almacenamiento de datos
ratón impresora disco duro
lector/grabador de CD-ROM
5
lector/grabador de disquete
Representación de los datos
en el ordenador
• El único código que entiende la CPU son los bits.
• Los bits son representados en circuitos electrónicos
que pueden estar en estado “on” (1) u “off” (0)
• Las instrucciones se mandan a la CPU en forma de
bytes, que son palabras de 8 bits
• 1 byte = 8 bits
• 1 kilobyte = 1 024 bytes
• 1 megabyte = 1 024 kilobytes = 1 048 576 bytes

6
Representación de los datos
en el ordenador
• Base 10:
– Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
– 1111 = 1*103 + 1*102 + 1*101 + 1*100
• Base 2:
– Dígitos = {0, 1}
– 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
• ¿Cuántos valores puede representar un byte?
– 1 byte = 8 bits (Ej: 01100101)
– Cada bit puede representar 2 valores (0 y 1)
– Un byte puede representar 28 = 256 valores

7
Representación de textos

TEXTO: My name is Anders.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-115-46
18 bytes 8
Representación de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

• División de la imagen en una matriz de pixels (unidad


de la imagen)
• Cada pixel asociado con un color

9
Representación de sonido

4 8 12 13 12 10 8…

• Discretización de la amplitud
• Un byte para cada valor

10
¿Qué es un programa?
• Un programa es una secuencia de instrucciones a
la CPU
• Cada instrucción es un conjunto de bytes
• Ejemplos de instrucciones:
– Leer un dato del teclado
– Guardar un dato en la memoria
– Ejecutar una operación sobre dos datos
– Mostrar un dato en la pantalla
– etc.

11
Acceso a la memoria
RAM
1 12
2 125
3 45
4 2
5 0
CPU
6 10
7 32
8 64
9 15

12
Algoritmo
• Un esquema para resolver cierto tipo de problema
• Se puede traducir en un programa para ejecutarlo
en un ordenador
• Pasos para la resolución de un problema con
ordenador:
1. Diseño de un algoritmo
2. Codificación de un programa
3. Ejecución y validación

13
Algoritmo
• Componentes:
– Entrada: datos del problema a resolver
– Salida: el resultado de la resolución
– Proceso: pasos a seguir para la resolución
• Propiedades:
– Preciso: orden estricto + expresiones precisas
– Definido: con la misma entrada, siempre resulta la
misma salida
– Finito: número finito de pasos

14
Algoritmo 1
• Problema: Sumar dos números
• Solución:
– Entrada: dos números
– Salida: guardar la suma en la memoria y
imprimirla por pantalla
– Proceso:
1) Añadir los dos números
2) Guardar el resultado en la memoria
3) Imprimir el resultado por pantalla

15
Algoritmo 2
• Problema: hacer una taza de té a la inglesa
• Solución:
– Entrada: agua, bolsa de té, leche, tetera, taza,
cuchara
– Salida: una taza de té a la inglesa
– Proceso:
1. Poner la bolsa de té en la taza
2. Poner el agua a hervir en la tetera
3. Verter el agua hervida en la taza
4. Añadir leche
5. Remover

16
Algoritmo 3
• Problema: averiguar la solvencia de un cliente que
ejecuta un pedido a una fábrica.
• Solución:
– Entrada: el pedido
– Salida: mensaje de aceptación o rechazo
– Proceso:
1. Leer el pedido
2. Examinar la ficha del cliente
3. Si el cliente es solvente, aceptar pedido
4. En caso contrario, rechazar pedido

17
Lenguajes de programación

• Lenguajes máquina
• Lenguajes ensamblador
• Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog, LISP,…

18
Lenguajes máquina
• 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 0’s y 1’s es muy difícil para nosotros

19
Lenguajes ensamblador
• Instrucciones compuestas de palabras cortas y números:
– LOD 15 6
– LOD 16 8
– ADD 15 16 17
– JMP 10
• Ventajas:
– Más fácil a entender
• Desventajas:
– Todavía bastante abstracto
– Necesita traducir el código a lenguajes máquina

20
Lenguajes de alto nivel
• Diseñados para ser más parecidos a lenguaje natural
• Ventajas:
– Mucho más fácil de dar instrucciones
• Desventajas:
– Más complicado convertir en lenguajes máquina

21
Lenguajes de programación:
¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicación:
• Programación de sistemas – rapidez y acceso de
bajo nivel: C
• Inteligencia artificial – computación simbólica: LISP,
Prolog
• Programación científica – fórmulas matemáticas:
Fortran
• Negocios – transacciones: COBOL
• Uso específico: SQL (bases de datos), Perl
(manipulación de textos), JavaScript (páginas web),
Pascal (formación)
22
Lenguajes de programación:
¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
2. Diferentes necesidades:
• Fiabilidad: Ada
• Escabilidad, paradigma orientado a objeto: C  C++
• Portabilidad: Java
3. Evolución:
• Mejora del hardware
• Mejor comprensión de como reforzar criterios de
legibilidad, facilidad de aprender y escribir,
fiabilidad…
4. Importancia de la estandardización
5. ¡Número de usuarios! 23
Traductores de lenguaje:
intérpretes
PROGRAMA FUENTE

INTERPRETE

EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)

24
Traductores de lenguaje:
compiladores
OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilación

Fase de compilación COMPILADOR


programa
objeto
programa ENLAZADOR
ejecutable (binder, linker)
Fase de ejecución

Fase de ejecución
EJECUCION

25
Java
• Se desarrolló en los comienzos de los años 1990
• La intención era crear una herramienta para escribir
programas cortos y efectivos
• Ventajas:
– Básico, fácil de entender
– Portátil: el mismo código sirve para todos los sistemas operativos
– Soporta interfaz gráfica de usuario (GUI)
– Apropiado para programas en Internet
• Desventajas:
– La ejecución es más lenta que algunos otros lenguajes

26
Java
• El código fuente se guarda en un archivo con extensión
.java
• Un compilador traduce el código fuente en código de byte,
y lo guarda en un archivo con extensión .class
• Las instrucciones son diferentes para diferentes sistemas
operativos
• Un intérprete específico al sistema operativo interpreta el
código byte para ejecutar el programa
• Un programa puede ser compuesto de varios archivos

27
La Máquina Virtual Java (JVM)
PROGRAMA FUENTE
.java

COMPILADOR JAVA

PROGRAMA OBJETO Programa bytecode para JVM


.class

INTERPRETE (JVM) INTERPRETE (JVM) INTERPRETE (JVM)


para Windows 95 para Linux para Macintosh
WINDOWS 95 LINUX MACINTOSH 28
Ejecución de un programa Java

crear el programa HolaMundo.java


en un editor

compilador Java javac HolaMundo.java

HolaMundo.class System.class

llamar a la JVM java HolaMundo


SISTEMA OPERATIVO
29
Componentes de un lenguaje

• Sintaxis (gramática): reglas que determinan de


manera estricta el vocabulario, orden y formato de
las instrucciones permitidas
– Errores sintácticos: el programa no compila y/o no se puede
interpretar
• Semántica (sentido): el programa, al ejecutarlo,
produce el resultado correcto que uno quiere

30
Errores de programación
Modificar o crear un
archivo .java

Compilar
errores de compilación (sintaxis) Editar para
corregir errores

no hay errores

Ejecutar programa
errores de ejecución (semántica) Depurar
(debugging)
31

Você também pode gostar