Algorithmique et programmation
Devoir 1
Exercice 1: (3,75pts)
Valider chacune des propositions ci-dessous en mettant dans la case correspondante la lettre (V) si
elle est correcte ou la lettre (F) dans le cas contraire
1) L’instruction qui permet d’affecter à une variable X, une valeur aléatoire de l’intervalle [2,10]
est :
X← 2+Aléa(0,10) X← 2+Aléa(0,8) X← Aléa(2,10)
2) une structure de données tableau peut:
Contenir des éléments de types Etre déclarée avec une taille Avoir des indices de cases de
différents maximale variable type caractère
3) L’instruction C← SousChaine(‘Bonjour’,1,2) :
Permet d’affecter le caractère La variable C doit etre déclaré La variable C doit etre déclaré
‘o’ à la variable C de type caractère de type chaine
4) La déclaration d’un tableau de n réels en python est :
from numpy import array from numpy import array from numpy import *
T=array([float()*n]) T=array([float()]*n) T=array([float()]*n)
5) Pour l’instruction X← chr(ord(‘A’)+6) :
X contient la lettre ‘F’ X contient la lettre ‘B’ X contient la lettre ‘G’
Exercice 2: (3,25pts=0,25*4+0,5+0,5+0,25+0,5+0,5+0,25)
Soient les algorithme ci-dessous correspondant à un programme principale Exercice et à une
fonction Inconnue appelée par celui-ci :
Algorithme Exercice Fonction Inconnue(C :,,,,,,,,,,,,,,,,,,,,,,,,,,) :,,,,,,,,,,,,,,,,,,,,,,,,
Début Début
Lire(A) Répéter
Si Inconnue(A) alors E ← C[0]
Écrire(A,’Vérifie la propriété’) C← Effacer(C,0,1)
Sinon Jusqu’à (C=’’ ou Non(0≤valeur(E)≤9))
Écrire(A,’Ne vérifie pas la propriété’) Retourner(C=’’)
Fin si Fin
Fin
1) A partir des algorithmes données ci-dessus, remplir la 2éme colonne du tableau suivant par un
exemple de chaque élément cité dans la 1ère colonne :
Élément Exemple
Expression booléenne ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Fonction prédéfinie ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Paramètre formel ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Paramètre effectif ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1
2) Compléter l’entête de la fonction Inconnue par les types appropriés
3) Faire le tableau de déclaration des objets locaux de la fonction Inconnue
4) Quels sont les variables qui ne sont pas visibles pour le programme principal parmi A,C et E ?
5) Donner le résultat affiché par le programme Exercice pour chacune des valeurs de la variable A
suivante : A=’523’ / A=’-523’
6) En déduire le rôle de la fonction Inconnue
7) Indiquez la fonction prédéfinie qui correspond à la fonction inconnue
Exercice 3: (2,75pts)
Écrire l’algorithme d’une fonction nommée plus_ancienne qui prend en paramètres deux dates d1
et d2 sous la forme ‘JJ/MM/AAAA’ et retourne la date la plus ancienne.
Exemple :
• Si d1=’18/05/2024’ et d2=’18/05/2022’ alors plus_ancienne(d1,d2) retourne
d2(18/05/2022)
• Si d1=’17/05/2024’ et d2=’18/05/2024’ alors plus_ancienne(d1,d2) retourne
d1(17/05/2024)
Problème : (10pts)
Dans le but de gérer les discussions dans un groupe fermé créé au sein d’un réseau social, on se
propose de réaliser une application informatique permettant d’afficher à l’administrateur du
groupe :
• La liste des adhérents qui envoyé un même commentaire donné
• La liste des adhérents inactifs dans le groupe, sachant qu’un adhérant est qualifié inactif s’il
n’a envoyé aucun commentaire
Pour ce faire, on se propose de :
• Remplir un tableau A par les noms d’utilisateurs des Na adhérents du groupe avec
5<Na≤50, sachant qu’un nom d’utilisateur est formé par une suite d’au minimum trois
caractères commençant obligatoirement par une lettre majuscule
• Remplir un tableau M par Nm commentaires émis par les adhérents de ce groupe avec
5<Nm≤100 en respectant le format général suivant : NumE#commentaire, où :
- NumE est une donné représentant l’indice de l ‘émetteur du commentaire dans le
tableau A
- commentaire représente le texte envoyé par cet émetteur
• Afficher :
- Le nom d’utilisateur de chaque adhérent qui a envoyé un commentaire donné
- La liste des adhérents inactifs
Exemple : Pour Na=5, Nm=7 et les tableau A et M suivants :
A
Olfa Hichem_2018 Mohamed Amir@ Salah 20
M
3#Help me 4#Help 1#Mes salutations 3#cours info 3#Algo 1#OK 3#Help
Si le commentaire saisi est ‘Help’ alors le programme devra afficher les deux résultats suivants :
• Le commentaire Help est envoyé par : Amir@, Mohamed
• La liste des adhérants inactifs est : Hichem_2018 , Salah 20
Travail demandé :
• Analyser le problème en le décomposant en modules
• Analyser chacun des modules envisagés