Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIVERSIDAD
DE CANTABRIA
1. Introduccin
2. Datos y expresiones. Especificacin de algoritmos
3. Estructuras algortmicas bsicas
4. Iteracin y recursin
5. Iteracin y recursin sobre secuencias
6. Iteracin y recursin sobre tablas
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA
Y COMPUTACIN
4
Notas:
UNIVERSIDAD
DE CANTABRIA
1. Introduccin
2. Datos y expresiones. Especificacin de algoritmos
Tipos primitivos. Variables y constantes. Operadores y expresiones. Nocin de especificacin. Nocin
de predicado. Reglas de consecuencia de una especificacin. Encapsulamiento: Concepto de clase
y objeto. Mtodos y paso de parmetros. Especificacin de clases y objetos
3. Estructuras algortmicas bsicas
4. Iteracin y recursin
5. Iteracin y recursin sobre secuencias
6. Iteracin y recursin sobre tablas
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Tipos primitivos
UNIVERSIDAD
DE CANTABRIA
Entero
conjunto de los nmeros enteros
en la prctica limitado a un rango
dispone de aritmtica exacta en ese rango
Real
conjunto de los nmeros reales
en la prctica limitado a un subconjunto de nmeros racionales
aritmtica de punto flotante (no exacta)
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
UNIVERSIDAD
DE CANTABRIA
Carcter
un nico carcter alfanumrico, incluyendo
-
Booleano
valor lgico (verdad o falso)
Texto:
secuencia de caracteres
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Variables y constantes
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
UNIVERSIDAD
DE CANTABRIA
UNIVERSIDAD
DE CANTABRIA
entero i,j;
entero k=3;
real tempDeseada=22.0;
real tempAmbiente;
caracter c1=a;
booleano estaEncendido=verdad;
texto miNombre="Pedro Gonzlez";
texto miDireccion;
const real tempMaxima=100.0;
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Operadores y expresiones
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Reglas de precedencia
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Ejemplo
UNIVERSIDAD
DE CANTABRIA
Operacin
a+b
suma
a-b
resta
- (unario)
-a
a*b
cambio de signo
multiplicacin
div
/
a div b
a/b
mod
%
a mod b
a%b
Precedencia:
los multiplicativos mayor predecencia que los aditivos
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
10
Ejemplo
UNIVERSIDAD
DE CANTABRIA
Operacin
a+b
suma
a-b
resta
- (unario)
-a
a*b
a*b
cambio de signo
multiplicacin
a/b
a/b
a mod b
a%b
a mod b
a%b
Precedencia:
los multiplicativos mayor predecencia que los aditivos
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Ejemplos de expresiones
11
UNIVERSIDAD
DE CANTABRIA
Enteras
entero i,j,k;
i
-25
(i*25+3) mod 2
(i-j)*k+(35 div i)
Reales
real x,y,z;
x*1.0e-6
x-z/y
-y
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
12
Conversiones de tipo
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Operaciones relacionales
13
UNIVERSIDAD
DE CANTABRIA
Ejemplo
Operacin
==
a==b
igual a
!=
a!=b
distinto de
>
a>b
>=
a>=b
mayor que
mayor o igual a
<
a<b
menor que
<=
a<=b
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
14
Operaciones lgicas
UNIVERSIDAD
DE CANTABRIA
Ejemplo
Operacin
&
a & b
y (a veces se pone )
a | b
o (a veces se pone )
! a
&&
a && b
||
a || b
no (a veces se pone )
y entonces
(b slo se evala si es necesario)
o si no
(b slo se evala si es necesario)
Precedencia
!, &, |
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
15
UNIVERSIDAD
DE CANTABRIA
Expresiones simples
x>5.0
i==j
Comprobacin: x en el intervalo [-5,3)
x>=-5 && x<3
Comprobacin: x fuera del intervalo (-2,2)
x<=-2 || x>=2
Observar que los operadores relacionales no pueden
concatenarse
-5<x<3 //incorrecto!
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
16
Nocin de especificacin
UNIVERSIDAD
DE CANTABRIA
declaracin de variables
precondicin: condiciones sobre el estado inicial de las variables
nombre del algoritmo
postcondicin: condiciones sobre el estado final de las variables
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Nocin de predicado
17
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
18
Ejemplos de predicados
2
UNIVERSIDAD
DE CANTABRIA
x +y +z = R z = 0x>0y>0
Un arco de 90 de radio R en el plano x-y
z x z y z { x, y }
z es el mximo de x e y
z=max(x,y)
n N: m = k n
m es mltiplo de k
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
19
B
c
var
real a,b,c
A
b
real s, area
fvar
{Pre: a,b,c contienen los lados del tringulo}
Clculo del rea
{Post: s= semipermetro del tringulo,
area = s ( s a ) ( s b ) ( s c ) }
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
UNIVERSIDAD
DE CANTABRIA
20
UNIVERSIDAD
DE CANTABRIA
var
real a,b,c
real s, area
fvar
{Pre: a=A,b=B,c=C contienen los lados
del tringulo}
Clculo del rea
{Post: a=A, b=B, c=C, s=(A+B+C)/2,
area = s ( s A ) ( s B ) ( s C ) }
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Ejercicios de especificacin
21
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
22
Correccin de un algoritmo
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
23
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
24
UNIVERSIDAD
DE CANTABRIA
Primera regla
entero x
{x<=2}
S
{x<=10}
entero x
{x<=-10}
S
{x<=10}
Segunda regla
entero x
{x<=5}
S
{x<=12}
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
entero x
{x<=5}
S
{x<=45}
25
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
26
Objetos
UNIVERSIDAD
DE CANTABRIA
implementan un algoritmo
inicializan, consultan o modifican el estado del objeto
se invocan desde otro mtodo
pueden necesitar parmetros: datos que se pasan desde el mtodo
que lo invoca
- pueden retornar un valor al mtodo desde el que se invocan
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
27
Diagramas de clases
Definen
nombre de la clase
atributos: nombres y tipos
mtodos: nombre, parmetros
(con nombre y tipo de cada uno),
y valor retornado (tipo)
- pueden ser constructores, que
inicializan el objeto
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
UNIVERSIDAD
DE CANTABRIA
Circulo
real centroX
real centroY
real radio
Circulo(real x,
real y,
real r)
real centroX()
real centroY()
real radio()
real area()
dibuja()
28
Declaracin de atributos
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
Declaracin y especificacin de
mtodos
29
UNIVERSIDAD
DE CANTABRIA
Formal
mtodo Circulo(real x, real y, real r)
{Pre: x=X & y=Y & r=R>=0}
constructor
{Post: centroX=X & centroY=Y & radio=R}
fmtodo
Informal (se supone que x, y, r no cambian)
mtodo Circulo(real x, real y, real r)
{Pre: r>=0}
constructor
{Post: centroX=x & centroY=y & radio=r}
fmtodo
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
30
Declaracin y especificacin de
mtodos
UNIVERSIDAD
DE CANTABRIA
Formal
mtodo area() retorna a:real
{Pre: centroX=X & centroY=Y & radio=R}
clculo del rea
{Post:centroX=X & centroY=Y & radio=R & a=R2}
fmtodo
Informal (si no se dice nada, se supone que un dato no cambia)
mtodo area() retorna real
{Pre:}
clculo del rea
{Post: valor retornado=radio2}
fmtodo
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
31
UNIVERSIDAD
DE CANTABRIA
Asociacin de parmetros
cada valor concreto usado en la invocacin se asocia, por su
orden de aparicin, a un argumento del mtodo
x => 10.0
y => 12.0
r => 100.0
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
32
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
33
UNIVERSIDAD
DE CANTABRIA
DEPARTAMENTO DE MATEMTICAS,
ESTADSTICA Y COMPUTACIN
34