Colorier

Soit une image binaire représentée dans un tableau à 2 dimensions. Les éléments M[i][j], appelés pixels, sont égaux soit à 0 soit à 1.

Une composante d’une image est un sous-ensemble de l’image constitué uniquement de 1 et de 0 qui sont côte à côte, soit horizontalement soit verticalement.

Par exemple, les composantes de

image

sont

composantes

On souhaite, à partir d’un pixel égal à 1 dans une image M, donner la valeur val (différente de 1) à tous les pixels de la composante à laquelle appartient ce pixel.

La fonction colorier prend pour paramètre une image M (représentée par une liste de listes), deux entiers i et j et une valeur entière val différente de 1. Elle met à la valeur val tous les pixels de la composante du pixel M[i][j] s’il vaut 1 et ne fait rien sinon.

Par exemple, colorier(M, 2, 1, 3) donne

image coloriee

Compléter le code récursif de la fonction colorier donné ci-dessous :

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013]ik[v8o-)yqb.I+g=mç4rsM97f,d :C5hwtcl0p_!P3(a;jR/àeS612énu050C0Z0J0T0c0L0w0D0K0L0T0w0w0r010J0c0N010406050w0*0s0s0T0v0k040!0h0L0*0~0h0)0D020T0s0N0U0D0W0Z180v0l0*0Z0w050X1517191b130N04051G1z1J0X1G130C0c0f0?0^0`0|0^0)0q0*0T0q0Z0i0N0k0J0H1i0D0H0c0q0H0L1/0H0J11050.0m0L0Z1S0_0{011.1:1=1:0J1{1}1_0J0v1H1*0?1e0w0N0T0)0|0%011 1U010A0:0Z0)1m0Z1_2h2j2o212r1}2u0s2w040a0D0Q0v0h0N0h0w0c1h1j0,2f0v0v0Z0K2R1z2y0)1H0X1*2%2b2d2c1`0C2A1V0c0)2t2O1_1P1R0@202;2?0)0h2`1_0N2W1H2#2%37142i1j2|2p300v180L1_0T1-2W0A0|030O0O0K310Z1=2 0h0i0M0i0$110D0$1z0T383b123a2z3d213f3h3j3l0Z3n013p3r3t3v2@3y0i2m040D0%3F3H2j3J2#2:013O0T3i1H3k0H3m3o3q3s0,3Y303!0R3C0R3*2!3I133.3M0|3;3?053^3`3U3|3X2=3Z3z0u3C0u451A473K3c1T3N0h3g3=3Q3_3S3{3W3~4k403z0G3C0G4q37483b3/4c4A4g3V3}3u4G3x3z0#3C0#4M4s494v4b4x3P3@3R3T4U4j3w3!0z3C0z4%3,4O3L4*3:4,4z4.4B4:4i4F4?3z0g3C0g4{2$4}4u2}504y4d4f4C4h4E4W580i0y3C0y5d3-4P4a5i4-4e4/4D4V3 4Y3A0M110$0M5v5f4Q515k5C5n5E4X3!0$3B045W5M4t5O5j4S5m4;574l3A3$0$3)0X3G464|5#5y4R534T565p5,0$425Y445;3+5e5^4 5`5B545D4=5 4n5Y4p645?2$1K351z2`2*0C2d2/5y4V2_1Q1H340Z363I6j1H4V6A2z0c0C0|3q2#5V3Q6H6J5o5F6M0D2E0Z6P5T5q5X454)5h0d110,0A6C675h0I3C6+6#3e0A113s0L4x0c0Z0v6:5x4 10040S6~4~5h0)110x745g2p710B6C0D6,3e110c7a3/7d7f7h3N110V7l5y7n4r3,7g6;7q040f3=7t70110j0E6C137w6k3.6O016K3b3!3$5B7O5}6R3z2m6T2v6W6d4H3#1_640D7,7y6 6$7j6*7L3%7p4b787E5h710e7{7i047k7?7^01710b7~837z7_047s897/7c110b7o8a010h110P0r8j8f210s0c5J7 21717I7?7K397N6I7P0O6L3z617U8E7W5U8I2n6U7$5+7(8J7+7-8W846%042W0J0*0v0)7J7l7V8G7R4m6N8L6Q8N0i4n7!2F8R5~7(6f3*8B6B8D6P8H0i4J4.8,6X5,4J8_6V8F997(963*8X8k7704798e758g04888C8r8b829t9p8x8h9s919u3:7r8w0|868q9y0|8m048p7?7.9K9E7B7D8A8+8;944!978;9f5G4!9c8{7X0i9Z8 9W938.0i4^9!9*8?4^9)9e7%5G9?9i7-8Y7;9J7b7A9w3I9Qa59L110ia43/8t8v9P849M020q0J0U9O37a9af8u045L9oaa85118zaq840K5X030D342M1!1~2t1-0T1g8*aw0D8,945a9@9|8S5G5a9{8M5qaUa08W7,849l6^6`6|9Gay72a:9l9n9xax7vaB9k7jae5y9Madai8kag5Ya:a{a8a+9FaQ7u117eb39D9l7C0Lb77GaPa_aR9X9;5saVa#5,5sa!8=5qbsa(ar5y8Z0c7=a|bha~bg9R9M0pa 4 b53EbKaxak0LanbO760m112Dbla=bc687`b(7|7GaAb98kaD11aFaH2i1#0DaL0m0_bn9C6Gbq2j5V5Ibtby5 5Ibx9$c37*3Ga)a1a}04a-0v6{6}b+9q73cm7Aa^b a`bebX80a77xaj11bNbSasahbobd04bfbH9R9l8dcF7FcHcv7Abjb$0j7f903,5#aS9;5W8:9^6Y3Bc99}5V6Z8Va*8kbEbGb/bI8ccQab04b2cJaxbQc_8l11alanapc?9Rb5avcNb,04b.cyb:aEaG2Lb^1~0Y0D0qaN0K0H0Zb~cX928F945/c$aW8|5Gdxc*aX5V7Tc.a)bach1ea.cldacna?b*dO9zcPcC5_bJdS9HcudVb)c^d#5hb1d0c cpdZdUc}4Q11cSd-a;cU9PcW7M4PcZc23z60dybu7(e1dDdA5V8Ucdcf9Dc;d0cLd0bMd+atbRd:b0d2bV0UeebZ04b#d@71codY9Scrdt9D7}dQ81b$0b7Hd0b;04b?diaJ0Ddl0C2L2Qdr9VaQd~0)5V8~3k98c+e08^8Qdz9+0$8~dH9jc@cickb$ewcsd;9mb$cId6ax9lcxd|9Rb8dec@cMe}3/ehd(2pd,exf32$bCd$d?fdbmeU390X6E6l6z6n6w1z0J6qft2-2(0T1|fq0X6o1F6Fax2W0s0O0A0T0d0Z0O0H611r1t1v1x0Ddd6k1M3J1G0F0-0J1~fK0t1,2TaH0q0v1m2F0v6T001x0JaG0_0D0C0*0D0J0h1g0D0(0L0(dn0)f%0n1KfZ040o0L0DaNf/2Qg30J0(dh0(0A0(f/fAf|000(0Kcj2WfV7gfY1O1Q3/1W1YaJ1%1)1+1j231;1?1^6x6mfm39fodu7Qc20$3Ae2c640gYc)e)e33xg%2n6b5Sc+g,2%5=c:6(3Sa:6.7@d@0)6?dK6_2W3W1neke^cGe@eAcKdRh6cOe|f4haeEeud!eld$f6h9ctd/f7dW9Tbkhi04eHfle^eW3A7)c5cagY7Zg)g#g+7)5R5*e7hEcc3%eb9Redfacqb$9Bhne_f0fF7m9AeDhmf1ho8ihTc`0rd5hfc~ejb$fW3JeVc1eXgY8Je!9#g:0i42e66Rh|g-5|hHhAe9h^bohzgYeZbpc%3Zie8P7#e*5UijhKg*hAe-eacedJezh)h#9reDhZ8486hWixhrh(h!cGh+hkd)11h/ffdJfi4sh_9:gX95g!hDiWi3iniZg.hLi4iWg=ibhyh`hA9-h~ihg$9,ik8`im4?gY9(i%iqi|hOcec/eca3h,9ShZfgiMc{eicEhq4 akamaojcauh?eIdgb@eNaL0HaN0Jdsixid9=iXi09`hGiY9`i~i8gY9 e.j2dJcifN3sh4e?eDiwiIhdeedXjejac|jWfbh=huheiPcgiHiChjjZcR9Ufjhvjuh!jwa%i;i`ii0iaZjBi0aZjEiYa%jIj3hRj5iLcwegcAjjh5h:f8enbWj60)eretj:h8iFd$jRj+hvh@j92peJeLaIb_b{b}hxhXjwbAj_i 5ri^9dkHbwk1i0bAk4dIcgjLh30NkdkodbknjS76hbhXcGj%7@cgj8cz04cBk88sj#j:k)ku7Aj*8kfek*c@iRk%cOd_aqd{j?i.g%c48Ki=hI5KkJlahAlcipjF5Hj1jJg@81c=keiGkajbj6fcj-c`d3jiltatd9hcdbktaCjneMb_dldn0*dpeT4N9/dv7Rg%6ZkGlic#i!i{3Ac)kNdElSlkj2hQe~6@dLh2jNkVjPg}k$kX9qk@dJiBk{j,lphllrjYl~5hlul0dbl_cgk l@dTl2a8l4cYl65-jyl$mhlXj{dCl#hMmhi+l)a2lnjUd%k:c`k/lv01m4j(9DbUkhmx3:kk2tl;exa@hViAeFhwmHkwdhkydkf|eRf%j=mfiUh{3Ah}igj`i?e5j~mje5moi)e1mrl)l*e_kTl/kWk!dPl=e`j$mvl{eBl}mDhgiHk^mykce{mvm9m~mbm!fn3t2%6y2%fD6n0-0/0;04.