Publicado el 20 de Enero del 2019
1.211 visualizaciones desde el 20 de Enero del 2019
1,1 MB
42 paginas
Creado hace 9a (06/09/2015)
Tema 1
Introducción a la Programación
Programación
2015-2016
Programacion – Tema 1: Introducción a la Programación
1
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de programación
Programación orientada a objetos: Java
Resumen y Referencias
Programacion – Tema 1: Introducción a la Programación
2
¿Qué es programar?
Según la RAE:
5. tr. Inform. Elaborar programas para la
resolución de problemas mediante ordenadores
Una definición informal pero más explicativa:
Proporcionar a un ordenador un conjunto de
datos y unas instrucciones sobre lo que se debe
hacer con esos datos con el objetivo de
resolver algún problema
Programacion – Tema 1: Introducción a la Programación
3
¿Qué es programar?
Objetivo: Resolver un Problema
Cómo resolverlo: Utilizando un algoritmo y los
datos del problema.
– Un algoritmo es:
• Un conjunto de instrucciones que en una determinada
secuencia permite la resolución de un problema paso a
paso.
• Una lista bien definida, ordenada y finita de operaciones
que permite hallar la solución a un problema.
– Los datos son los propios del problema y serán
manejados por el algoritmo
Programacion – Tema 1: Introducción a la Programación
4
Ejemplo de algoritmo
Algoritmo para cambiar la rueda de un coche
Datos: rueda pinchada y ubicación del gato, de la rueda de
repuesto y de la llave inglesa
PASO 1. Aflojar los tornillos de la rueda pinchada con la llave inglesa
PASO 2. Colocar el gato mecánico en su sitio
PASO 3. Levantar el gato hasta que la rueda pinchada pueda girar
libremente
PASO 4. Quitar los tornillos
PASO 5. Quitar la rueda pinchada
PASO 6. Poner rueda de repuesto
PASO 7. Poner los tornillos y apretarlos ligeramente
PASO 6. Bajar el gato hasta que se pueda liberar
PASO 7. Sacar el gato de su sitio
PASO 8. Apretar los tornillos con la llave inglesa
Programacion – Tema 1: Introducción a la Programación
5
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de programación
Programación orientada a objetos: Java
Resumen y Referencias
Programacion – Tema 1: Introducción a la Programación
6
Arquitectura básica de un ordenador
Hardware vs. Software
El 99% de los ordenadores actuales tiene la
siguiente arquitectura1:
Memoria
Bus
CPU
Dispositivos
E/S
Datos e instrucciones comparten memoria
1Denominada arquitectura de Von Neumann, aunque fue propuesta inicialmente por Eckert y Mauchly
Programacion – Tema 1: Introducción a la Programación
7
Características de la arquitectura
Componentes:
Unidad central de proceso (CPU)
Memoria
Se encarga fundamentalmente de ejecutar las instrucciones y
coordinar el resto de elementos
Almacena los datos, las instrucciones y los resultados
Clasificación: principal/secundaria, permanente/volátil, acceso
directo/secuencial
Dispositivos de entrada/salida
Para proporcionar los datos e instrucciones y recibir los
resultados
Bus de datos
Para compartir la información entre los componentes anteriores
Programacion – Tema 1: Introducción a la Programación
8
Ejemplo de ordenador real
Programacion – Tema 1: Introducción a la Programación
9
Tipos de software
Básicamente se puede dividir en 2 tipos:
Software de Sistema (Sistema operativo)
Proporciona control sobre el hardware y sirve de base a las
aplicaciones
Software de Aplicaciones
Programas con finalidades específicas, resuelven un problema o
familia de problemas determinados
Ofimática (procesadores de texto, hojas de cálculo…)
Contabilidad
Control
Juegos
...
Programacion – Tema 1: Introducción a la Programación
10
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de programación
Programación orientada a objetos: Java
Resumen y Referencias
Programacion – Tema 1: Introducción a la Programación
11
Lenguaje de programación
Programa = datos + instrucciones
Para comunicarle al ordenador el programa se
usa un lenguaje de programación
Los ordenadores no entienden lenguaje natural
¿Cómo decimos al ordenador lo que tiene que
hacer?: Escribiendo un programa en un lenguaje de
programación determinado, para implementar ese
algoritmo
Lenguajes específicos vs. generales
Programacion – Tema 1: Introducción a la Programación
12
Tipos de lenguajes de programación
Lenguaje Binario o Código Máquina
0 y 1
Lenguajes de Bajo Nivel
Instrucciones básicas (mover datos, sumar…)
Lenguajes de Alto Nivel
Más cercanos al lenguaje natural
… aunque tampoco demasiado
Programacion – Tema 1: Introducción a la Programación
13
Código Máquina
Lenguaje Binario o Código Máquina: único
lenguaje que entiende el ordenador
Datos e instrucciones se codifican mediante
conjuntos de 0 y 1
propio lenguaje
El más rápido: hablamos al ordenador en su
Muy propenso a errores, muy complicado
Programacion – Tema 1: Introducción a la Programación
14
Representación de datos e instrucciones
La memoria está compuesta por bits que sólo
pueden valer 1 o 0
Información codificada en binario
Los bits se agrupan en bytes (8 bits)
Cada celda de memoria contiene entre 1 y 8
bytes y almacena un dato, un resultado o una
instrucción
0
1
2
3
0 1 0 1 1 1 1 1
0 0 0 0 0 1 1 1
1 0 0 1 1 0 1 0
0 1 1 0 0 1 1 0
95
7
sumar
102
Programacion – Tema 1: Introducción a la Programación
15
Lenguajes de bajo nivel
Se usa un traductor para convertir desde un
lenguaje textual a código máquina
El traductor es un programa que le dice al
ordenador cómo realizar la traducción
1010
1101
Traduc-tor
Programa binario
Programa
Nace el lenguaje ensamblador: cambiamos 0 y
1 por texto, pero sigue siendo muy poco
intuitivo
Depende totalmente del tipo de procesador
Programacion – Tema 1: Introducción a la Programación
16
Lenguajes de bajo nivel
Ejemplo de código en ensamblador
.model small
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code
programa:
mov ax, @data
mov ds, ax
mov dx, offset Cadena1
mov ah, 9
int 21h
mov ah,4ch
int 21h
end programa
Programacion – Tema 1: Introducción a la Programación
17
Lenguajes de alto nivel (I)
Intentan acercar el lenguaje de programación al lenguaje
humano
Luego el ordenador se encargará de traducir
Ideal: poder usar lenguaje natural
Existen más de 300 (unos 2400 con dialectos)
Los pioneros incluían conceptos como:
Variables: no es necesario gestionar los datos
directamente en la memoria
Estructuras de datos complejas
Nuevas instrucciones, distintas de las que proporciona
el ordenador
Historia:
http://manuelpereiragonzalez.blogspot.com/2009/09/historia-de-la-informatica-los.html
Programacion – Tema 1: Introducción a la Programación
18
La evolución de forma gráfica
Programacion – Tema 1: Introducción a la Programación
19
Uso de algunos lenguajes
Programacion – Tema 1: Introducción a la Programación
20
Jerarquía de los programadores
Quién se considera
superior a quién
http://www.hermann-uwe.de/files/images/programmer_hierarchy.png
Programacion – Tema 1: Introducción a la Programación
21
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de programación
Programación orientada a objetos: Java
Resumen y Referencias
Programacion – Tema 1: Introducción a la Programación
22
Compilación e interpretación
La traducción desde un lenguaje de programación
a binario se puede hacer de dos formas:
Todo a la vez: compilador
Ejecución más rápida
Instrucción a instrucción: intérprete
Ejecuta aunque haya errores en el código
Permite cambios “en caliente”
Programacion – Tema 1: Introducción a la Programación
23
Compilación
http://xkcd.com/303/
Programacion – Tema 1: Introducción a la Programación
24
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de programación
Programación orientada a objetos: Java
Resumen y Referencias
Programacion – Tema 1: Introducción a la Programación
25
Paradigmas de programación
Tres formas principales de darle las instrucciones al
ordenador:
Programación imperativa (Java, C, C++, Python)
Programación funcional (Lisp, Haskell, Erlang,F#)
Se describen los pasos necesarios para solucionar el problema
Las instrucciones se dan mediante funciones “matemáticas”
que transforman los datos.
Programación lógica (Prolog)
Se describe el problema pero no se dan instrucciones: se
resuelve mediante inferencia lógica.
Ninguno es siempre mejor que otro
Muchos lenguajes son mixtos
(ver http://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng.pdf)
Programacion – Tema 1: Introducción a la Programación
26
Paradigmas de programación
Java – Factorial.java
public class Factorial {
public static double factorial(int n) {
int f = 1;
for(int i= 2; i< = n; i+ + )
f *= i;
return f;
}
public static void m ain(String [] args) {
factorial(42);
}
}
Haskell – fac.hs
fac 0 = 1 fac n = n * fac (n-1)
m ain = print (fac 42)
Prolog - factorial.hs
factorial(0,1).
factorial(N,F) :-
N > 0,
N 1 is N -1,
factorial(N1,F1),
F is N * F1.
?- factorial(42,X).
Programacion – Tema 1: Introducción a la Programación
27
Agenda
¿Qué es programar?
Arquitectura básica de un ordenador
Breve introducción histórica a la programación
Compilación vs. interpretación de programas
Paradigmas de prog
Comentarios de: Tema 1 - Introducción a la Programación (0)
No hay comentarios