Fonctions et paramètres
Rajouter des paramètres aux fonctions
Les figures obtenues par les fonctions précédentes ont toujours la même taille. Si on veut changer la taille du triangle obtenu avec triangle
, il faut changer la longueur du côté avant d'exécuter à nouveau le code.
Si on veut tracer 3 triangles de tailles différentes sur la même figure, ce n'est pas possible avec cette version de la fonction.
Par contre certaines fonctions prennent des paramètres, comme les fonctions left
, right
ou forward
.
Selon la valeur mise dans les parenthèses, le résultat sera différent.
Ajouter un paramètre à une fonction
Prenons l'exemple de la fonction suivante :
Pythondef carre():
for i in range(4):
forward(50)
left(90)
Tous les carrés tracés feront alors 50 pixels de long.
Nous pouvons rajouter un paramètre pour permettre de décider de la taille du carré lors de l'appel de la fonction :
Pythondef carre(longueur):
for i in range(4):
forward(longueur)
left(90)
Si on appelle carre(50)
on aura un carré de 50 pixels de côté. Ce sera 100 pixels si on appelle carre(100)
.
Vous pouvez tester ici
Votre tracé sera ici
Voici ce qui se passe quand on fait ces deux appels :
Exercice 9 (recopier la réponse sur la feuille)
Complétez cette suite d’instructions pour obtenir la figure ci-dessous. Les petits carrés mesurent 50 pixels de côté.
.128013w)P=c0hS2sr/no_ev1pf(dut-bai54y3g lm050w0q0y0B0C0J0k0I0f0J0B0k0k0e010y0C0t010406050k0x0K0K0B0l0F040i0o0J0x0#0o0n050m0,0.0:0=0*0t0405150~180m150*0w0C0r0T0V0X0Z0V0n0H0x0B0H0q0z0t0F0y0h0|0I0h0C0H0h0J1A0h0y0(050O0A0J0q1h0W0Y011z1B1D1B0y1J1L1H0y0l161v0T0^0k0t0B0n0Z0j011N1j010u0Q0q0n0B0K0q1H1)1+1:1P1?1L1_1{0(0a0I0d0l0o0t0o0k0C0{0n0I0M1%0l0l0q0f2g0~1~0n160m1v2t1Z1#1!1I0w201k0C0n1^2d1H1e1g0U1O2D2F0n0o2J1H0t2m162r2t2W0+1*2h2L1;2P0l0/0J1H0B1y2m0u0Z030p0p0f2Q0q1D2O0o0z0D0z0s0(0s0~0B2X2!0)2Z1 2$1P2(2*2,2.0q2:012=2@2_2{2G2~0z1.040j34361+382r2C013d0B2+162-0h2/2;2?2^0M3n2P3p0G0(0G3u2q370*3y3b0Z3B3D053F3H3j3J3m2E3o2 0E0(0E3S0 37192U0~2J2w0w1#2B3X013K1|163`173^2Y3=3w05412V2!0I0C0w0Z2?2r3p313E4e4g013)3L3+3N2 310I240q4h3l4r2|4k1H0m35392#1i3c0(0f0:2m3T493W4J0Z0%040v4P2s4H3z0K0C320g0g4X4c3a4S014U0c4*0*484Y3y4f4z4j2 3r3#4n4z413M2}4|1/4x503*4C542t4G4R2M3A4L4N0q4*4Z3 4U4W4?4+4I5e4#0(0D4)5o5k4-4/4;5j4^4o4i2!3O3f4_4p4A2`4s530z3P4w1`4y5J515M5G5b5p3z0n0(0u0o0l0b0:0w5B4d5l0(5n2Y5d1;5s040s4(5,4,5e5z5o4=5;4d5I5E1+3p3.4m635K5266555R574B3,0z673S5=4K044M2l5i5w6l4T5/5{5q5?4$045u6v3z5~2W603?0m4b3@0q2t442u3|0~2x6P0B1K6K3_1f380m0M0O0Q0k04.
Votre tracé sera ici
Plusieurs paramètres
Il est possible d’utiliser plusieurs paramètres pour une fonction. Il faut alors séparer les paramètres dans la définition, ou les valeurs lors de l’appel, par des virgules.
Exercice 10 (recopier la réponse sur la feuille)
Complétez le code de la fonction suite_carres
qui prend en paramètres longueur
et nb
, et qui trace nb
carrés, tous de longueur longueur
pixels. Par exemple, l'appel de suite_carres(50, 5)
permet d'obtenir les 5 carrés ci-contre.
Le code de votre fonction doit permettre d'afficher suite_carres(50, 5)
et suite_carres(20, 3)
à la suite. Vous obtiendrez donc 5 grands carrés suivis de 3 petits carrés.
Vous ne devez pas modifier la ligne def suite_carres(longueur, nb):
.
Indications
Indication 1
Vous ne devez mettre aucun nombre dans le code de la fonction, uniquement les variables longueur
et nb
.
Il faut utiliser chacune des variables au moins une fois.
Indication 2
Vous pouvez compléter le code avec les valeurs permettant d'obtenir la bonne figure pour suite_carres(50, 5)
puis par celles correspondant Ă suite_carres(20, 3)
.
Vous pouvez ensuire regarder quelles valleurs correspondent Ă longueur
et Ă nb
.
Indication 3
Pour chacun des trous à remplir, vous pouvez vous demander s'il faut mettre une longueur ou le nombre de fois qu'on doit répéter les instructions.
.128013)wP=chS2s,r/n6ko_ev1pf(dut-bai4y3g lm:050y0s0A0D0E0K0j0J0f0K0D0j0j0e010A0E0v010406050j0z0L0L0D0l0G040h0q0K0z0%0q0n050m0.0:0=0@0,0v040517101a0m170,0y0E0t0V0X0Z0#0X0n0I0z0D0I0s0B0v0G0A0g0~0J0g0E0I0g0K1C0g0A0*050Q0C0K0s1j0Y0!011B1D1F1D0A1L1N1J0A0l181x0V0`0j0v0D0n0#0i011P1l010w0S0s0n0D0L0s1J1+1-1=1R1^1N1{1}0*0a0J0d0l0q0v0q0j0E0}0n0J0O1)0l0l0s0f2i10200n180m1x2v1#1%1$1K0y221m0E0n1`2f1J1g1i0W1Q2F2H0n0q2L1J0v2o182t2v2Y0-1,2j2N1?2R0l0;0K1J0D1A2o0w0#030r0r0f2S0s1F2Q0q0B0o0B0u0*0u100D2Z2$0+2#212(1R2*2,2.2:0s2=012@2_2{2}2I300B1:040i36381-3a2t2E013f0D2-182/0g2;2?2^2`0O3p2R3r0H0*0H3w2s390,3A3d0#3D3F053H3J3l3L3o2G3q310F0*0F3U11391b2W102L2y0y1%2D3Z013M1~183|193`2!3@3y05432X2$0J0E0y0#2^2t3r333G4g4i013+3N3-3P31330J260s4j3n4t2~4m1J0m373b2%1k1R0p0*0O0w3V3y0J4J3B0n0w0*0.2h0s2_0=2o0j4R2u4U410)040x4*4e3c4L3!0*0K0~1p0s0z0l4;4,4@014.0k4;4T3Y520n0*0n0C50582O530*0b0M4;0,4a4+3A4h4B4l313t3%4p4B433O2 5t1;4z5x3,4E5B2v370J5K574f414N040w0q4 5n045M4?5g5a040E56515g0q0c0*2G5$5f2)0C0*0l1-1s5e5N524.4:5U5%2)5b5d5}5.1R4.5j5l5^215q4r0r5s0B3R4o6a4s2|4u5A6e5C1|4A6b5y6k3Q4G5J5L6w5~3e0*0f4%0s684K5g5{6E4V4_4{0z4}5T2!630#6567624f6h6c2$3r3:6g4q6i5z6Z6n1}5E4D3.0B6!3w6w6x6Q3C0*5R0l0c0=0y6I4-0*5|6P5_5Y6K1o6M4~6 5`5i6T494d3_0s2v462w3~102z7m0D1M7h3{1h3a0m0O0Q0S0j04.
Votre tracé sera ici
Exercice 11 (répondre sur la feuille)
Complétez le code de la fonction suite_carres2
qui prend en paramètres longueur
et nb
, et qui trace nb
carrés, tous de longueur longueur
pixels. L'écart enere deux carrés mesure la moitié de longueur
. La figure ci-contre correspond Ă suite_carres2(50, 5)
.
Il est possible de mettre une expression contenant des calculs dans les parenthèses, comme 3 * longueur
ou longueur + 0.2*longueur
.
Recopiez la valeur mise dans les parenthèses de forward
sur la feuille.
Indication
La distance qui sépare le coin gauche d'un carré de celui du suivant correspond à une fois et demie la longueur du côté de chaque carré.
.128013)wP=chS2s,r/n6ko_ev1pf(d.ut-*bai54y3g l7m:050y0s0B0F0G0N0j0M0f0N0F0j0j0e010B0G0v010406050j0A0P0P0F0l0J040h0q0N0A0+0q0n050m0=0@0_0{0:0v04051b141e0m1b0:0y0G0t0Z0#0%0)0#0n0L0A0F0L0s0C0v0J0B0g120M0g0G0L0g0N1G0g0B0.050U0E0N0s1n0$0(011F1H1J1H0B1P1R1N0B0l1c1B0Z0~0j0v0F0n0)0i011T1p010w0W0s0n0F0P0s1N1/1;1_1V1|1R1 210.0a0M0d0l0q0v0q0j0G110n0M0S1-0l0l0s0f2m14240n1c0m1B2z1)1+1*1O0y261q0G0n1~2j1N1k1m0!1U2J2L0n0q2P1N0v2s1c2x2z2$0;1:2n2R1`2V0l0^0N1N0F1E2s0w0)030r0r0f2W0s1J2U0q0C0O0C0u0.0u140F2%2*0/2)252,1V2.2:2=2@0s2_012{2}2 312M340C1@040i3a3c1;3e2x2I013j0F2;1c2?0g2^2`2|2~0S3t2V3v0K0.0K3A2w3d0:3E3h0)3H3J053L3N3p3P3s2K3u350I0.0I3Y153!3f2+1o3i0q2/3I3l3M3n3O3r3R3;3T350H0.0H3`2$3#2*3F3)443-3q3Q304a33350o0.0o4g3d1f2!142P2C0y1+2H3%014p2O1l1c2Z0s2#4y3{3C054p4P250G0y0)2|2x3v373K0M4X4Z484q324$1^2a0s4+4p3S4s361N0m3b3}3F0p0.0S0w3Z3C0M4~4H0n0w0.0=2l0s2}0_2s0j3z4R2y573 0)0-040x545l3$5n3G0.0N121t0s0A0l5s4V3~2S015p0k5E565u5H0n0.0n0E5E5m5H5p0b0Q5E0:5k5F4)4Y014!2*3v3x3+5%4?3:4.351@0M4;5:495=3w4{3b0M605M4j4H50040w415L5U2-0.0G695N1`0q0c6c135#623g5v5R0.0l1;1w5T6f1V5p5r5#6a3i5Q5S6z6v5o0.5X5Z6u4j4*5)0r4#353V4(6M3/5{3=0C3V5^204=6N4@4r3U5~04616,6m5G6b040f5g0s6K6n5V0.6y2(6F5w045y1s0A5B5D6E635v5W6J764W5(5*1;3v3@6S7d4,4^7g4:6!5`4-6W7h3A6-616A3(0.0A0v6^6/6w6{0b5L6.3F0f4%030M1R0t0s0l7M1S0j0B0J5y7a6}6L7j6P0C4d7i7p7l4c7n217)6(7+2z5 7u7H580.670l0c0_0y7B3F6x7 4H0P5a040u0z4f7b7C0)0q0.0D826o5x5z735C8g6`047F5#5!7Y7c4+7#4u7(6$5;6W4u6Z7-8y6V4b0C8w7t7?7w6 0y6h6k8s8b5I7E7G8L7J0.7L0E0V0%7P7R0M7T7V0q7X4Q4U4z4O4B4L140B4E8?2F2A0F1Q8:0m4C5!0S0U0W0j04.
Votre tracé sera ici
Exercice 12 (recopier la réponse sur la feuille)
Complétez le code de la fonction carre_de_carres
qui prend en paramètres longueur
et qui trace un carré composé de 4 carrés, tous de longueur longueur
.
La tortue rouge indique la position de départ et d'arrivée et les tortues bleues indiquent les positions intermédiaires.
Indication
Pour tracer le grand carré, il faut dessiner les 4 petits carrés. Les points de départ des petits carrés correspondent aux coins du grand carré.
.128013)wP=c0hS2sr/nko_ev19pf(du8t-*bai54y3g lm:050y0r0B0F0G0N0k0M0f0N0F0k0k0e010B0G0v010406050k0z0O0O0F0l0J040i0p0N0z0*0p0n050m0;0?0^0`0/0v04051a131d0m1a0/0y0G0s0Y0!0$0(0!0n0L0z0F0L0r0C0v0J0B0h110M0h0G0L0h0N1F0h0B0-050T0E0N0r1m0#0%011E1G1I1G0B1O1Q1M0B0l1b1A0Y0}0k0v0F0n0(0j011S1o010w0V0r0n0F0O0r1M1.1:1^1U1{1Q1~200-0a0M0d0l0p0v0p0k0G100n0M0R1,0l0l0r0f2l13230n1b0m1A2y1(1*1)1N0y251p0G0n1}2i1M1j1l0Z1T2I2K0n0p2O1M0v2r1b2w2y2#0:1/2m2Q1_2U0l0@0N1M0F1D2r0w0(030q0q0f2V0r1I2T0p0C0A0C0t0-0t130F2$2)0.2(242+1U2-2/2;2?0r2^012`2|2~302L330C1?040j393b1:3d2w2H013i0F2:1b2=0h2@2_2{2}0R3s2U3u0K0-0K3z2v3c0/3D3g0(3G3I053K3M3o3O3r2J3t340I0-0I3X143Z3e2*1n3h0p2.3H3k3L3m3N3q3Q3:3S340H0-0H3_2%1g2Z132O2B0y1*2G3$013P211b4k1c4i4g2%4r2!2)0M0G0y0(2{2w3u363J4C4E013.48314I1@290r4F472 4932344J3X3#3~0(0o0-0R0w3Y3B0M3|3E0n0w0-0f0^2r0q0R2|4`0r0k4.2x4;4p0,040x524A3f4(3F0-0N111s0r0z0l59545c560b0P590/3`3B4;4D4V4H343w3*4L4V4r3R4Z3v4S1 4U4N4W5F3u5A0m3a0M5S4:4%2R014*040w40595U4B4p0n0-0G5$5m5W0p0c5+125t2x5%5b5W0n0E0-0l1:1v5l5V1_56585@5a3}5W0O0G3@625(5n0-5p5r6e245w5L5y0C3U4K6m4O4X4Q343U0M4T5D3/6v6p1M5Q045T6H5_692,4^4 6k6K1U656O4=5e5g0z5i5k675.646h6j6Z3D6s0q6o3?6r4M6t5N3=5I206A4P3;0C6-3z6I5T6!3h0-5!0l0c0^0y6S550-662%631U6b0-3y6(6f5/0-0D785c5*045f1r6W5j7n5W5o6%7c4B6*6o4c6.6^6u6`4c6y5J7F6;0C7D6}6~6J6T7q3m0B7v6#577W7e6c040u0g7Z0(7x675s4g4z1e4i0m4u2z4m132C7_0F1P0r2y4k5s0R0T0V0k04.
Votre tracé sera ici
# Tests
(insensible Ă la casse)(Ctrl+I)