-
Notifications
You must be signed in to change notification settings - Fork 0
/
Parcial1RES
114 lines (105 loc) · 2.43 KB
/
Parcial1RES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
{Bienvenidos al entorno CMRE.
Lo siguiente es un código de ejemplo que implementa un
proceso que recibe un número de avenida como parámetro,
se posiciona en esa avenida y la recorre.}
programa ejemplo
procesos
proceso tomarFlores(ES cant: numero)
comenzar
mientras (HayFlorEnLaEsquina)
tomarFlor
cant:=cant+1
fin
proceso HacerCuadrado(ES perimetro: numero ; ES flor: numero)
comenzar
repetir 4
repetir perimetro
tomarFlores(flor)
mover
derecha
fin
areas
ciudad: AreaC (1,1,100,100)
robots
robot Cliente
variables
tamanioLados: numero
id: numero
miAv,miCa: numero
cantF: numero
termine: boolean
comenzar
cantF:=0
miAv:=PosAv
miCa:=PosCa
tamanioLados:=0
RecibirMensaje(id, RS)
repetir 3
EnviarMensaje(id, RS)
EnviarMensaje(tamanioLados, RS)
RecibirMensaje(tamanioLados, RS)
HacerCuadrado(tamanioLados, cantF)
miCa:=PosCa
Pos(miAv, miCa+tamanioLados+1)
repetir cantF
BloquearEsquina(50,50)
Pos (50,50)
si (HayFlorEnLaBolsa)
depositarFlor
Pos(miAv,miCa)
LiberarEsquina(50,50)
termine:=V
EnviarMensaje(termine, RS)
fin
robot Servidor
variables
ladosAGenerar: numero
id: numero
flor: numero
termino: boolean
robotsListos: numero
comenzar
robotsListos:=0
EnviarMensaje(1, R1)
EnviarMensaje(2, R2)
EnviarMensaje(3, R3)
repetir 9
RecibirMensaje (id, *)
RecibirMensaje(ladosAGenerar, *)
si (id = 1)
Random(ladosAGenerar, 1, 5)
EnviarMensaje(ladosAGenerar, R1)
robotsListos:=robotsListos+1
sino
si (id = 2)
Random(ladosAGenerar, 1, 5)
EnviarMensaje(ladosAGenerar, R2)
robotsListos:=robotsListos+1
sino
si (id = 3)
Random(ladosAGenerar, 1, 5)
EnviarMensaje(ladosAGenerar, R3)
robotsListos:=robotsListos+1
RecibirMensaje(termino, *)
si (termino = V & robotsListos =3)
BloquearEsquina(50,50)
mientras (HayFlorEnLaEsquina)
tomarFlor
flor:=flor+1
Informar(flor)
fin
variables
R1: Cliente
R2: Cliente
R3: Cliente
RS: Servidor
comenzar
AsignarArea(R1, ciudad)
AsignarArea(R2, ciudad)
AsignarArea(R3, ciudad)
AsignarArea(RS, ciudad)
Iniciar(R1, 1,1)
Iniciar(R2, 8,1)
Iniciar(R3, 15,1)
Iniciar(RS, 22,1)
fin