N.S.I. WorkSpace P-Ev-EP,Première Épreuve Pratique de contrôle des compétences [sujets pour s’entraîner]

Épreuve Pratique de contrôle des compétences [sujets pour s’entraîner]

Categories:

Sujets pour s’entraîner

En cas de difficultés, vous disposer d’un forum d’entraide :
https://sapiensjmh.top/elkarte/index.php?board=10.0
>>> Posez des questions…
>>> Contribuez en apportant des réponses aux questions posées…

Sujet 1

Écrire un programme qui :

  1. demande à l’utilisateur d’entrer un nombre entier ou réel, positif ;
  2. qui contient trois fonctions :
    • l’une qui calcule la circonférence d’un cercle dont le rayon est égal à la valeur saisie,
    • une autre qui calcule l’aire d’un cercle dont le rayon est égal à la valeur saisie,
    • et la dernière le volume d’une sphère dont le rayon est égal à la valeur saisie,
    • chacune de ces trois fonctions renvoyant le résultat du calcul qu’elle effectue (les fonctions n’affichent pas !)
  3. qui affiche les résultats – avec un message adéquat – de ces trois calculs dans la console.

Ressource : formules de calculs

Sujet 2

Écrire un programme qui :

  1. demande à l’utilisateur d’entrer deux nombres entiers ou réels, positifs , le premier correspondant à la longueur d’un côté d’un triangle rectangle et le deuxième à la longueur de son hypoténuse,
  2. qui contient une fonction qui calcule la longueur du troisième côté du triangle et qui renvoie le résultat du calcul qu’elle effectue (une fonction n’affiche pas !)
  3. qui affiche le résultat de ce calcul dans la console.

Sujet 3

Écrire un programme qui :

1 – demande à l’utilisateur d’entrer :

  • un texte – autrement dit une longue chaîne de caractères -,
  • puis un caractère – autrement dit une chaîne d’un seul caractère,
  • et enfin un autre caractère – autrement dit une chaîne d’un seul caractère ;

2 – qui contient une fonction qui cherche le premier caractère dans le texte et le remplace par le second caractère à chaque fois qu’il le trouve – autrement dit qui remplace chaque occurrence du premier caractère dans le texte par le second caractère ; cette fonction renvoie le texte modifié (une fonction n’affiche pas !)

3 – qui affiche le texte modifié dans la console.

Sujet 4

Corrigés

Version 1
"""Module de chiffrement et déchiffrement - NIVEAU : Première"""

# On affecte à la variable 'lettres_minuscules' une chaîne de caractères
# contenant toutes les lettres minuscules abcdefghijklmnopqrstuvwxyz
lettres_minuscules = 'abcdefghijklmnopqrstuvwxyz'

# On affecte à la variable 'lettres_majuscules' une chaîne de caractères
# contenant toutes les lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ
lettres_majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def chiffrement(message, cle):
    """Chiffrement de 'message' avec 'cle'.
    
    Seules les lettres minuscules et majuscules sont chiffrées.
    Les caractères de ponctuation et les espaces sont conservés.
    
    Parameters
    ----------
    message : STR
        message à chiffrer sans lettres accentuées.
    cle : INT
        clé de chiffrement. Nombre entier positif

    Returns
    -------
    message_chiffre : STR
        message chiffré.

    """
    
    # On affecte une chaîne de caractères vide à la variable 'message_chiffre'
    message_chiffre = ""
    
    # On parcourt chacune des lettres du message, les unes après les autres.
    for lettre in message:
        
        # cas où 'lettre' est une lettre majuscule
        if lettre in lettres_majuscules:
            
            # On cherche sa position (index) dans la chaîne 'lettres_majuscules'
            index = 0
            while lettres_majuscules[index] != lettre:
                index += 1
            # On ajoute la valeur de la clé à cet index
            index += cle
            # Si la valeur de 'index' dépasse l'index de 'Z' (25)
            if index > 25:
                index -= 26
            # On ajoute par concaténation à 'message_chiffre' la lettre située
            # à l'index 'index' dans 'lettres_majuscules'
            message_chiffre += lettres_majuscules[index]
        
        # cas où 'lettre' est une lettre minuscule
        elif lettre in lettres_minuscules:
            index = 0
            while lettres_minuscules[index] != lettre:
                index += 1
            index += cle
            if index > 25:
                index -= 26
            message_chiffre += lettres_minuscules[index]
            
        # cas ou 'lettre' est un espace ou un caractère de ponctuation
        else:
            message_chiffre += lettre
            
    return message_chiffre

