Professional Documents
Culture Documents
Tema 1.
Conceptos Bsicos de Programacin
Problemas y soluciones
Objetivos de la programacin
Nocin de algoritmo
El computador (hardware)
Cuestiones generales sobre el Software
Estilo de programacin
Lenguajes de Programacin
Elementos de un programa
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Problemas y soluciones
Datos
Resultados
Modelado o representacin
Datos (iniciales, intermedios, resultados)
+ algoritmos
Visualizacin
del modelo de resultados
Implementacin
en la plataforma de trabajo
(codificacin: Pascal, Java, C)
Ejecucin
de los procesos
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Objetivo de la programacin.
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Anlisis /
Diseo
Problema
Lenguaje
Natural
Codificacin
Algoritmo
Lenguaje Algortmico /
pseudocdigo
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
Programa
PASCAL, C, Ada,
Basic, Fortran,
COBOL, Java, C++,
Lisp, ...
09/09/2004
Nocin de algoritmo
Iremos calculando
factorial de n =
1* 2 * ...*i * ... n
para valores crecientes de i
hasta n
Algoritmo en
lenguaje algortmico
Solucin informal
en lenguaje natural
Read(n);i:=1;
factorial:=1;
Mientras Que i < n hacer
i:= i+1;
factorial:= factorial * i
FinMientrasQue;
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Nocin de Programa
lenguaje
algortmico
factorial:=1;
Mientras Que i < n hacer
i:= i+1;
factorial:= factorial * i
FinMientrasQue;
i:=1; factorial:=1;
While i < n do
begin
Pascal
i:= i+1;
factorial:= factorial * i
end;
i=1; factorial=1;
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
Especificacin
Anlisis
Diseo
Codificacin
Pruebas
Mantenimiento
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
El computador (Hardware)
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
10
El computador (Hardware)
Perifricos
Memoria
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
11
Memoria de un computador
Memoria
Se
realiza
mediante
millones
de
transistores que se utilizan a modo de
interruptores
que pueden estar
encendidos o apagados
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
12
Memoria
Podemos
representar
en
memoria
informacin numrica y no numrica:
1101= 13 (Nmero 13)
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
13
Direccin de memoria
sd
e
n
io 3 4
c
c
.
.
.
.
..
re 2
i
D
1
Palabra*
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
14
Tipos de memoria
Memoria Principal
RAM (Read Access Memory)
ROM (Read Only Memory)
Memoria Secundaria
Acceso secuencial
Acceso directo
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
15
1. Inicializas el programa
3. Se copia el programa en
memoria(RAM)
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
16
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
17
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
18
Estilo de Programacin
Programacin imperativa
Lenguajes orientados a instrucciones
Programas = Receta
Se encadenan de forma explicita las
instrucciones.
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
19
Metodologa de Programacin
Programacin Estructurada
Conjunto de ideas gestadas en torno al grupo de trabajo WG2.3
(Programming Methodology) de IFIP:
Composicin secuencial
Composicin condicional
Composicin iterativa
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
20
Lenguajes de Programacin
MI
MD
Avanza 1 m
Retrocede 1 m
Gira Derecha 90
Gira Izquierda
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
21
Problema
El tractor se encuentra en A, mirando al norte, y tengo que
llevarlo a B
Algoritmo
Sigue recto hasta el fondo
Gira a la derecha
Sigue recto hasta el fondo
Programa
MI A
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
R MD A R
0 1 1 0
0 1 1 0
0 0 0 0
0 1 1 0
0 1 1 0
0 1 1 0
0 1 1 0
0 1 1 0
0 1 1 0
Lo lleva a I
Lo direcciona hacia B
Lo lleva a B
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
22
Lenguaje de Maquina
Lo lleva a I
Lo direcciona hacia B
Lo lleva a B
Esquemas de composicin
Programa
Avanza 2
Derecha 1
Avanza 6
110110
110000
101101
000110
Avanza x AV x
Derecha x GD x
Izquierda x GI x
Retrocede x RE x
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
23
Lenguaje Maquina
Programa
1 1 0 1 1 0
Avanza 2
Derecha 1
Avanza
Cdigo para
el primer
tractor
1 1 0 1 1 0
1 1 0 1 1 0
1 1 0 1 1 0
6
010111
111101
0 1 0 10 1
01 01
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
Cdigo para
el tractor con
Un solo giro
09/09/2004
24
ENSAMBLADOR
LENGUAJE MQUINA
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
25
<
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
26
<
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
27
<
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
28
<
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
29
Alto Nivel
Mas fciles de programar
Independencia de la maquina
Necesidad de traductores compiladores
Menor coste de desarrollo
Mas fcilmente mantenibles
Deteccin de errores
Transportables
Son un compromiso entre eficiencia y
manejabilidad
Bajo Nivel
Programas especficos para un tipo de
mquina
Pueden permitir hacer cosas de forma ms
eficiente.
Maquina
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
30
Lenguajes de Programacin
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
31
Lenguajes Interpretados/Compilados
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
32
Si es necesario el applet
comunicar con el servidor
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
se
puede
09/09/2004
33
Bycodes
Verificador de Bytecode
Cargador de clase
Almacn de
Applets
Servidor
Intrprete de
Java (JVM)
Plataforma
Cliente
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
MacOS
UNIX
Windows
etc.
09/09/2004
34
Elementos de un Lenguaje
SINTAXIS
Conjunto de reglas sintcticas
Notaciones para expresar las reglas:
Backus-Naur
Grafo Sintctico
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
35
Sintaxis
Grafos Sintcticos
Backus-Naur
A
1
B
2
letra
digito
<letra>::= A I B I IZ
Z
9
alternativa
0
21
digito
<digito>::= 0 I 1 I I9
9
identificador
letra
0 o ms veces
digito
_
<identificador>::=
<letra> {<letra> I <digito> I_}
09/09/2004
36
Sintaxis
sentencia
IF
IF
expresin
booleana
THEN
sentencia
ELSE
sentencia
0 o 1 vez
<Sentencia IF> ::=
IF <expresion booleana> THEN <sentencia>
[ELSE <sentencia>]
sentencia
W HILE
WHILE
expresin
booleana
DO
sentencia
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
37
Sintaxis
numero
sin
signo
entero
sin signo
digito
+
.
digito
entero
sin signo
E
-
expresion constante
identificador
constante
constante
'
caracter
'
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
38
Condiciones Necesarias
Finitud
No ambigedad
Propiedades deseables
Generalidad
Eficiencia
Independencia de la mquina
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
39
Sistema Operativo
Sistema Operativo
Conjunto de programas que tienen por
misin facilitar la utilizacin del computador
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
40
Entorno de programacin
Entorno de trabajo:
Programa cuya misin es facilitar el
desarrollo de programas utilizando un
determinado lenguaje
Integra herramientas:
Edicin e programas fuente (C, C++, Java,
Pascal, Ada, ...)
Compilacin de programas fuente
Depuracin de programas
Ejecucin y prueba de programas
Construccin de programas ejecutables y
bibliotecas
Programacin. Pedro lvarez, Jos ngel Baares, Pedro Latorre, Santiago Velilla
Tema 1. Conceptos Bsicos de Programacin
09/09/2004
41