-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathParcial6RES
141 lines (116 loc) · 2.95 KB
/
Parcial6RES
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
{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 SoltarCosas(ES f: numero ; ES p: numero)
comenzar
mientras(HayPapelEnLaBolsa)
depositarPapel
mientras(HayFlorEnLaBolsa)
depositarFlor
fin
proceso JuntarCosas(ES cantF: numero ; ES cantP: numero)
comenzar
mientras (HayFlorEnLaEsquina)
tomarFlor
cantF:=cantF+1
mientras (HayPapelEnLaEsquina)
tomarPapel
cantP:=cantP+1
fin
proceso recorrerAvenida(ES cantF: numero ; ES cantP: numero)
comenzar
repetir 99
JuntarCosas(cantF,cantP)
mover
JuntarCosas(cantF,cantP)
fin
areas
areaTrabajoR1: AreaP (4,1,7,100)
areaTrabajoR2: AreaP (8,1,11,100)
areaDeposito: AreaPC(20,1,20,100)
areaRC: AreaP(1,1,1,1)
robots
robot juntador
variables
cantP, cantF: numero
miAv,miCa: numero
quienSoy: numero
calleazar: numero
cantEsquinasTrabajadas: numero
termine: boolean
total: numero
comenzar
cantEsquinasTrabajadas:= 0
RecibirMensaje(quienSoy, RC)
repetir 4
miAv:= PosAv
miCa:= PosCa
cantF:= 0
cantP:= 0
total:=0
recorrerAvenida(cantF, cantP) {recorro juntando p y f}
EnviarMensaje(quienSoy, RC)
EnviarMensaje(cantP, RC)
EnviarMensaje(cantF, RC)
RecibirMensaje(calleazar, RC)
BloquearEsquina(20, calleazar)
Pos(20, calleazar)
SoltarCosas(cantF,cantP)
cantEsquinasTrabajadas:=cantEsquinasTrabajadas+1
si (cantEsquinasTrabajadas <>4)
Pos(miAv+1, miCa)
sino
Pos(miAv,miCa)
LiberarEsquina(20,calleazar)
fin
robot coordinador
variables
callerandom: numero
cantF, cantP: numero
id: numero
total: numero
totalR1, totalR2: numero
ganador: numero
comenzar
ganador:=0
EnviarMensaje(1, R1)
EnviarMensaje(2, R2)
repetir 8
Random(callerandom, 1,99)
RecibirMensaje(id, *)
si (id = 1)
RecibirMensaje(cantF,R1)
RecibirMensaje(cantP,R1)
totalR1:=cantF+cantP
EnviarMensaje(callerandom, R1)
sino
RecibirMensaje(cantF,R2)
RecibirMensaje(cantP,R2)
totalR2:=cantF+cantP
EnviarMensaje(callerandom, R2)
si (totalR1>totalR2)
ganador:=id
sino
ganador:=id
Pos(20,1)
recorrerAvenida (cantF, cantP)
Informar("junto mas flores el R", ganador)
fin
variables
R1: juntador
R2: juntador
RC: coordinador
comenzar
AsignarArea(R1, areaTrabajoR1)
AsignarArea(R2, areaTrabajoR2)
AsignarArea(R1, areaDeposito)
AsignarArea(R2, areaDeposito)
AsignarArea(RC, areaRC)
AsignarArea(RC, areaDeposito)
Iniciar(RC, 1,1)
Iniciar(R1, 4,1)
Iniciar(R2, 8,1)
fin