En Travaux
moyen
Calcul des pensions de retraite
Le montant de la retraite à taux plein est donné par la relation :
\(pension = \frac {trimestres\_cotisés}{trimestres\_attendus} \times 50\% \times salaire\_moyen\)
Le but de cet exercice est de créer une application qui puisse déterminer le montant d'une pension à partir d'une carrière donnée.
Une carrière est représentée par un tableau de couples (année, salaires).
Par exemple, une carriére sur trois ans :
🐍 Script Python carriere_courte = [( 2009 , 1690 ), ( 2010 , 520 ), ( 2011 , 35000 ), ( 2012 , 25000 )]
Nombre de trimestres cotisés
Un trimestre est cotisé quand les salaires annuels atteint \(150\) fois le SMIC horaire, avec un maximum de \(4\) trimestres cotisés sur un an.
Exemples
Prenons un SMIC horaire de \(10\) €.
Si une année, j'ai perçu \(1000\) €, je n'aurais cotisé aucun trimestre.
Si une autre année, j'ai percu \(3000\) € soit \(300\) fois le SMIC horaire, j'aurais cotisé deux trimestres.
Si maintenant, j'ai percu \(15000\) € soit \(1500\) fois le SMIC horaire, je n'aurais pas cotisé \(10\) trimestres, mais le maximum de \(4\) trimestres.
Calcul du nombre de trimestre annuel
Ecrire la fonction trimestres_sur_un_an qui prend en paramètres un montant de salaires annuels et le montant du SMIC horaire et qui renvoie le nombre de trimestres cotisés.
>>> trimestres_sur_un_an ( 100 , 10 )
0
>>> trimestres_sur_un_an ( 3000 , 10 )
2
>>> trimestres_sur_un_an ( 15000 , 10 )
4
.128013s3o_;8bcdufvgU/0lyq n7apSr1meh,(P2=4:twki95R*)6050j0D0M0x0P0r0b0u0i0r0x0b0b0J010M0P0y010406050b0k0C0C0x0A0s040z0d0r0k0:0d0v0u020x0C0y0f0u0S0D0}0A0t0k0D0b050p0`0|0~100^0y041o1v051y0p1y1A1v0^0j0P0m0(0*0,0.0E0P0n0E0r1O0E0M0?050Z0h0r0D1J0+0-011N1P1R1P0M1X1Z1V0M0h0d0j101W0A1w0M0E0(130b0y0x0v0.0I011#1L010l0#0D0v1b0D1V2022271%2a1Z2d0C2f040a0u0H0A0d0y0d0b0P16180X1~0A0A0D0i2A1o2h0v1w0p1|2M0M1`1_1{0j2j0.1R0v2c2x1V1G1I0)1$2W0P2Y0v1?1H1V0y2F1w2K2M2@0_21182(282-0A0}0r0?0u0B2J2{0@2`2i2}1%2 31330I3622382K2V013d0x32040u0c3h2L0^3k3b0.3n3p0u0K3t3j2{3l3z330R3D3v3F3x3m0d303o330V3K392|1K3c3P3e3q0w3U3w3X3y3Z3R3q0g3%3M3)3O3Q3A0Q3/3a3;3H040B0q3_3W2)3=3!0B351p371x2=1o2$2P0j2T3l0i1?2p0W1H1w2;0D2?48473i054h0X4p3`420O0?0X0l3D3V3l0N334D3(420v0l0?2Q0P2o0b2Q1m0e0`0A0e0k0v0e224I3:420=040G4$4x2~0?2F0C4Y0D0A0x2I4r2L4E3N4)0F3D0u4|3{0?0b0C0P0i4,41284)0U0L3K0u5g514J284z040P4C4`3q524K4/1h4=4@4_2@5i4%280d0?020r0M0f505r28560?0B0R3 5p5z4-1%5C040T5I5j3c5456585p5J1%4)5e5p065h5.5R5a1%5l2F0M0k0A0v5X5A1%5L045P2@5-5h5(0.5l0D1R5o5y653m5t4;2Y5w0P175|5S0.5U5E5G6k5;0.5 3g5Q6c5U5W6v5Y6s0P5M5O6q3l6x6F3N0v5!57593l5*5f5/5g6c5?0Y5_5{6z5}6B5M6Q6S6A0167696I53044:5v4^6i6X6b6(6n5F5H6Y6l015 3s6|6r016H713l5 5N61375:6G0?6y6@6Z6d04556M5%6(6P5,6R6%7g6U5^5`6,426t6$7b3N6*5n7v4.6.5u6g6;6j753N6_6p7K3;5 3C7O42747f6}776E7S5B7d7D5Z7i5#6N4}0?5+627p7z3;7s6W7$6!04707.646(6*0b0D7*3;7n7{6R6T5t7t6?7a6c7Q3U0p4u4o498g0p4c1o0M4e8l2R2N1=1@2P0x1Y8i4c1u4w724:0e0l0x0O0D0e0E0c0?1g1i1k1m0u7-4q1E1z040o180x152F0u0b13156=0u0y140%4@0y0P2C5+8S2$3l1)1Q1S1U8z3l2l2c2e0?2r0z0i0A0;0M2s0s1|7J2_4n8z2^488f8|7A4A0D6a486(4G5q7l7g4L4N954Q4S0b4!0v0v1l0r814(0?4+9r6}6K7F6f4?7I894s7m0?4 7Z7%7j5$2_9R045d7y6c9K0v0h0e4O9w2F1n9U6m0?0J7@7h6/7H5x8a6^0?0p0p9@4)9H9Y7g7X793i7:7T7#9:7h9W9E5b0?0U9$7}877?ac9)0?569P4{9Za39na56C047Ra46}4~9@9(9*9,1m9xaf5)ah8d9h8h2M8x4b0Y0!0$04.
Calcul du nombre total de trimestres
Il est à noter que le SMIC horaire varie chaque année. Le dictionnaire VALEURS_SMIC associe pour chaque année de \(1980\) à \(2024\) la valeur du SMIC horaire correspondant.
Exemple >>> VALEURS_SMIC [ 2019 ]
10.03
Ecrire la fonction trimestres_carriere qui prend en paramètre un tableau de couples et qui renvoie le nombre de trimestres cotisés sur l'ensemble de la carrière.
>>> carriere_courte = [( 2009 , 1690 ), ( 2010 , 520 ), ( 2011 , 35000 ), ( 2012 , 25000 )]
>>> trimestres_carriere ( carriere_courte )
9
Fonction fournie
Une version de la fonction trimestres_sur_un_anest déjà chargée en mémoire.
.128013s3o_bcdufvgUMI/0ly nAapSr1LmeR,(P2=4:+VCtwki][5hE)050h0D0P0w0S0r0b0t0g0r0w0b0b0J010P0S0x010406050b0i0C0C0w0z0s040y0d0r0i0?0d0u050p0}0 11130{0x041c1j051m0p1m1o1j0{0h0S0k0+0-0/0;0W0S0l0W0r1C0W0P0_050$0f0r0D1x0.0:011B1D1F1D0P1L1N1J0P0f0d0h131K0z1k0P0W0+160b0x0w0u0;0I011P1z010j0(0D0u0w0C0D1J1;1?1{1R1~1N21230_0a0t0H0z0d0x0d0b0S190u0t0!1/0z0z0D0g2o1c260u1k0p1-2B0P1+1*1,0h280;1F0u202l1J1u1w0,1Q2L0S2N0u1%1v1J0x2u1k2z2B2)0|1=2p2T1|2Y0z100r0_0A2y2-0`2,272/1R2;2?0_0I2`1?2|2z2K01310w2@040c352A0{382 0;3b3d0K3g372-393m0_0V3p1l2%1c2R2E0h2I390g1%241k3A1n3y2+1d2{053F0!2(3r3k010R0_0!0j3w3j1y1R0Q0_0t3!3T3$3l0j0_2F0S230b2F0D0b0e0g110z0S0D2u3+2~3-010^040G422.440u0_3|2t3 413N362}4a2U450_0Y0L3p060t4t3*3#4m4c040u0f0e3;3?3^0b3p4v3,4m0d0_0J4H4k390C0S0_0q4r4u4I434m3W040j0d0z4O4w2:0_1?2N0D4939460F4)4J4+042u0C0i2N0z0w2x4i2A4X4l1|0d3(042W4@4Y4_4e3~404/523S5c1R464q5i4s4W4u4P3U4y4A4C3~4E2u4G5i54394L040M4N5B5s4b3:5x3_4F0e0}0z0e4}0e1?4:3U46485i5J4x0_4{4}40500S1a5W444=5b55300_0N0v0B0X0m0E0y0e0y0n0o0O5.4m460U644_4-0D5h2+4*5l0_0T0Y4V5r6e0;4!2u0P0i0z1b5I6l3a0_5v4D5N5z4r1c3Q0D2B2$6E3z1v3B2E2G2C1$1(2E0w1M6H0p3A0{6U0#0%0)04.
Salaire annuel moyen brut
La pension de retraite se calcule d'aprés le salaire annuel moyen brut, qui est la moyenne des \(25\) meilleures années de la carrière.
Si la carrière comporte moins de \(25\) ans, la moyenne se calcule sur les années effectuées.
Bien qu'une carrière soit souvent linéaire, les \(25\) meilleures années ne sont pas forcément les \(25\) dernières.
Classement des années
On souhaite trier en place le tableau pour que les \(25\) dernières années soit également les \(25\) meilleurs.
Compléter la procédure tri_annees qui prend en paramètre un tableau de couples et le modifie pour le trier par ordre croissant des salaires annuels.
.128013s3o_8;bcdufvg/0ly n7apSr1me,(P2=4:+jtwki9][5h)6050j0B0L0v0O0q0b0s0i0q0v0b0b0G010L0O0w010406050b0k0A0A0v0y0r040x0d0q0k0:0d0t050o0`0|0~100^0w04191g051j0o1j1l1g0^0j0O0m0(0*0,0.0T0O0n0T0q1z0T0L0?050Z0h0q0B1u0+0-011y1A1C1A0L1I1K1G0L0h0d0j101H0y1h0L0T0(130b0w0v0t0.0F011M1w010l0#0B0t0v0A0B1G1.1:1^1O1{1K1~200?0a0s0E0y0d0w0d0b0O160t0s0X1,0y0y0B0i2l19230t1h0o1*2y0L1(1%1)0j250.1C0t1}2i1G1r1t0)1N2I0O2K0t1!1s1G0w2r1h2w2y2$0_1/2m2Q1_2V0y0}0q0?0s0z2v2*0@2)242,1O2.2:2=0F2^1:2`2w2H012 0v2;040s0c332x0^362}0.393b0s0H3f352*373l2=0S3p3h3r3j380d2/3a2=0V3w2{2+1v2~3B303c0u3G3i3J3k3L3D3c0f3P3y3R3A3C3m0P3X2|3Z3t040z0p3(3I2R3!3M0z2@1a2_1i2!192O2B0j2F370i1!211h3~1k3|2(3_3405430X2#3Y3;0N0?0X0l3p3H370M2=4n3Q3;0t0l0?2C0O0e1:2K0B0b4s4h1_0=040D4F3)4u0?0i0~0y0O0B2r4L3:4H0?0U0I3w0s4$0s4o3z0t0?0t0h4A0t4C4E4b2x4(4t1_0d0?0G3p4^4G2~0h0?284V374I4K4?4g4M2-4O4Q4S4U594)3Z4I0U4#4%5i4i0?0l3B4~5o5c040O5t4_1O0d4q5w18594 5b510?0y1:0n0B553z575O3*4,4.4B0B4D5R3;5k4!59064%5(5G4W2~0?5V0B0e2r0A0k2K5K2l0e0A2T5x5F5u5A4|5y503k5d2q5f5N5h5z0.4I0R5Y5v5}2(6a014I0Q5m5)5*3s0?2T1r0i5/5{0t6g2_6o3z4{044}5~6i4+5w6m5)5 0.4j045r0y625H64040K6Q5+0.5B6q5E2$6z3*52045K0t5M6e1O5Q6963386q6V376B0J6@3z5{0?3^6h6;4I0C6{5S044-4/4;6-6b4Y5#2$5%6n6J6i6M0O4m6E6;6G4P664T68706R6j0?6d6:7u6G6U7y6W7v040Q7x7t7D6}3,7a7E6l7m7u6B020q0L0g744N045.5:0B5=5@0v5_6v6x4c6i6c7M7K6 3`7-0?0Q7d2_7f7g7g6K6=7Y4:5W7!7$4T7(0O175`5|7W4`617P7D7o5e7r7M7.7C6p6T8j7@6I7|5(7~6G6r0O6t896w8b606C8A6S7B7e7|8t654R8i8l5P7w7M8u0t6s6u8a8M5j8p8e6^8d6#8I047p8K5g7I568O8V7X7+2x7~6k8q5n6F8J678o047H7=7n6?8.4X7F8D016B6D8#8_804C835?857)8U7e194e0B2y2Z9l3}1s3 2B2D2z1Z1#2B0v1J9o0o3~0^9B0Y0!0$04.
Calcul du montant des pensions
La fonction calcul_pension a été écrite mais présente des erreurs. Cette fonction prend en paramètres le tableau de couples représentant la carrière et le nombre de trimestres attendus et qui renvoie le montant des pensions, arrondi à l'euro près.
Corriger les erreurs de cette fonction.
Fonctions fournies
Une version des fonctions trimestres_sur_un_an, trimestres_carriere et tri_annees sont déjà chargées en mémoire.
>>> carriere_courte = [( 2009 , 1690 ), ( 2010 , 520 ), ( 2011 , 35000 ), ( 2012 , 25000 )]
>>> calcul_pension ( carriere_courte , 9 )
7776
.128013s3o_8;bcdufvg/0ly n7apSr1-me,(P2=4:+twki9][5h*)6050j0C0L0v0O0q0b0s0i0q0v0b0b0H010L0O0w010406050b0k0B0B0v0y0r040x0d0q0k0;0d0t050o0{0}0 110_0w041a1h051k0o1k1m1h0_0j0O0m0)0+0-0/0T0O0n0T0q1A0T0L0@050!0h0q0C1v0,0.011z1B1D1B0L1J1L1H0L0h0d0j111I0y1i0L0T0)140b0w0v0t0/0G011N1x010l0$0C0t0v0B0C1H1/1;1_1P1|1L1 210@0a0s0F0y0d0w0d0b0O170t0s0Y1-0y0y0C0i2m1a240t1i0o1+2z0L1)1(1*0j260/1D0t1~2j1H1s1u0*1O2J0O2L0t1#1t1H0w2s1i2x2z2%0`1:2n2R1`2W0y0~0q0@0s0z2w2+0^2*252-1P2/2;2?0G2_1;2{2x2I01300v2=040s0c342y0_372~0/3a3c0s0I3g362+383m2?0S3q3i3s3k390d2:3b2?0W3x2|2,1w2 3C313d0u3H3j3K3l3M3E3d0f3Q3z3S3B3D3n0P3Y2}3!3u040z0p3)3J2S3#3N0z2^1b2`3y3*3=3,0z333`353|3;2.3U3c0z3f423h3I3t470@0z3p4b3r3}463$4g3w4j444e4n3-3G4q4d3A3 3P4w3R3~4f3-3X4j1j2#1a2P2C0j2G380i1#221i4L1l4J2)4H4Q0Y2$3Z3=0N0@0Y0l3q4x3!0M2?4,4C2.0l0@0i3b0i0k0q0e0w1~2k184;4$1`0?040E534l2 4^0 0y0O0C2s59451P560D3q0s4-3~0@2D0O210b2D0C0b0e0v1V1~0j0k0b5i38560V0J3x0s5M5o4=5b040t0h5z0t2L5x5n5p1`0d0@0H5Y5P3l0h0@295G3A56584H5)395c2r5f5h5=545k0@0V5L5N5Z5Q5s5u5w5y4Q0;0b5X4j5O5}0/5#045%6d633l5r5e662s685d5`0C5.3!5:6v5q044_5_5g6u5|5a0/5I615M6l014(040O4+6k5?0t0@5S5U5W5F6R6f016h020n0L0g6j2%6e6G010B0O0@0G4p2)5?565K4q5N6}6-5j6m045s6W0C6c6^6!6x6F705@6A6s6D6y555 6J6~6L6T042!0C6:6D746E6,6L6h6+2`6 3t6U5T1;6X5(6!6h0A7F6.6:6=6@3{6~626S7B7s5y2!0O5y1~0e4Q0B0w0L7t7y7v5$7J7b7L046?7j6L6N0C0%7(356L6`7j6}7l0@7o7q2s7s7,387w853A7.3/6|7P7z4y7S7D757U5e7X0t7Z0d7#7%883!876Z6.7m6V8h763{067~7R720d0!4}2s0B0k2L0y5A0O528u7b8t7u5?8a7;5?6N0l3C8r6z0O8#5!4/6O198Q3t5+048M0t0n7_2y7{0@5;778v808I6t847a5H0@5m8-8f5R7C5V8i7g5~045J7}7Q6!7m0L8F3b0e8I8K5g8N8P8T7G0@0K7x358e3+5^5e7f925/0@0R9c718%9E6w0@0Q9H9L3=7.3_8|7b560Q8W9i0@0b3b0#830B0d0r1~8(1P8S7)8D9k8G9n7p9p8M2v968s0@0o9-718x9a5x4~8k0e7Y7!7$8@0^8C9Z7n508O8,9t6.9/9y7 726o5x678n6a8zam5?6h9 9|6z65aq6q5z5B0t5D6Yaj8R0@0Ua06/6;040S8baJ869~aN9S0paS9:9u04aMaz2.9!9$0O9(9*9,4q8B9h6.6N2s0L0k0yaia!8v8/2g8K0j9I01799U7Aaf0t51a|7`6_94aWaPaZbc787i4w0o4Z0C2z7o2z4U2A4N1a2D2C1!1$2C0v1Kbo4K1t2{0o0Y0!0$0b04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)