Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejer
i
io
(
) Ri
ardo Aler Mur.
$
1
& %
Hay brazos robot, que pueden:
oger bloques que esten sobre la mesa u otros bloques
dejar bloques sobre la mesa u otros bloques
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
2
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
3
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
4
& bloques_sobre2(0/1)
%
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
& %
Y
(?bloque <> [nil℄)
ENTONCES Devolver ERROR
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
6
SI (?bloque 2 SUPERBLOQUE)
ENTONCES Devolver ERROR
SI (?bloque 2 BLOQUE)
& %
ENTONCES Devolver ERROR
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 7
SOPORTE
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalidad
valores
Identi
ador Smbolo 1/1
Color Smbolo marron 1/1
rojo
...
Bloques sobre MARCO # BLOQUE GENERICO 0/1
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 8
MESA
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalidad
valores
es-un SOPORTE
Identi
ador mesa1, mesa2, . . .
Color marron marron
Bloques sobre () MARCO # BLOQUE GENERICO 0/10
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 9
BLOQUE-GENERICO
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalidad
valores
es-un SOPORTE
Identi
ador A, B, . . .
Color rojo
Bloques sobre 0/1
Bloque debajo [mesa℄ MARCO # SOPORTE 0/1
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 10
BLOQUE
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalidad
valores
es-un
BLOQUE-GENERICO
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 11
SUPERBLOQUE
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalida
valores
es-un
BLOQUE-GENERICO
Bloques sobre 2 [nil℄ MARCO # BLOQUE 0/1
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur. 12
BRAZO-ROBOT
FACETAS
ATRIBUTOS Omision Tipo Posibles Cardinalidad
valores
Identi
ador Smbolo B1, B2, . . . 1/1
Bloque
ogido [nil℄ MARCO # BLOQUE GENERICO 0/1
Metodo
oger-bloque
Metodo dejar-bloque
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
13
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
14
Metodo BLOQUE-GENERICO.bloque libre ()
Si ?self.bloques sobre = [nil℄
ENTONCES devolver
ierto
SI NO devolver falso
& %
SI NO devolver falso
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
15
Metodo BLOQUE-GENERICO.
otar bloque ()
enviar ?self.bloque debajo liberar bloque (?self)
?self.bloque debajo = [nil℄
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
Metodo SOPORTE.liberar bloque (?bloque 2 BLOQUE-GENERICO)
$
16
Metodo SUPERBLOQUE.liberar bloque (?bloque 2 BLOQUE-GENERICO)
Si ?bloque = ?self.bloques sobre
ENTONCES ?self.bloques sobre = [nil℄
& %
Si ?bloque = ?self.bloques sobre 2
ENTONCES ?self.bloques sobre 2 = [nil℄
'
Mar
os y metodos para el mundo de los bloques
& %
[mesa℄.bloques sobre = ([a℄)
[a℄.bloques sobre = [b℄
[a℄.bloques sobre 2 = [
℄
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
& %
[
℄.bloque debajo = [nil℄
[a℄.bloques sobre = [b℄
[a℄.bloques sobre 2 = [nil℄
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$19
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
20
& %
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
21
& %
SI NO ?self.bloques sobre 2 = ?bloque
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
Metodo SUPERBLOQUE.espa
io libre (?bloque 2 BLOQUE-GENERICO)
SI (?bloque 2 SUPERBLOQUE)
Y ?self.bloques sobre = [nil℄
Y ?self.bloques sobre 2 = [nil℄
ENTONCES Devolver
ierto
SI (?bloque 2 BLOQUE)
& %
?self.bloques sobre = [nil℄
O ?self.bloques sobre 2 = [nil℄
ENTONCES devolver
ierto
En otro
aso, Devolver falso
'
Mar
os y metodos para el mundo de los bloques (
) Ri
ardo Aler Mur.
$
23
Metodo MESA.espa
io libre (?bloque 2 BLOQUE-GENERICO)
Si elementos (?self.bloques sobre) <= 10
ENTONCES Devolver
ierto
SI NO Devolver falso
& %