*** LYCEE SECONDAIRE *** ELMEY DJERBA ***
DEVOIR DE SYNTHESE N°1
MATIERE : Algo & Prog * CLASSE : 3ème Informatique 1 & 2 * DATE : 10-12-2024 * DUREE : 2 heures
ENSEIGNANTS : Adel Haj Youssef & Abdelwaheb BEN KHATER
Exercice 1: (3pts=0.75+0.75*2+0.75)
Soit le code Python de la fonction « Quoi » :
def Quoi( k ) :
ch = str( k )
tmp = ""
i=9
while len( ch ) != 0 :
p = [Link]( str( i ) )
if p == -1 :
i=i-1
else :
tmp = tmp + str( i )
ch = ch[ : p ] + ch[ p+1 : ]
return int( tmp )
Questions :
1) Remplir le T.D.O.L de la fonction « Quoi »
Objet T/N
2) Donner la valeur retournée par la fonction « Quoi » pour :
Quoi(195) ………………………………..
Quoi(2486) ………………………………..
3) Déduire le rôle de la fonction « Quoi »
……………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………….
-1-
Exercice 2: (2pts)
Soit M1 et M2 deux matrices de caractères de type MatCa et de taille m * n.
L’intersection entre M1 et M2 forme une troisième matrice d’entiers M3 de type
MatEn tel que :
M3[ i , j ] = 1 si M1[ i , j ] = M2[ i , j ] avec ( 0 <= i < m ) et ( 0 <= j < n )
M3[ i , j ] = 0 si M1[ i , j ] ≠ M2[ i , j ]
Exemple :
"k" "𝐠" "e" "q" "𝐠" "f" 0 𝟏 0
𝟏 0 0
M1[ "𝐛" "u" "s" ] M2["𝐛" "i" "h"] Donc M3 est : M3[ ]
"m" "𝐝" "o" "t" "𝐝" "k" 0 𝟏 0
"x" "z" "𝐫" "a" "u" "𝐫" 0 0 𝟏
Ecrire l’algorithme d’une procédure qui permet de remplir la matrice M3 à partir des
deux matrice M1 et M2.
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
-2-
Exercice 3: (3pts)
Un entier k (k>=10) composé de chiffres distincts est dit :
Croissant si ses chiffres forment une progression croissante
Décroissant si ses chiffres forment une progression décroissante
Ecrire l’algorithme d’une fonction booléenne intitulée « Verif » qui renvoie Vrai si
l’entier k passé en paramètre est croissant ou bien décroissant, elle renvoie Faux
dans le cas contraire.
Exemples : Verif(2478) retourne Vrai Verif(65310) retourne Vrai
Verif(957) retourne Faux
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………………………..
-3-
Problème: (12pts)
Pour aider les élèves d’une école primaire à mieux comprendre le calcul des
expressions arithmétiques on se propose de réaliser une application qui permet de :
Remplir une matrice M1 de taille l * c ( 3 <= l <= 10 et 3 <= c <= 10 ) par des
expressions arithmétiques aléatoires de la forme "𝐀 𝐨𝐩 𝐁" ou A un entiers
aléatoires de l’intervalle [0..99], B un entiers aléatoires de l’intervalle [1..99],
et op un opérateur arithmétique ( + , - , * , / ) choisi au hasard par l’ordinateur.
Ensuite, évaluer les expressions de la matrice M1 et insérer les résultats dans
une matrice de réels M2.
En fin, afficher chaque expression arithmétique de la matrice M1 suivie par
son résultat dans la matrice M2. (Exemple : 15 + 7 = 22.0)
Exemple :
"15 + 7" "33 − 9" "8 + 44" 22.0 24.0 52.0
M1["3 − 14" "24 ∗ 8" "15/5" ] M2[−11.0 192.0 3.0 ]
"9 ∗ 12" "6 + 57" "4 ∗ 9" 108.0 63.0 36.0
On donne un algorithme principal solution au problème, écrire l’algorithme de
chaque module proposé dans cette solution :
algorithme calcul_arithmetique
début
l lecture("Nbr lignes=") #Retourne un entier entre 3 et 10 saisi au clavier
c lecture("Nbr colonnes=")
remplir1(M1,l,c) #Permet de remplir aléatoirement la matrice M1
remplir2(M2,M1,l,c) #Permet de remplir la matrice M2 à partir de la matrice M1
afficher(M1,M2,l,c) #Affiche la liste des expressions sous la forme : « expression = solution »
fin
Type Objet T/N
Mat1 = tableau de l * c de chaînes l, c entier
Mat2 = tableau de l * c de réels M1 Mat1
M2 Mat2
lecture fonction
remplir1, remplir2, afficher procédure
-4-