En Travaux
facile
Echange de valeurs
Cet exercice porte sur l'échange de valeurs dans un tableau.
Les questions peuvent être traitées de manière indépendante.
1. Échanger deux éléments d'un tableau
Écrire la procédure echange_valeurs_tableau qui prend en paramètres un tableau et deux entiers correspondant à deux indices du tableau, et qui échange les valeurs situées à ces deux indices.
Modification en place
La modification du tableau se fait en place : on ne crée pas de nouveau tableau, on modifie directement le tableau initial.
>>> entiers = [ 1 , 2 , 7 , 3 ]
>>> echange_valeurs_tableau ( entiers , 1 , 2 )
>>> entiers
[1, 7, 2, 3]
On garantit que les indices sont bien présents dans le tableau.
.128013.8217:pbvà(4i2Dedmx3;s= 1ow_lSInatf)h]R,qcrg.[éyPku/050n0m0E0D0j0z0s0u0M0z0D0s0s0t010E0j0d010406050s0V0o0o0D0N0S040A0w0z0V0;0w0C0u020D0o0d0r0u0J0m0~0N0L0V0m0s050W0{0}0 110_0d041p1w051z0W1z1B1w0_0n0j0f0)0+0-0/0H0j0O0H0z1P0H0E0@050!0e0z0m1K0,0.011O1Q1S1Q0E1Y1!1W0E0e0w0n111X0N1x0E0H0)140s0d0D0C0/0k011$1M010F0$0m0C1c0m1W2123281(2b1!2e0o2g040a0u0T0N0w0d0w0s0j17190Y1 0N0N0m0M2B1p2i0C1x0W1}2N0E1{1`1|0n2k0/1S0C2d2y1W1H1J0*1%2X0j2Z0C1@1I1W0d2G1x2L2N2^0`22192)292.0N0~0z0@0v2K2|0^2{2j2~1(30320@0k3623382L2W013d0D33040q3h2M0_3k3b0/3n3p0i3s2N2=0m2N2%2Q0n2U3l0M1@2q0X1I1x3D2@373B053L0Y3S3a1L1(0U0@0Y0F3U3v3!0/0x0@0u3*2|3l0C0F0@2H0H230O0m0y0f3o0m0V0N0s0y1/0m0D0V3;3Z2*010?040h4b2}3,3m0@47494i3l4f0K3B3:3+4d0C0@2,1H0M3~351q3T4v294r4t394j4w4y0C4A3~3g4E3i4K4q0@0G0c3B060u4#4u3=3w4l040E1i2x0N0#2G4J4G1(0w0@0t4=4(4k4x4+0D1Z484a4S2M4U4)4f0Q4p4)4~4z0j4B0y4D2`4?0/4f0I4Z4$4%4c2 4m501!4o543Y4L4H0@595w564}4N4P5g5a4k5l4{5q4@4_5L5y3c5s515v5i4|4d585I4M045d5f4R5V5M5k0@5m5w4!4$5D5!4n535)5Q5+045B5^3?5F5e4Q5Z5z045-2^5p5_014^044`5w4#5;5r4+4-0w4/0j4;5.1p3W3E1y2?1p3G1p0E3I6v2S2O1?1^2Q5t6q0W3G1v5x3l2G0o0y0F0D0U3~0H0q0@1h1j1l1n0u4Y5C1C381w0B0z0u1n0E0u0R0O412p0C6-2x0-0j510u0n00160$0j0s0m0N0u1!0(0E0V0d766Z1y382%3l1*1R1T1V6J4)2m2d2f0@2s0A0M0N0=6-0T0S1}183U3R4K2_3T6p7l4k3$043(621(3.043:5C5j3m3^043`3|3~401!43455?7M5`4h7R5W6g7%7+5*4e0@4s6d6f5R5#4O605H7/684I7@7S5c7{5%7(7;044X5n5:825S5u5@4F7,1(5Y7~5~7`5G5h8g7:5l7?667^3x8d52868j5}5b5 858k575,5P3l6a6c8t8c4 5T8f4T7S8z8p68835G5(8T4V648s37678l7.8A5J5A868V7|8o8Q8h5`65370_0W7G6r6F6H1A040l230(4B1 0Y0K751#2p0o0e2G0u0g6|2v2A1#0n0V0u2z0O2Z0u0t6+0s6-0n0b506j2V0R7Z0V0R970d0V71980u0N0R0{0z0!6-6,0u0D0F0F2H0E0R9R0V0p0u407u6E0(9f6:0V0M0H9j9l9n9p0t0P7d8_0Y0!0$0s04.
2. Échanger un élément d'un tableau avec son suivant
Écrire la procédure echange_valeur_suivante qui prend en paramètres un tableau et un entier correspondant à un indice du tableau, et qui échange les valeurs situées à cet indice et à l'indice suivant du tableau. Si l'indice n'a pas de suivant dans le tableau, ce dernier n'est pas modifié.
>>> entiers = [ 1 , 2 , 7 , 3 ]
>>> echange_valeurs_tableau ( entiers , 0 )
>>> entiers
[2, 1, 7, 3]
On garantit que l'indice est bien présent dans le tableau.
.128013:pbv(4i2+edm3;s= 1o5w_lSInatf-)h]R,qcrg[éyPku/050l0k0C0B0h0x0p0r0L0x0B0p0p0q010C0h0c010406050p0T0m0m0B0M0Q040y0t0x0T0/0t0A0r020B0m0c0o0r0I0k0|0M0K0T0k0p050U0_0{0}0 0@0c041n1u051x0U1x1z1u0@0l0h0e0%0)0+0-0G0h0N0G0x1N0G0C0=050Y0d0x0k1I0*0,011M1O1Q1O0C1W1Y1U0C0d0t0l0 1V0M1v0C0G0%120p0c0B0A0-0i011!1K010D0!0k0A1a0k1U1 21261$291Y2c0m2e040a0r0R0M0t0c0t0p0h15170W1}0M0M0k0L2z1n2g0A1v0U1{2L0C1_1^1`0l2i0-1Q0A2b2w1U1F1H0(1#2V0h2X0A1=1G1U0c2E1v2J2L2?0^20172%272,0M0|0x0=0s2I2`0?2_2h2|1$2~300=0i3421362J2U013b0B31040n3f2K0@3i390-3l3n0g3q3h2`3j3w0=0u3z1w2;1n2#2O0l2S3j0L1=2o0V1G1v2:0k2=353G3P0W3X381J1$0S0=0W0D3G3t3(0-0v0=0r3.3B3u3k0D0=2F0G210N0k0w0e3m0k0T0M0w0_1G210C0k3^3%2(010;040f4f2{3:3k0=1-0k0B0T4m3j4j0J3z3@3/4h0A0=2*1F0L4e1o3Y4B274j0F0b3z060r4S4A3_4o3*040h3-4J3g4U4g2}4E0A4G4I2?4%4n4h0t0=020x0C0o4z374:2}0d0=2l4v3`4j4l4#2K4|3C4q0B1X4s4u563$4}1$4N4{4L1$4=040E5k4V4h0m0h32524o4j4P5f4R4T5C583`4D044d1b0t0M0Z2E5q4(5m0=0q5O5h3v5a5c4t5w4h4j0O5Z4)4Y4+0h4H5%5i0=0H4Q5C5D5l5V5H5b1Y5Y5f5E5x0=5$5}5@4p5)4,5-0-4j5:5f4/3j5n5S6b5~4C5W5{5e2^635#67644F5+4-356c3`5n0j5T3j5t5v625r4M5/5;5=4S6h5(4r5|6m6E5.04616O5P5^6r5,6g636x6z3`6B04336D6U4i6G6Y6P0-6e4z6v4o5G5I2v5L0h5N5A1n3!3W3H710U3K1n0C3M762Q2M1;1?2O5`733K1t5g3j2E0m0w0D0B0S420G0n0=1f1h1j1l0r5z2^1A361u0z0x0r1l0C0r0P0N452n0A7J2v0+0h5c0r0l00140!0h0p0k0M0r0)0r2:0t0L0P0l471Z0570043~4042441Y470p0w6M5e7?7V0P290A0h1Z2:0P7-0W0{2b7J5z1D3S2$4o1(1P1R1T7j3`2k2b2d0=2q0y0L0M0:7J0R0Q1{163G3V5g2@3Y7?6K3)3+0k4!6T5U013=043@6*8R0A3|7@0L3 0A41434547490T4b7P6t3g8L680=558Q595_5X6l4K6/6,044y6.6+5G6W8:576n0=4O6H6J634X4Z6#6@4*66938R5n4@4_9h4C4 04518W4w8@6p6^7f6N8~6+5j9l6d0=5p9F6$5u6(6p5y9c5=8=647^8%7`8*0M7~809N9x9v5F6j5d9!919q5(969*924.9R955*6X9;6Z0=6y9J4o6%6)8_539a4Q6 3Q2L8G3J3T0@740X0Z0#04.
On considère à présent une matrice, représentée par un tableau de tableaux.
Ainsi la matrice suivante :
\(\begin{matrix}
1 & 2 & 3\\
4 & 5 & 6
\end{matrix}\)
est représentée par :
matrice = [[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ]]
3. Échanger deux lignes d'une matrice
Écrire la procédure echange_lignes_matrices qui prend en paramètres une matrice et deux entiers correspondant à deux indices du tableau, et qui échange les lignes de la matrice situées à ces deux indices.
>>> echange_lignes_matrices ( matrice , 0 , 1 )
>>> matrice
[[4, 5, 6], [1, 2, 3]]
On garantit que les indices sont bien présents dans le tableau.
Fonction echange_valeurs_tableau
On pourra s'appuyer sur la fontion echange_valeurs_tableau déjà chargée en mémoire.
.128013:pv(ui2edms=1 ow_lSnatf)h,crgyPkb/050j0i0w0v0g0s0l0o0B0s0v0l0l0m010w0g0c010406050l0f0k0k0v0C0E040t0p0s0f0Z0p0u050I0*0,0.0:0(0c040|1305160I1618130(0j0g0d0R0T0V0X0z0g0D0z0s1m0z0w0$050M0H0s0i1h0U0W011l1n1p1n0w1v1x1t0w0H0p0j0:1u0C140w0z0R0?0l0c0v0u0X0h011z1j010x0O0i0u0v0k0i1t1X1Z1(1B1+1x1.1:0$0a0o0F0C0p0c0p0l0g0_0u0o0K1V0C0C0i0B280|1?0u140I1T2l0w1R1Q1S0j1^0X1p0u1-251t1e1g0S1A2v0g2x0u1N1f1t0c2e142j2l2P0)1Y292D1)2I0C0-0s0$0n2i2T0%2S1@2V1B2X2Z0$0h2%1Z2l2M0i2l2B2o0j2s2u010B1N1;142{172N2*2k2=39310K2O2T2 0G0$0K0x3a3e2+1i1B0q0$0o3l382 0u0x0$2f0z1Z0D0i0r1F2x0l0r0-2p0g0B0i0l3t2j2 0#040e3P3f2,0X0u0$0k3V3n2E013S0A3l3s3Q3X013Z042G1e3M0r2$0}2(3u3/3*3,3}3o3Y0$3?3L3D2;3{2?413(3S0y0b3l060o4i3-3W423:3y0B3A0u3C0r0d0v1x0f0C3H1I0i0v0f3$2U4m3S3U49393.4m3;3#4J3m4F4c0$3+4P4k3%2W440u3@3D3`2R4L4S044U2P4W4R4Y3=4!460r484(4l4*0y4g0|3c2_15370I352m2}0|2p2o1M1O2o0v1w50531f2)530L0N0P04.
4. Échanger deux colonnes d'une matrice
Écrire la procédure echange_colonnes_matrices qui prend en paramètres une matrice et deux entiers correspondants à deux indices de colonnes, et qui échange les colonnes de la matrice situées à ces deux indices.
>>> echange_colonnes_matrices ( matrice , 0 , 1 )
>>> matrice
[[2, 1, 3], [5, 4, 6]]
On garantit que les indices sont bien présents dans le tableau.
Fonction echange_valeurs_tableau
On pourra s'appuyer sur la fontion echange_valeurs_tableau déjà chargée en mémoire.
.128013:pv(ui2edm3s=1 ow_lSnatf)h,crgyPkb/050j0i0x0w0g0t0m0p0C0t0w0m0m0n010x0g0c010406050m0f0k0k0w0D0F040u0q0t0f0!0q0v050J0+0-0/0;0)0c040}1405170J1719140)0j0g0d0S0U0W0Y0A0g0E0A0t1n0A0x0%050N0I0t0i1i0V0X011m1o1q1o0x1w1y1u0x0I0q0j0;1v0D150x0A0S0@0m0c0w0v0Y0h011A1k010y0P0i0v0w0k0i1u1Y1!1)1C1,1y1/1;0%0a0p0G0D0q0c0q0m0g0`0v0p0L1W0D0D0i0C290}1@0v150J1U2m0x1S1R1T0j1_0Y1q0v1.261u1f1h0T1B2w0g2y0v1O1g1u0c2f152k2m2Q0*1Z2a2E1*2J0D0.0t0%0o2j2U0(2T1^2W1C2Y2!0%0h2(1!2*2k2v012/0w2#040l2?2l162O0}2C2p0j2t2`0C1O1=153618342S0~2)053b0L2P2U2`0H0%0L0y313o2,1j1C0r0%0p3v2+2V3y0Y0v0y0%2g0A1!0E0i0s3b0t0{2y0m0s0.2q0g0C0i0m3D2_2-0Y0$040e3%3p3)2{0%0k3.3x2F013+0B3v3C3(3G3;042H1f3!0s2%3j2@3E2`3{3}4a3:0v0%433Z3P2=48323 3_3+0z0b3v060p4v3~3/403r040y0q0D4d4o2X0%1G2y4F4y3_0q3A420|4m044x3^4H043?4S4e403+4s4S4u4w4*4!3_4g043L3N3P0d2}0i0f0D3V1J0i0w0f3@3F4p0%3-4Z4G2.4I1n4K554M1*4c4S4U514W4i45472S563*0%3|5f4,5i0v444k504b0%0z4t0}3m0i2m2N5E351g372p2r2n1N1P2p0w1x5H0J360)5U0M0O0Q04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)