# Jeu de tests
assert chiffrement("NSI", 5) == "SXN"
assert chiffrement("html", 14) == "vhaz"
assert chiffrement("Bonjour, comment ?", 8) == "Jwvrwcz, kwuumvb ?"
Version 2
"""Module de chiffrement et déchiffrement - NIVEAU : Première"""

def chiffrement(message, cle):
    """Chiffrement de 'message' avec 'cle'.
    
    Seules les lettres minuscules et majuscules sont chiffrées.
    Les caractères de ponctuation et les espaces sont conservés.
    
    Parameters
    ----------
    message : STR
        message à chiffrer sans lettres accentuées.
    cle : INT
        clé de chiffrement. Nombre entier positif

    Returns
    -------
    message_chiffre : STR
        message chiffré.

    """
    # On affecte une chaîne de caractères vide à la variable 'message_chiffre'
    message_chiffre = ""
    
    # On parcourt chacune des lettres du message, les unes après les autres.
    for lettre in message:
        
        # cas où 'lettre' est une lettre majuscule
        if ord(lettre) > 64 and ord(lettre) < 91:
            code = ord(lettre) + cle
            if code > 90:
                code -= 26
            message_chiffre += chr(code)
            
        # cas où 'lettre' est une lettre minuscule
        elif ord(lettre) > 96 and ord(lettre) < 123:
            code = ord(lettre) + cle
            if code > 122:
                code -= 26
            message_chiffre += chr(code)
            
        
        # cas ou 'lettre' est un espace ou un caractère de ponctuation
        else:
            message_chiffre += lettre
        
    return message_chiffre

# Jeu de tests
assert chiffrement("NSI", 5) == "SXN"
assert chiffrement("html", 14) == "vhaz"
assert chiffrement("Bonjour, comment ?", 8) == "Jwvrwcz, kwuumvb ?"
Version 3 - Niveau Expert
"""Module de chiffrement et déchiffrement - NIVEAU : expert"""

from string import *
# Import des constantes ascii_lowercase et ascii_uppercase
# de la bibliothèque String

def chiffrement(message, cle):
    """Chiffrement de 'message' avec 'cle'.
    
    Seules les lettres minuscules et majuscules sont chiffrées.
    Les caractères de ponctuation et les espaces sont conservés.
    
    Parameters
    ----------
    message : STR
        message à chiffrer sans lettres accentuées.
    cle : INT
        clé de chiffrement. Nombre entier positif

    Returns
    -------
    message_chiffre : STR
        message chiffré.

    """
    # On affecte à la variable 'lettres_minuscules' une chaîne de caractères
    # conteant toutes les lettres minuscules abcdefghijklmnopqrstuvwxyz
    lettres_minuscules = ascii_lowercase
    
    # On affecte à la variable 'lettres_minuscules' une chaîne de caractères
    # contenant toutes les lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ
    lettres_majuscules = ascii_uppercase
    
    # On affecte une chaîne de caractères vide à la variable 'message_chiffre'
    message_chiffre = ""
    
    # On parcourt chacune des lettres du message, les unes après les autres.
    for lettre in message:
        
        # cas où 'lettre' est une lettre majuscule
        if lettre.isupper():
            
            # On cherche sa position (index) dans la chaîne 'lettres_majuscules'
            index = lettres_majuscules.index(lettre)
            # On ajoute la valeur de la clé à cet index
            index += cle
            # Si la valeur de 'index' dépasse l'index de 'Z' (25)
            if index > 25:
                index -= 26
            # On ajoute par concaténation à 'message_chiffre' la lettre située
            # à l'index 'index' dans 'lettres_majuscules'
            message_chiffre += lettres_majuscules[index]
        
        # cas où 'lettre' est une lettre minuscule
        elif lettre.islower():
            index = lettres_minuscules.index(lettre)
            index += cle
            if index > 25:
                index -= 26
            message_chiffre += lettres_minuscules[index]
            
        # cas ou 'lettre' est un espace ou un caractère de ponctuation
        else:
            message_chiffre += lettre
            
    return message_chiffre

# Jeu de tests
assert chiffrement("NSI", 5) == "SXN"
assert chiffrement("html", 14) == "vhaz"
assert chiffrement("Bonjour, comment ?", 8) == "Jwvrwcz, kwuumvb ?"