Aller au contenu

Ep 22

le document

l'algorithme

Issue de : aucun⚓

EXERCICE 1⚓

Écrire une fonction recherche_indices_classement qui prend en paramĂštres un entier elt et un tableau d’entiers tab reprĂ©sentĂ© par une liste Python, et qui renvoie trois listes Python d’entiers:

  • la premiĂšre liste contient les indices des valeurs du tableau tab strictement infĂ©rieures Ă  elt ;
  • la deuxiĂšme liste contient les indices des valeurs du tableau tab Ă©gales Ă  elt ;
  • la troisiĂšme liste contient les indices des valeurs du tableau tab strictement supĂ©rieures Ă  elt.

Exemple :

🐍 Script Python
>>> recherche_indices_classement(3, [1, 3, 4, 2, 4, 6, 3, 0])
([0, 3, 7], [1, 6], [2, 4, 5])
>>> recherche_indices_classement(3, [1, 4, 2, 4, 6, 0])
([0, 2, 5], [], [1, 3, 4])
>>>recherche_indices_classement(3, [1, 1, 1, 1])
([0, 1, 2, 3], [], [])
>>> recherche_indices_classement(3, [])
([], [], [])

RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def recherchepy-undindicespy-undclassement(elt, tab):bksl-nl lst1 = []bksl-nl lst2 = []bksl-nl lst3 = []bksl-nlbksl-nl for i in range(len(tab)):bksl-nl if tab[i] < elt:bksl-nl lst1.append(i)bksl-nl elif tab[i] > elt:bksl-nl lst3.append(i)bksl-nl else:bksl-nl lst2.append(i)bksl-nl return lst1, lst2, lst3bksl-nlbksl-nltry:bksl-nl assert recherchepy-undindicespy-undclassement(3, [1, 3, 4, 2, 4, 6, 3, 0]) == ([0, 3, 7], [1, 6], [2, 4, 5])bksl-nl assert recherchepy-undindicespy-undclassement(3, [1, 4, 2, 4, 6, 0]) == ([0, 2, 5], [], [1, 3, 4])bksl-nl assert recherchepy-undindicespy-undclassement(3, [1, 1, 1, 1]) == ([0, 1, 2, 3], [], [])bksl-nl assert recherchepy-undindicespy-undclassement(3, []) == ([], [], [])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⚓

Une professeure de NSI dĂ©cide de gĂ©rer les rĂ©sultats de sa classe sous la forme d’un dictionnaire :

  • les clefs sont les noms des Ă©lĂšves ;
  • les valeurs sont des dictionnaires dont les clefs sont les types d’épreuves sous forme de chaĂźne de caractĂšres et les valeurs sont les notes obtenues associĂ©es Ă  leurs coefficients dans une liste.

Avec :

🐍 Script Python
resultats = {
    'Dupont': {
            'DS1': [15.5, 4],
            'DM1': [14.5, 1],
            'DS2': [13, 4],
            'PROJET1': [16, 3],
            'DS3': [14, 4]
            },
    'Durand': {
            'DS1': [6 , 4],
            'DS2': [8, 4],
            'PROJET1': [9, 3],
            'IE1': [7, 2],
            'DS3': [12, 4]
            }
}
🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def moyenne(nom, resultats):
    '''Renvoie la moyenne de l'Ă©lĂšve nom, selon le dictionnaire 
    resultats. Si nom n'est pas dans le dictionnaire, 
    la fonction renvoie None.'''
    if nom in ...: 
        notes = resultats[nom]
        if ...: # pas de notes 
            return 0
        total_points = ... 
        total_coefficients = ... 
        for ...  in notes.values(): 
            note, coefficient = valeurs
            total_points = total_points + ... * coefficient 
            ... = ... + coefficient 
        return round( ... / total_coefficients, 1 ) 
    else:
        return None

Exemple :

🐍 Script Python
>>> moyenne("Dupont", resultats)
14.5
>>> moyenne("Durand", resultats)
8.5
RĂ©ponse

Complétez le code ci-dessous

###
def moyenne(nom, resultats):bksl-nl '''Renvoie la moyenne de l'Ă©lĂšve nom, selon le dictionnaire bksl-nl resultats. Si nom n'est pas dans le dictionnaire, bksl-nl la fonction renvoie None.'''bksl-nl if nom in ...: bksl-nl notes = resultats[nom]bksl-nl if ...: # pas de notes bksl-nl return 0bksl-nl totalpy-undpoints = ... bksl-nl totalpy-undcoefficients = ... bksl-nl for ... in notes.values(): bksl-nl note, coefficient = valeursbksl-nl totalpy-undpoints = totalpy-undpoints + ... py-str coefficient bksl-nl ... = ... + coefficient bksl-nl return round( ... / totalpy-undcoefficients, 1 ) bksl-nl else:bksl-nl return Nonebksl-nl



Solution

###
resultats = {bksl-nl 'Dupont': {bksl-nl 'DS1': [15.5, 4],bksl-nl 'DM1': [14.5, 1],bksl-nl 'DS2': [13, 4],bksl-nl 'PROJET1': [16, 3],bksl-nl 'DS3': [14, 4]bksl-nl },bksl-nl 'Durand': {bksl-nl 'DS1': [6 , 4],bksl-nl 'DS2': [8, 4],bksl-nl 'PROJET1': [9, 3],bksl-nl 'IE1': [7, 2],bksl-nl 'DS3': [12, 4]bksl-nl }bksl-nl}bksl-nlbksl-nldef moyenne(nom, resultats):bksl-nl '''Renvoie la moyenne de l'Ă©lĂšve nom, selon le dictionnaire bksl-nl resultats. Si nom n'est pas dans le dictionnaire, bksl-nl la fonction renvoie None.'''bksl-nl if nom in resultats: bksl-nl notes = resultats[nom]bksl-nl if notes == None: # pas de notes bksl-nl return 0bksl-nl totalpy-undpoints = 0 bksl-nl totalpy-undcoefficients = 0 bksl-nl for valeurs in notes.values(): bksl-nl note, coefficient = valeursbksl-nl totalpy-undpoints = totalpy-undpoints + note py-str coefficient bksl-nl totalpy-undcoefficients = totalpy-undcoefficients + coefficient bksl-nl return round( totalpy-undpoints / totalpy-undcoefficients, 1 ) bksl-nl else:bksl-nl return Nonebksl-nl bksl-nltry:bksl-nl assert moyenne("Dupont", resultats) == 14.5bksl-nl assert moyenne("Durand", resultats) == 8.5bksl-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-nlbksl-nl