N.S.I. WorkSpace P-Ev-EP,Première Epreuve pratique d’évaluation des compétences en programmation

Epreuve pratique d’évaluation des compétences en programmation

Categories:

Sujet

Fichier « réponse » à compléter (remplacer les @@@ par ce qui convient)

"""Lycée Saint Michel - Première - Spécialité NSI | Epreuve Pratique."""

""" ===========================================================================
NOM :
Prénom :
Classe : 1re
============================================================================"""

# EXERCICE 2
def selection_mots(mots, lon, let):

    # Cas où 'let' est une lettre minuscule
    if ord(let) > 96 and ord(let) < 123:
        # On la convertit en lettre majuscule
        let = chr(@@@ - 32)

    # Cas où 'let' n'est pas une lettre majuscule
    if ord(let) < 65 @@@ ord(let) > 90 :
        # On renvoie un message d'erreur
        return "L'argument : " + let + " est non correct."

    n1 = 0  # Nombre de mots ayant la longueur 'lon'
    n2 = 0  # Nombre de mots contenant la lettre 'let'
    lm = []  # liste des mots de longueur 'lon' et qui contiennent la lettre 'let'
    msg = ""  # message qui sera renvoyé.

    for mot in @@@:

        if len(mot) == lon:
            @@@ += 1
        if let in mot:
            @@@ += 1
        if len(mot) == lon and let in mot:
            lm.@@@(mot)

    msg += "Il y a " + @@@ + " mots de longueur " + @@@ + "\n"
    msg += "Il y a " + @@@ + " mots qui contiennent un " + @@@ + "\n"
    msg += "Les mots de longueur "  + @@@
    msg += " et qui contiennent la lettre " + @@@ + " sont les suivants : \n"
    for mot in @@@:
        msg @@@ mot + "\n"

    return msg

mots = ["NSI", "UAL", "RAM", "PC", "OS", "FOR", "WHILE", "IF", "LIST", "FLOAT",
        "DICT", "TRUE", "FALSE", "NONE", "AND", "OR", "NOT", "IN", "TUPLE",
        "STR", "DEF", "USB", "HTTP", "CSS", "JS", "HTML", "IS", "RETURN"]

print(selection_mots(mots, 3, "S"))
print(selection_mots(mots, 3, "$"))

Corrigé de l’exercice 1 (Réponses possibles)

Version 1

def prix_solde(prix_normal, couleur):

    taux_reduction = {"jaune": 5, "bleu": 10, "vert": 15, "orange": 20,
                      "rouge": 25, "rose": 30, "noir": 50}

    if couleur not in taux_reduction:
        return 0, prix_normal

    montant_reduction = prix_normal * (taux_reduction[couleur] / 100)
    prix_a_payer = prix_normal - montant_reduction
    return montant_reduction, prix_a_payer

version 2

def prix_solde(prix_normal, couleur):

    if couleur == "jaune":
        taux_reduction = 5 / 100
    elif couleur == "bleu":
        taux_reduction = 10 / 100
    elif couleur == "vert":
        taux_reduction = 15 / 100
    elif couleur == "orange":
        taux_reduction = 20 / 100
    elif couleur == "rouge":
        taux_reduction = 25 / 100
    elif couleur == "rose":
        taux_reduction = 30 / 100
    elif couleur == "noir":
        taux_reduction = 50 / 100
    else:
        return 0, prix_normal

    montant_reduction = prix_normal * taux_reduction
    prix_a_payer = prix_normal - montant_reduction
    return montant_reduction, prix_a_payer

Corrigé de l’exercice 2

def selection_mots(mots, lon, let):

    # Cas où 'let' est une lettre minuscule
    if ord(let) > 96 and ord(let) < 123:
        # On la convertit en lettre majuscule
        let = chr(ord(let) - 32)

    # Cas où 'let' n'est pas une lettre majuscule
    if ord(let) < 65 or ord(let) > 90 :
        # On renvoie un message d'erreur
        return "L'argument : " + let + " est non correct."

    n1 = 0  # Nombre de mots ayant la longueur 'lon'
    n2 = 0  # Nombre de mots contenant la lettre 'let'
    lm = []  # liste des mots de longueur 'lon' et qui contiennent la lettre 'let'
    msg = ""  # message qui sera renvoyé.

    for mot in mots:

        if len(mot) == lon:
            n1 += 1
        if let in mot:
            n2 += 1
        if len(mot) == lon and let in mot:
            lm.append(mot)

    msg += "Il y a " + str(n1) + " mots de longueur " + str(lon) + "\n"
    msg += "Il y a " + str(n2) + " mots qui contiennent un " + let + "\n"
    msg += "Les mots de longueur "  + str(lon)
    msg += " et qui contiennent la lettre " + let + " sont les suivants : \n"
    for mot in lm:
        msg += mot + "\n"

    return msg

mots = ["NSI", "UAL", "RAM", "PC", "OS", "FOR", "WHILE", "IF", "LIST", "FLOAT",
        "DICT", "TRUE", "FALSE", "NONE", "AND", "OR", "NOT", "IN", "TUPLE",
        "STR", "DEF", "USB", "HTTP", "CSS", "JS", "HTML", "IS", "RETURN"]

print(selection_mots(mots, 3, "S"))
print(selection_mots(mots, 3, "$"))
Article sous licence << Cliquez pour plus d’informations <<