CCmachine

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Algorithmique et Programmation 1

CC machine 1 – 27/10/2022

Algorithmique et Programmation 1

Contrôle machine 1
27 octobre 2022 – Durée 1h

• Aucun document n’est autorisé


• Aucun matériel électronique personnel n’est autorisé - Les téléphones sont éteints
• L’utilisation de brouillons fournis est autorisé, ils seront rendus en fin d’épreuve
• Ce sujet comporte 4 questions, indépendantes les unes de autres.
• Il est nécessaire de donner la chaı̂ne de documentation, comprenant la signature, de toute
fonction écrite
• Prenez le temps de lire la totalité de l’énoncé avant d’aborder l’épreuve
• A l’ouverture de votre session vous trouverez dans votre répertoire d’examen l’énoncé de
l’épreuve et 4 fichiers ccmX.py. Vous devrez modifier ces fichiers pour répondre à chaque
question correspondante. Aucun autre fichier ne doit être créé.
• La session d’examen se fermera automatiquement à la fin du temps imparti. Sauvegardez
régulièrement vos modifications.
Algorithmique et Programmation 1
CC machine 1 – 27/10/2022

Les entrées sorties des exécutions de vos programmes doivent respecter celles des exemples
d’exécution donnés dans l’énoncé.

1. Génération d’une liste de chaı̂nes de caractères : définir, dans le fichier ccmq1.py, un


programme qui demande à l’utilisateur de saisir des chaı̂nes de caractères et qui stocke dans
une liste les chaı̂nes de caractères comprenant au moins 3 caractères. Par conséquent, si une
chaı̂ne de caractères avec moins de 3 caractères est saisie alors celle-ci ne sera pas ajouté à la
liste. La saisie s’arrête lorsque l’utilisateur tape le mot “fin”.
Voici un exemple d’exécution de ce programme :
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. chat
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. chien
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. or
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. girafe
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie.
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. moineau
Tapez une chaine de caractere de longueur >= 3 ; fin pour quitter la saisie. fin
La liste créée est : [’chat’, ’chien’, ’girafe’, ’moineau’]

2. Compréhension de code : Voici une fonction mystere, implémentée dans le fichier ccmq2.py.
A l’aide de tests, déterminer sa signature et compléter la chaı̂ne de documentation. Vous pour-
rez pour cela utiliser la chaı̂ne de caractère donnée dans le fichier.
def mystere(s):
"""A compléter"""
l = []
m = ""
alpha1 = "abcdefghijklmnopqrstuvwxyz"
alpha2 = alpha1.upper()
for c in s :
if c == " ":
if len(m) >= 3 :
l.append(m)
m = ""
elif c in alpha1 or c in alpha2:
m = m + c
if len(m) >= 3 :
l.append(m)
return l
Algorithmique et Programmation 1
CC machine 1 – 27/10/2022

3. Extraction et décompte de caractères : dans le fichier ccmq3.py, écrire un programme


qui, à partir d’une liste lis de chaı̂nes de caractères :
• créé une liste comportant tous les caractères présents dans toutes les chaı̂nes de lis,
sans doublons (mais en faisant la distinction entre majuscule et minuscule)
• compte le nombre de consonnes et de voyelles de chaque chaı̂ne de lis
• effectue l’affichage comme sur l’exemple ci-dessous
Voici un exemple d’exécution de ce programme :
La liste en entrée est : [’Chat’, ’Ressasser’, ’Artiste’, ’Kayak’]
Les caractères apparaissant dans cette liste sont :
[’C’, ’h’, ’a’, ’t’, ’R’, ’e’, ’s’, ’r’, ’A’, ’i’, ’K’, ’y’, ’k’]
Chat est composé de 1 voyelles et 3 consonnes
Ressasser est composé de 3 voyelles et 6 consonnes
Artiste est composé de 3 voyelles et 4 consonnes
Kayak est composé de 3 voyelles et 2 consonnes

4. Liste de tuples : Voici un algorithme qui, à partir d’une liste l de chaı̂nes de caractères,
retourne une liste de tuples (m, nb_c) qui associe à chaque mot le nombre de caractères
distincts qui le compose. Écrire, dans le fichier ccmq4.py, une fonction en Python implé-
mentant cet algorithme.
Entrées : Une liste l de chaı̂nes de caractères de longueur n
Sorties : Une liste liste_occ contenant les tuples (m, nb_c), associant le nombre de
caractères distincts à chaque mot
1 Créer une liste vide liste_occ
2 pour chaque m dans l faire
3 ml ← le mot m tout en minuscules
4 Créer un mot vide mb
5 pour chaque c dans ml faire
6 si c n’appartient pas à mb alors mb ← mb + c
7 Ajouter (m, longueur de mb) dans la liste liste_occ
8 retourner liste_occ
Voici un exemple d’exécution de cette fonction :
liste initiale : [’Chat’, ’Ressasser’, ’Artiste’, ’Kayak’]
liste tuples : [(’Chat’, 4), (’Ressasser’, 4), (’Artiste’, 6), (’Kayak’, 3)]

Vous aimerez peut-être aussi