





















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Metodología de la Programación, Profesor: Maximiliano Paredes, Carrera: Ingeniería del Software, Universidad: URJC
Tipo: Apuntes
1 / 29
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






















recursividad de una función f.
Define una función g más general que f, con
Define una función g más general que f, con más parámetros y/o resultados, que enciertas situaciones se comporta como f.
{
}
{
}
2
1
•Partimos de la especificacion de f•Añadimos más parámetros
•Obtenemos nuevos Q’ y R’ •
Una nueva función
if
{
}
{
}
2
3
1
)
,
(
)
(
que
para
inic
inic
w
x
if
x
f
w
=
Una nueva función
if
•En determinadas condiciones (
Winic
) se comportan
igual
f
e
if
Inmersión no final (
DEBILITANDO LA POSTCONDICIÓN)
•Obtener la postcondición de
if
(
R
’
) debilitando la
postocondición de
f
(
R
):
•Sustitución de una cte
w
(o varias) por una
)
´(
w , y , x
R
nueva variable (o varias) en R•Relación entre
R
’
,R
y
W
)
x (
w
Φ
=
y ,
x
Postc.de la Fun inmer
Postcondición
Ec. Sustit
Obtener la precondición
•Reforzando la precondición con las condicionesde dominio de los nuevos parámetros
if
debe comportarse igual que
f
) ( ) ( ) , (
w , x D x Q w x Q
∧
≡
′
inic
w
) , , ( ) , (
y
w
x
if
y
x
f
inic
=
{
}
{
}
)
,
(
)
:
(
dev
)
:
(
fun
)
(
y
x
R
T
y
T
x
f
x
Q
2
1
•Partimos de la especificacion de f•Añadimos más parámetros
1
y
2
•Los corchetes opcionalidad
:
:
2 4 2 3 1 1
2
1
iif
•En determinadas condiciones(
1inic
2inic
se comportan igual
f
e
if
])
[ , , ( ) ( ] [ ,
que
para
2inic
1inic
2inic
1inic
w
w
x
iif
x
f
w
w
=
)
:
(
dev
])
[;
;
:
(
fun
) ] [ , , (
:
:
T y T w T w T x
iif
w
w
x
Q
2 4 2 3 1 1
2
1
′
1
2
1
t
)
,
(
y
x
R
2
1
2
1
nt
1
2
1
t
Decidir qué conjuntando reforzará la precondición y cuál será la
condición del caso trivial
(
supongamos que A es el que refuerza la Prec
.)
2
1
2
1
w , w , x B w , w , x A
(
supongamos que A es el que refuerza la Prec
.)
Obtenenemos la nueva Q
’’’’
Los otros conjuntantes forman Bt
Obtener la precondición
Establecer el valor inicial de los nuevos parámetros
])
[ , , , ( ) , (
que
para
2inic
1inic
w
y
w
x
iif
y
x
f
=
2 1 2 1 2 1
w
,
w , x D w , w , x A x Q w , w x Q
La cabecera es la de f añadiendo
w
La cabecera es la de f añadiendo
w
(x)=
w,
siendo Q(x) la
precondición de f
(x) por
w
real
w
’
en la llamada recursiva. De debe mantener invariante
la precondición. Se puede usar
w
precondición obliga
(x)=
w
(x,y)=
z
(x
,y
) por
z
’
calculando z a partir de z
(calculamos z que debe
devolver)
calculamos el valor de z
(combinar: elemento neutro y asociativa)(combinar: elemento neutro y asociativa)
generalización de ella.
como f