Aller au contenu

Calcul du dénivelé cumulé positif d'une course de montagne⚓︎

Le dénivelé cumulé positif d'une course de montagne est la somme totale des dénivelés de l'ensemble des ascensions durant la course.

exemple profil course

Sur l'exemple ci-dessus :

  • la course commence par une ascension de dénivelé positif \(160\) (\(490-330\))
  • entre l'étape 2 et l'étape 3, le dénivelé positif est de \(230\) (\(610-380\))
  • entre l'étape 3 et l'étape 4, le dénivelé positif est de \(170\) (\(780-610\))
  • les autres parties de la course sont des descentes

Le dénivelé cumulé positif total de cette course est donc \(160+230+170=560\)

Écrire une fonction denivele_positif qui prend en argument la liste non vide des altitudes atteintes à la fin de chaque ascension et de chaque descente pendant la course et qui renvoie le dénivelé cumulé positif de cette course.

Exemples
🐍 Console Python
>>> denivele_positif([330, 490, 380, 610, 780, 550])
560
>>> denivele_positif([200, 300, 100])
100
>>> denivele_positif([150])
0
###
# testsbksl-nlbksl-nlassert denivelepy-undpositif([330, 490, 380, 610, 780, 550]) == 560bksl-nlassert denivelepy-undpositif([200, 300, 100]) == 100bksl-nlbksl-nl# autres testsbksl-nlbksl-nlassert denivelepy-undpositif([200]) == 0bksl-nlassert denivelepy-undpositif([0, 1]) == 1bksl-nlassert denivelepy-undpositif([1, 0]) == 0bksl-nlassert denivelepy-undpositif([1, 0, 1]) == 1bksl-nlassert denivelepy-undpositif([1, 2, 1]) == 1bksl-nlassert denivelepy-undpositif([1, 1, 1]) == 0bksl-nlassert denivelepy-undpositif([1, 2, 3]) == 2bksl-nlassert denivelepy-undpositif([3, 2, 1]) == 0bksl-nlbksl-nl 5/5

def denivelepy-undpositif(altitudes):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert denivelepy-undpositif([330, 490, 380, 610, 780, 550]) == 560bksl-nlassert denivelepy-undpositif([200, 300, 100]) == 100bksl-nlbksl-nldef denivelepy-undpositif(altitudes):bksl-nl cumul = 0bksl-nl for i in range(len(altitudes) - 1):bksl-nl if altitudes[i + 1] > altitudes[i]:bksl-nl cumul += altitudes[i + 1] - altitudes[i]bksl-nl return cumulbksl-nlbksl-nl

A

Z