0% ont trouvé ce document utile (0 vote)
7 vues3 pages

CC Machine 1 - Algorithmique 2022

Transféré par

alibenmak747
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
7 vues3 pages

CC Machine 1 - Algorithmique 2022

Transféré par

alibenmak747
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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 [Link]. 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 d’entiers composée de multiples de 3 : définir, dans le fichier


[Link], un programme qui demande à l’utilisateur deux nombres, nb_inf et nb_sup,
tels que 1 ≤ nb_inf < nb_sup ≤ 100. Si ces contraintes ne sont pas respectées, vous devrez
répéter la demande jusqu’à obtenir un résultat satisfaisant. Générez ensuite une liste contenant
tous les multiples de 3 compris entre nb_inf et nb_sup, puis affichez la.
Voici un exemple d’exécution de ce programme :
Donnez la borne inférieure comprise entre 1 et 99 : 0
Donnez la borne inférieure comprise entre 1 et 99 : 150
Donnez la borne inférieure comprise entre 1 et 99 : 18
Donnez la borne supérieure comprise entre 19 et 100: 15
Donnez la borne supérieure comprise entre 19 et 100: 150
Donnez la borne supérieure comprise entre 19 et 100: 42
La liste créée est : [18, 21, 24, 27, 30, 33, 36, 39, 42]

2. Compréhension de code : Voici une fonction mystere, implémentée dans le fichier [Link].
A l’aide de tests, déterminer sa signature et compléter la chaı̂ne de documentation. Vous pour-
rez pour cela utiliser les listes l1 et l2 fournies dans le fichier.
def mystere(l):
"""A compléter"""
myst = True
i = 0
while i < len(l) and myst :
if l[i] in l[i+1:] :
myst = False
i = i +1
return myst

3. Suppression de doublons : dans le fichier [Link], écrire un programme qui, à partir


d’une liste lis d’entiers :
• créé une liste comportant tous les éléments de lis sans doublons
• compte le nombre de doublons supprimés
• créé une liste comportant les indices des doublons supprimés
• effectue l’affichage comme sur l’exemple ci-dessous
Voici un exemple d’exécution de ce programme :
la liste en entrée est : [12, 12, 3, 18, 4, 5, 3, 16, 14, 15, 12]
la liste sans doublons est : [12, 3, 18, 4, 5, 16, 14, 15]
3 doublons ont été supprimés
12 était en position 1
3 était en position 6
12 était en position 10
Algorithmique et Programmation 1
CC machine 1 – 27/10/2022

4. Liste de tuples : Voici un algorithme qui, à partir d’une liste l, retourne sans répétition
les tuples (e, occ_e) formée des éléments e de l et du nombre de leur occurrence occ_e.
Écrire, dans le fichier [Link], une fonction en Python implémentant cet algorithme.
Attention, cet algorithme exactement doit être implémenté, sans utiliser la méthode count
donc.
Entrées : Une liste l de longueur n
Sorties : Une liste liste_occ contenant les tuples (e, occ_e)
1 Créer une liste vide liste_occ
2 i←0
3 tant que i < n faire
4 si l[i] n’appartient pas à la sous-liste de l allant de l’indice i+1 jusqu’à la fin de l
alors
5 occ_e ← 1
6 pour j ∈ [0, i − 1] faire
7 si l[i] = l[j] alors occ_e ← occ_e + 1
8 Ajouter (l[i], occ_e) dans la liste liste_occ
9 i ← i+1
10 retourner liste_occ
Voici un exemple d’exécution de ce programme :
l1 : [12, 12, 3, 18, 4, 5, 3, 16, 14, 15, 12]
l1 tuples : [(18, 1), (4, 1), (5, 1), (3, 2), (16, 1), (14, 1), (15, 1), (12, 3)]
l2 : [11, 19, 7, 18, 14, 20, 17, 12]
l2 tuples : [(11, 1), (19, 1), (7, 1), (18, 1), (14, 1), (20, 1), (17, 1), (12, 1)]
l3 : [11, 19, 7, 18, 14, 20, 19, 12, 17, 12]
l3 tuples : [(11, 1), (7, 1), (18, 1), (14, 1), (20, 1), (19, 2), (17, 1), (12, 2)]

Vous aimerez peut-être aussi