Fundamentos de programacion
-
Upload
pablo-villamar -
Category
Education
-
view
450 -
download
1
Transcript of Fundamentos de programacion
Fundamentos de Programación
2
Clase de introducción
1. ¿Qué es un ordenador?2. Programas y algoritmos3. Lenguajes de programación4. 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
Memoria Principal (RAM)
Unidad de Control (CU)
Unidad aritmetica y logica (ALU)
Programa
Dispositivos de entrada Dispositivos de salida Dispositivos de almacenamiento de datosteclado
ratónpantallaimpresora disco duro
lector/grabador de CD-ROMlector/grabador de disquete
Procesador(CPU)
(hardware)
5
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-4618 bytes
8
Representación de imagen
• División de la imagen en una matriz de pixels (unidad de la imagen)
• Cada pixel asociado con un color
0 0 0 0 0 0 0 00 0 1 1 0 1 1 00 0 1 0 0 0 1 00 0 1 0 0 0 1 00 0 1 1 0 1 1 00 0 0 0 0 0 0 00 0 1 1 0 1 1 00 0 0 0 0 0 0 0
9
Representación de sonido
• Discretización de la amplitud• Un byte para cada valor
4 8 12 13 12 10 8…
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
9
8
7
6
5
4
3
2
1
15
64
32
10
0
2
45
125
12
RAM
CPU
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 algoritmo2. Codificación de un programa3. 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 memoria3) 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 taza2. Poner el agua a hervir en la tetera3. Verter el agua hervida en la taza 4. Añadir leche5. 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 pedido2. Examinar la ficha del cliente 3. Si el cliente es solvente, aceptar pedido4. 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?1. Diferentes necesidades:
• Fiabilidad: Ada• Escabilidad, paradigma orientado a objeto: C
C++ • Portabilidad: Java
2. Evolución: • Mejora del hardware• Mejor comprensión de como reforzar criterios
de legibilidad, facilidad de aprender y escribir, fiabilidad…
3. Importancia de la estandardización4. ¡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
PROGRAMA FUENTE
COMPILADOR
ENLAZADOR(binder, linker)
EJECUCION
Fase de compilación
Fase de ejecución
OPCION 1
programaejecutable
Fase de compilación
Fase de ejecución
OPCION 2
programaobjeto
25
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
26
Errores de programación
Modificar o crear un archivo .java
Editar para corregir errores
Compilar
Ejecutar programaDepurar
(debugging)
errores de compilación (sintaxis)
no hay errores
errores de ejecución (semántica)