;; Creat per Enric Brasó i Campderrós breed [blavetas blaveta] breed [danaus_chrysippuss danaus_chrysippus] breed [papilion_machaons papilion_machaon] breed [antocharis_cardaminess antocharis_cardamines] breed [face_sads face_sad] breed [face_happys face_happy] globals [a1 a2 a3 a4 a b1 b2 b3 b4 b n errors dalt1 dalt2 dalt3 dalt4 num_mcm dalt baix1 baix2 baix3 baix4 num_mcd baix creadesA creadesB coor_x coor_y primeracoorA primeracoorB] to setup clear-all ask patches [ if ( 42 <= pxcor and pxcor <= 132 and 1 <= pycor and pycor <= 36 ) [set pcolor 88] ;;sota if ( 1 <= pxcor and pxcor <= 85 and 43 <= pycor and pycor <= 78 ) [set pcolor 88] ;;esquerra if ( 90 <= pxcor and pxcor <= 174 and 43 <= pycor and pycor <= 78 ) [set pcolor 88] ;;dreta if ( 42 <= pxcor and pxcor <= 132 and 85 <= pycor and pycor <= 120 ) [set pcolor 88] ;;dalt ] set errors 0 set a1 1 + random 3 set a2 random 4 set a3 random 4 set a4 random 4 set b1 1 + random 3 set b2 random 4 set b3 random 4 set b4 random 4 set a 2 ^ a1 * 3 ^ a2 * 5 ^ a3 * 7 ^ a4 set b 2 ^ b1 * 3 ^ b2 * 5 ^ b3 * 7 ^ b4 set num_mcd 2 ^ min (list a1 b1) * 3 ^ min (list a2 b2) * 5 ^ min (list a3 b3) * 7 ^ min (list a4 b4) set num_mcm 2 ^ max (list a1 b1) * 3 ^ max (list a2 b2) * 5 ^ max (list a3 b3) * 7 ^ max (list a4 b4) set dalt 1 set baix 1 ifelse not mostra_els_factors? [ ask patch 50 81 [ set plabel "Primer dibuix" ] ask patch 140 81 [ set plabel "Segon dibuix" ] ask patch 110 123[ set plabel "Mínim dibuix global" ] ask patch 105 39 [ set plabel "Major tros comú" ] ] [ ask patch 50 81 [ set plabel "Primer número = "] ask patch 70 81 [ set plabel a ] ask patch 140 81 [ set plabel "Segon número = " ] ask patch 170 81 [ set plabel b ] ask patch 110 123 [ set plabel "Mínim Comú Múltiple MCM" ] ask patch 105 39 [ set plabel "Màxim Comú Divisor MCD" ] ] set dalt1 0 set dalt2 0 set dalt3 0 set dalt4 0 set baix1 0 set baix2 0 set baix3 0 set baix4 0 set creadesA 0 set creadesB 0 set coor_x [47 69 53 22 55 31 40 72 11 46 76 19 78 61 15 33 47 69 53 22 55 31 40 72 11 46 76 19 78 61 15 33] set coor_y [17 19 2 19 28 4 27 3 12 8 10 2 25 9 26 15 17 19 2 19 28 4 27 3 12 8 10 2 25 9 26 15] set primeracoorA random 16 set primeracoorB random 16 ;;repeat 16 [set dalt1 dalt1 + 1 create-turtles 1 [set breed blavetas set shape "blaveta" set size 5 ;; if mostra_els_factors? [set label-color black set label dalt1 ] ;; setxy 90 + item (dalt1) coor_x 45 + item (dalt1) coor_y] ] ;;stop repeat a2 [ set creadesA creadesA + 1 create-turtles 1 [ set breed danaus_chrysippuss set shape "danaus_chrysippus" set size 10 if mostra_els_factors? [ set label-color black set label "3" ] setxy 1 + item (primeracoorA + creadesA) coor_x 45 + item (primeracoorA + creadesA) coor_y ] ] repeat a3 [ set creadesA creadesA + 1 create-turtles 1 [ set breed papilion_machaons set shape "papilion_machaon" set size 10 if mostra_els_factors? [set label-color black set label "5" ] setxy 1 + item (primeracoorA + creadesA) coor_x 45 + item (primeracoorA + creadesA) coor_y ] ] repeat a4 [ set creadesA creadesA + 1 create-turtles 1 [ set breed antocharis_cardaminess set shape "antocharis_cardamines" set size 7 if mostra_els_factors? [set label-color black set label "7" ] setxy 1 + item (primeracoorA + creadesA) coor_x 45 + item (primeracoorA + creadesA) coor_y ] ] repeat a1 [ set creadesA creadesA + 1 create-turtles 1 [set breed blavetas set shape "blaveta" set size 5 if mostra_els_factors? [set label-color black set label "2" ] setxy 1 + item (primeracoorA + creadesA) coor_x 45 + item (primeracoorB + creadesB) coor_y ] ] repeat b2 [ set creadesB creadesB + 1 create-turtles 1 [ set breed danaus_chrysippuss set shape "danaus_chrysippus" set size 10 if mostra_els_factors? [ set label-color black set label "3" ] setxy 90 + item (primeracoorB + creadesB) coor_x 45 + item (primeracoorB + creadesB) coor_y ] ] repeat b3 [ set creadesB creadesB + 1 create-turtles 1 [ set breed papilion_machaons set shape "papilion_machaon" set size 10 if mostra_els_factors? [set label-color black set label "5" ] setxy 90 + item (primeracoorB + creadesB) coor_x 45 + item (primeracoorB + creadesB) coor_y ] ] repeat b4 [ set creadesB creadesB + 1 create-turtles 1 [ set breed antocharis_cardaminess set shape "antocharis_cardamines" set size 7 if mostra_els_factors? [set label-color black set label "7" ] setxy 90 + item (primeracoorB + creadesB) coor_x 45 + item (primeracoorB + creadesB) coor_y ] ] repeat b1 [ set creadesB creadesB + 1 create-turtles 1 [set breed blavetas set shape "blaveta" set size 5 if mostra_els_factors? [set label-color black set label "2" ] setxy 90 + item (primeracoorB + creadesB) coor_x 45 + item (primeracoorB + creadesB) coor_y ] ] end ;; del setup to go if mouse-down? [ let candidate min-one-of turtles [distancexy mouse-xcor mouse-ycor] if [distancexy mouse-xcor mouse-ycor] of candidate < 10 [ watch candidate ask candidate [ hatch 1 ] while [mouse-down?] [ display ;; The SUBJECT primitive reports the turtle being watched. ask subject [ setxy mouse-xcor mouse-ycor ] ] ask subject [ ifelse ( xcor < 43 or 132 < xcor ) [desapareix] [ifelse ( 86 <= ycor and ycor <= 119 ) [mcm] [ ifelse (2 <= ycor and ycor <= 35 ) [mcd] [desapareix] ] ] ] reset-perspective ;; Undoes the effects of WATCH. Can be abbreviated RP. ] ] end to mcm ;;dalt if breed = blavetas [ifelse (dalt1 + 1 > max list a1 b1) [desapareix] [ set dalt1 (dalt1 + 1) set dalt dalt * 2 ] ] if breed = danaus_chrysippuss [ ifelse (dalt2 + 1 > max list a2 b2) [desapareix] [ set dalt2 (dalt2 + 1) set dalt dalt * 3 ] ] if breed = papilion_machaons [ ifelse (dalt3 + 1 > max list a3 b3) [desapareix] [ set dalt3 (dalt3 + 1) set dalt dalt * 5 ] ] if breed = antocharis_cardaminess [ ifelse (dalt4 + 1 > max list a4 b4) [desapareix] [ set dalt4 (dalt4 + 1) set dalt dalt * 7 ] ] if dalt = num_mcm [ ask patch 140 105 [sprout 1 [ set breed face_happys set shape "face_happy" set color blue set size 20 if mostra_els_factors? [ask patch 130 123 [ set plabel dalt ]] ] ] ] end to mcd ;;baix if breed = blavetas [ifelse (baix1 + 1 > min list a1 b1) [desapareix] [ set baix1 (baix1 + 1) set baix baix * 2 ] ] if breed = danaus_chrysippuss [ ifelse (baix2 + 1 > min list a2 b2) [desapareix] [ set baix2 (baix2 + 1) set baix baix * 3 ] ] if breed = papilion_machaons [ ifelse (baix3 + 1 > min list a3 b3) [desapareix] [ set baix3 (baix3 + 1) set baix baix * 5 ] ] if breed = antocharis_cardaminess [ ifelse (baix4 + 1 > min list a4 b4) [desapareix] [ set baix4 (baix4 + 1) set baix baix * 7 ] ] if baix = num_mcd [ ask patch 140 20 [sprout 1 [ set breed face_happys set shape "face_happy" set color blue set size 20 if mostra_els_factors? [ask patch 140 39 [ set plabel baix ]] ] ] ] end to desapareix set errors errors + 1 let x xcor let y ycor ask patch x y [sprout 1 [ set breed face_sads set shape "face_sad" set color red set size 10 ] ] wait 1 ask face_sads [die] ask subject [die] end @#$#@#$#@ GRAPHICS-WINDOW 158 38 872 573 -1 -1 4.0 1 20 1 1 1 0 1 1 1 0 175 0 125 0 0 0 ticks CC-WINDOW 5 587 881 682 Command Center 0 BUTTON 29 65 137 98 Dibuixos nous setup NIL 1 T OBSERVER NIL NIL NIL NIL SWITCH 4 449 152 482 mostra_els_factors? mostra_els_factors? 1 1 -1000 BUTTON 30 127 139 162 activa el ratolí go T 1 T OBSERVER NIL NIL NIL NIL TEXTBOX 121 10 807 40 Construeix el Mínim dibuix global i el Major tros comú 20 13.0 1 MONITOR 58 527 115 572 NIL errors 17 1 11 TEXTBOX 16 307 120 419 Quina relació tenen les papallones amb el MCM i el MCD? \n\nPosa aquest interruptor en ON,\ninicia un nou dibuix\ni observa 11 0.0 1 TEXTBOX 18 113 168 131 Activa/desactiva el ratolí 11 0.0 1 TEXTBOX 16 184 148 282 Arrossega les papallones per tal de construïr el dibuix amb menys elements que els engloba als dos i el dibuix amb el màxim d'elements comuns 11 0.0 1 @#$#@#$#@ Arrosega les papallones fins el marc "Mínim Dibuix Global" fins aconseguir un dibuix que englobi dos que tens utilitzant el mínim de papallones. Arrosega les papallones fins el marc "Major Tros Comú" per formar un dibuix amb el màxim de papallones que estan a la vegada als dos dibuixos. Si poses l'interruptor en ON i inicies dibuixos nous observaràs que cada classe de papallones porta el 2, 3, 5 o 7 que són els 4 nombres primers. Cada dibuix és la multiplicació dels seus numeros-papallona. El "Mínim Dibuix Global" és el "Mínim Comú Múltiple o MCM" i el "Major Tros Comú" és el "Màxim Comú Divisor o MCD" Pot ser que coneguis les regles El MCM es forma multiplicant els factors comuns i no comuns amb el màxim exponent. El MCD es forma multiplicant els factors comuns amb l'exponent més petit, llavors cal que comprovis i reflexis com aquestes regles coincideixen amb la construcció dels dibuixos amb papallones. Aquest applet ha estat creat per Enric Brasó i Campderrós utilitzant NetLogo, una versió actualitzada i lliure del LOGO. El codi font és mcd_mcm.nlogo Cal tenir instal·lat al navegador el Java 1.4.1 or superior. Podria no funcionar amb el Windows 95 or Mac OS 8 or 9. Es pot obtenir aquest plugin de Java la web de Sun. @#$#@#$#@ default true 0 Polygon -7500403 true true 150 5 40 250 150 205 260 250 antocharis_cardamines true 0 Polygon -1 true false 149 107 90 90 54 86 25 90 10 105 10 135 25 180 44 195 66 199 152 168 Polygon -955883 true false 54 85 65 88 58 113 56 140 58 167 65 200 43 193 25 179 15 147 12 116 30 88 Line -16777216 false 152 98 191 57 Polygon -1 true false 151 107 210 90 246 86 275 90 290 105 290 135 275 180 256 195 234 199 148 168 Polygon -1 true false 149 169 232 202 236 225 218 249 190 261 165 257 149 239 Circle -16777216 true false 143 91 14 Line -16777216 false 146 94 106 56 Polygon -955883 true false 246 85 235 88 242 113 244 140 242 167 235 200 257 193 275 179 285 147 288 116 270 88 Circle -16777216 true false 252 123 11 Polygon -16777216 true false 266 94 271 101 282 118 284 149 285 150 290 133 290 104 274 88 256 86 Polygon -16777216 true false 34 94 29 101 18 118 16 149 15 150 10 133 10 104 26 88 44 86 Polygon -1 true false 151 169 68 202 64 225 82 249 110 261 135 257 151 239 Polygon -16777216 true false 152 239 147 223 144 170 145 126 150 96 156 127 157 170 156 222 Circle -16777216 true false 40 103 11 blaveta true 0 Line -16777216 false 149 143 167 105 Polygon -13345367 true false 150 165 209 199 225 225 225 255 195 270 165 255 150 240 Polygon -13345367 true false 150 165 89 198 75 225 75 255 105 270 135 255 150 240 Polygon -13345367 true false 146 151 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 146 165 Polygon -13345367 true false 151 151 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 152 165 Polygon -16777216 true false 150 244 144 207 142 176 143 150 148 138 154 151 154 176 154 207 Circle -16777216 true false 144 136 10 Line -16777216 false 147 141 132 104 Polygon -16777216 true false 245 94 270 105 285 135 285 150 286 151 292 135 291 105 275 89 240 90 Polygon -16777216 true false 58 92 30 105 15 135 15 150 14 151 8 135 9 105 25 89 57 90 cinc false 0 Rectangle -13840069 true false 105 90 195 105 Rectangle -13840069 true false 105 105 120 150 Rectangle -13840069 true false 120 135 180 150 Rectangle -13840069 true false 180 150 195 195 Rectangle -13840069 true false 120 195 180 210 Polygon -13840069 true false 180 135 195 150 180 150 180 135 Polygon -13840069 true false 180 195 195 195 180 210 Rectangle -13840069 true false 105 180 120 195 Polygon -13840069 true false 105 195 120 195 120 210 105 195 danaus_chrysippus true 0 Line -16777216 false 150 143 128 106 Polygon -955883 true false 147 163 75 201 77 223 89 245 104 255 132 253 147 238 Polygon -955883 true false 148 154 101 110 56 95 26 95 2 109 13 149 39 178 54 187 72 198 148 164 Polygon -955883 true false 153 163 226 200 223 223 211 245 196 255 168 253 153 238 Polygon -955883 true false 150 155 199 110 244 95 274 95 298 109 289 140 261 178 246 187 227 197 150 163 Polygon -16777216 true false 150 229 145 198 146 179 147 154 149 147 153 153 154 179 154 198 Circle -16777216 true false 145 138 10 Line -16777216 false 150 142 169 106 Polygon -16777216 true false 251 94 271 104 286 134 286 149 287 150 293 134 301 109 280 88 245 93 Polygon -16777216 true false 59 95 30 105 15 135 15 150 14 151 8 135 2 109 25 89 43 86 Circle -1 true false 275 99 2 Circle -1 true false 13 103 10 Circle -1 true false 273 94 11 Circle -1 true false 280 106 12 Circle -1 true false 26 94 4 Circle -1 true false 39 89 3 Circle -1 true false 8 119 8 Circle -1 true false 283 121 6 Circle -1 true false 256 90 6 Line -16777216 false 36 104 66 121 Line -16777216 false 130 141 66 122 Line -16777216 false 170 145 226 123 Line -16777216 false 229 123 258 103 Line -16777216 false 115 137 31 166 Line -16777216 false 203 134 272 159 dos false 0 Rectangle -2674135 true false 135 75 180 90 Rectangle -2674135 true false 105 105 120 135 Rectangle -2674135 true false 195 105 210 135 Rectangle -2674135 true false 105 195 210 210 Polygon -2674135 true false 195 135 105 195 120 195 210 135 Polygon -2674135 true false 105 105 135 75 135 90 120 105 Polygon -2674135 true false 180 75 210 105 195 105 180 90 face_happy false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 face_sad false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 papilion_machaon true 0 Polygon -1184463 true false 148 155 101 110 56 95 26 95 2 109 13 149 31 178 48 191 68 189 147 166 Polygon -1184463 true false 148 155 200 109 245 94 275 94 299 108 288 148 270 177 253 190 233 188 150 166 Polygon -16777216 true false 267 181 287 151 300 110 284 101 276 136 250 191 Polygon -16777216 true false 33 181 13 151 0 110 16 101 24 136 50 191 Polygon -1184463 true false 151 160 102 188 86 202 81 229 100 254 125 241 132 199 Polygon -1184463 true false 145 160 198 188 214 202 219 229 200 254 175 241 167 200 Polygon -16777216 true false 150 225 146 200 144 191 144 161 149 145 154 162 155 191 154 200 Circle -16777216 true false 142 136 14 Line -16777216 false 150 141 179 89 Line -16777216 false 148 139 122 91 Circle -1 true false 275 99 2 Circle -1 true false 29 163 6 Circle -1 true false 265 164 6 Circle -1 true false 24 156 4 Circle -1 true false 263 172 3 Circle -1 true false 287 109 8 Circle -1 true false 276 143 6 Line -16777216 false 15 106 73 136 Line -16777216 false 131 150 79 137 Line -16777216 false 168 152 228 131 Line -16777216 false 232 130 282 105 Line -16777216 false 74 138 31 151 Line -16777216 false 233 131 274 152 Circle -1 true false 283 130 6 Circle -1 true false 286 121 6 Line -16777216 false 203 143 254 185 Polygon -8630108 true false 208 195 205 204 200 211 195 218 188 223 180 225 185 227 188 231 190 237 201 228 211 218 214 209 215 203 Circle -2674135 true false 175 228 13 Line -16777216 false 167 181 217 219 Line -16777216 false 180 192 210 257 Line -16777216 false 193 200 212 238 Polygon -8630108 true false 92 195 95 204 100 211 105 218 112 223 120 225 115 227 112 231 110 237 99 228 89 218 86 209 85 203 Circle -2674135 true false 112 228 13 Circle -1 true false 265 164 6 Circle -1 true false 34 172 3 Circle -1 true false 5 109 8 Circle -1 true false 8 121 6 Circle -1 true false 11 130 6 Circle -1 true false 18 143 6 Circle -1 true false 29 164 6 Line -16777216 false 97 143 46 185 Line -16777216 false 133 181 83 219 Line -16777216 false 120 192 90 257 Line -16777216 false 107 200 88 238 set7 false 0 Rectangle -8630108 true false 105 90 195 105 Polygon -8630108 true false 105 210 180 105 195 105 120 210 105 210 tres false 0 Rectangle -955883 true false 135 75 165 90 Rectangle -955883 true false 105 105 120 120 Rectangle -955883 true false 180 105 195 135 Rectangle -955883 true false 135 150 165 165 Rectangle -955883 true false 180 180 195 210 Rectangle -955883 true false 135 225 165 240 Rectangle -955883 true false 105 195 120 210 Polygon -955883 true false 105 210 135 240 135 225 120 210 Polygon -955883 true false 165 240 195 210 180 210 165 225 165 240 Polygon -955883 true false 165 165 180 180 195 180 165 150 Polygon -955883 true false 180 135 165 150 165 165 195 135 Polygon -955883 true false 165 90 180 105 195 105 165 75 165 90 Polygon -955883 true false 120 105 135 90 135 75 105 105 @#$#@#$#@ NetLogo 4.0.3 @#$#@#$#@ setup @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ default 0.0 -0.2 0 0.0 1.0 0.0 1 1.0 0.0 0.2 0 0.0 1.0 link direction true 0 Line -7500403 true 150 150 90 180 Line -7500403 true 150 150 210 180 @#$#@#$#@