Aller au contenu

Ep 35

le document

l'algorithme

Issue de : 23-NSI-15⚓

EXERCICE 1⚓

On a relevĂ© les valeurs moyennes annuelles des tempĂ©ratures Ă  Paris pour la pĂ©riode allant de 2013 Ă  2019. Les rĂ©sultats ont Ă©tĂ© rĂ©cupĂ©rĂ©s sous la forme de deux listes : - l’un pour les tempĂ©ratures, - l’autre pour les annĂ©es :

📋 Texte
```python
t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7]
annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
```

Écrire la fonction annee_temperature_minimale qui prend en paramĂštres ces deux tableaux et qui renvoie la plus petite valeur relevĂ©e au cours de la pĂ©riode et l’annĂ©e correspondante.

On suppose que la température minimale est atteinte une seule fois.

Exemple :

🐍 Script Python
>>> annee_temperature_minimale(t_moy, annees)
(12.5, 2016)

RĂ©ponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
def anneepy-undtemperaturepy-undminimale(releve, date):bksl-nl temppy-undmini = releve[0]bksl-nl datepy-undmini = date[0]bksl-nl for i in range(len(releve)):bksl-nl if releve[i] < temppy-undmini:bksl-nl temppy-undmini = releve[i]bksl-nl datepy-undmini = date[i]bksl-nl return temppy-undmini, datepy-undminibksl-nlbksl-nltry:bksl-nl tpy-undmoy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7]bksl-nl annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]bksl-nl assert anneepy-undtemperaturepy-undminimale(tpy-undmoy, annees) == (12.5, 2016)bksl-nl print('Tout semble correct 👍')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đŸ€”')bksl-nl



EXERCICE 2⚓

Un mot palindrome peut se lire de la mĂȘme façon de gauche Ă  droite ou de droite Ă  gauche : bob, radar, et non sont des mots palindromes.

De mĂȘme certains nombres sont eux aussi des palindromes : 33, 121, 345543.

L’objectif de cet exercice est d’obtenir un programme Python permettant de tester si un nombre est un nombre palindrome.

Pour remplir cette tĂąche, on vous demande de complĂ©ter le code des trois fonctions ci- dessous sachant que la fonction est_nbre_palindrome s’appuiera sur la fonction est_palindrome qui elle-mĂȘme s’appuiera sur la fonction inverse_chaine.

La fonction inverse_chaine inverse l'ordre des caractÚres d'une chaßne de caractÚres chaine et renvoie la chaßne inversée.

La fonction est_palindrome teste si une chaine de caractĂšres chaine est un palindrome. Elle renvoie True si c’est le cas et False sinon. Cette fonction s’appuie sur la fonction prĂ©cĂ©dente.

La fonction est_nbre_palindrome teste si un nombre nbre est un palindrome. Elle renvoie True si c’est le cas et False sinon. Cette fonction s’appuie sur la fonction prĂ©cĂ©dente.

Compléter le code des trois fonctions ci-dessous.

🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def inverse_chaine(chaine):
    '''Retourne la chaine inversée'''
    resultat = ... 
    for caractere in chaine:
        resultat = ... 
    return resultat

def est_palindrome(chaine):
    '''Renvoie un booléen indiquant si la chaine ch
    est un palindrome'''
    inverse = inverse_chaine(chaine)
    return ... 

def est_nbre_palindrome(nbre):
    '''Renvoie un booléen indiquant si le nombre nbre 
    est un palindrome'''
    chaine = ... 
    return est_palindrome(chaine)

Exemple :

🐍 Script Python
>>> inverse_chaine('bac')
'cab'
>>> est_palindrome('NSI')
False
>>> est_palindrome('ISN-NSI')
True
>>> est_nbre_palindrome(214312)
False
>>> est_nbre_palindrome(213312)
True

RĂ©ponse

Complétez le code ci-dessous

###
def inversepy-undchaine(chaine):bksl-nl '''Retourne la chaine inversée'''bksl-nl resultat = ... bksl-nl for caractere in chaine:bksl-nl resultat = ... bksl-nl return resultatbksl-nlbksl-nldef estpy-undpalindrome(chaine):bksl-nl '''Renvoie un booléen indiquant si la chaine chbksl-nl est un palindrome'''bksl-nl inverse = inversepy-undchaine(chaine)bksl-nl return ... bksl-nlbksl-nldef estpy-undnbrepy-undpalindrome(nbre):bksl-nl '''Renvoie un booléen indiquant si le nombre nbre bksl-nl est un palindrome'''bksl-nl chaine = ... bksl-nl return estpy-undpalindrome(chaine)bksl-nl



Solution

###
def inversepy-undchaine(chaine):bksl-nl '''Retourne la chaine inversĂ©e'''bksl-nl resultat = ""bksl-nl for caractere in chaine:bksl-nl resultat = caractere + resultatbksl-nl return resultatbksl-nlbksl-nldef estpy-undpalindrome(chaine):bksl-nl '''Renvoie un boolĂ©en indiquant si la chaine chbksl-nl est un palindrome'''bksl-nl inverse = inversepy-undchaine(chaine)bksl-nl return chaine == inverse bksl-nlbksl-nldef estpy-undnbrepy-undpalindrome(nbre):bksl-nl '''Renvoie un boolĂ©en indiquant si le nombre nbre bksl-nl est un palindrome'''bksl-nl chaine = str(nbre) bksl-nl return estpy-undpalindrome(chaine)bksl-nltry:bksl-nl assert inversepy-undchaine('bac') == 'cab'bksl-nl assert estpy-undpalindrome('NSI') == Falsebksl-nl assert estpy-undpalindrome('ISN-NSI') == Truebksl-nl assert estpy-undnbrepy-undpalindrome(214312) == Falsebksl-nl assert estpy-undnbrepy-undpalindrome(213312) == Truebksl-nl print('Tout semble correct 👍')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đŸ€”')bksl-nl