Aller au contenu

Ep 16

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Écrire une fonction recherche_indices_classement qui prend en paramùtres un entier elt et une liste d’entiers tab, et qui renvoie trois listes :

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

Exemples :

🐍 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

###
# mettre votre code icibksl-nlbksl-nl



Solution

###
def recherchepy-undindicespy-undclassement(elt, tab):bksl-nl indpy-undinf = []bksl-nl indpy-undegal = []bksl-nl indpy-undsup = [] bksl-nl for i in range(len(tab)):bksl-nl if tab[i] < elt:bksl-nl indpy-undinf.append(i)bksl-nl elif tab[i] > elt:bksl-nl indpy-undsup.append(i)bksl-nl else:bksl-nl indpy-undegal.append(i)bksl-nl return (indpy-undinf, indpy-undegal, indpy-undsup)bksl-nlbksl-nl



EXERCICE 2⚓

Un professeur 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],
                            'DM1': [14.5, 1],
                            'DS2': [8, 4],
                            'PROJET1': [9, 3],
                            'IE1': [7, 2],
                            'DS3': [8, 4],
                            'DS4':[15, 4]
                        }
                }
L’élĂšve dont le nom est Durand a ainsi obtenu au DS2 la note de 8 avec un coefficient 4.

Le professeur crĂ©e une fonction moyenne qui prend en paramĂštre le nom d’un de ses Ă©lĂšves et renvoie sa moyenne arrondie au dixiĂšme.

Compléter le code du professeur ci-dessous :

RĂ©ponse

Complétez le code ci-dessous

###
def moyenne(nom, dicopy-undresult):bksl-nl if nom in ...:bksl-nl notes = dicopy-undresult[nom]bksl-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 coefficientbksl-nl totalpy-undcoefficients = ... + coefficientbksl-nl return round( ... / totalpy-undcoefficients, 1 )bksl-nl else:bksl-nl return -1bksl-nlbksl-nl



Solution

###
def moyenne(nom, dicopy-undresult):bksl-nl if nom in dicopy-undresult:bksl-nl notes = dicopy-undresult[nom]bksl-nl totalpy-undpoints = 0.bksl-nl totalpy-undcoefficients = 0bksl-nl for valeurs in notes.values():bksl-nl note, coefficient = valeursbksl-nl totalpy-undpoints = totalpy-undpoints + note py-str coefficientbksl-nl totalpy-undcoefficients = totalpy-undcoefficients + coefficientbksl-nl return round( totalpy-undpoints / totalpy-undcoefficients, 1 )bksl-nl else:bksl-nl return -1bksl-nlbksl-nl