Correction Session Contrôle
Correction Session Contrôle
Correction Session Contrôle
NB :
-0.25 par type d’erreur et l’erreur ne sera pénalisée qu’une seule fois
On acceptera toute solution équivalente
V 3
F 4
F 5
2- Dans la version n°1, quelle(s) est (sont) la(les) valeur(s) de la variable X qui permet(tent) de
saisir exactement 10 chiffres d’affaires (CA)?
V -6
F
-4
F 6
F 10
3- Dans la version n°2, que contiendra la variable SOMME à la fin de l’exécution de cet
algorithme si l’utilisateur saisit les valeurs 0, 10, 20 puis 30 ?
F 0
F 30
F 40
V 60
NB : On acceptera aussi Vrai / Faux, Oui / Non et O / N.
Page n°1 / 9
Exercice n°2 : (3,5 points)
On n’acceptera pas une analyse à la place de l’algorithme.
Solution récursive
0/ DEFFN Calc_Suite (n , m: entier) : réel (0.5 pt)
1/ Si n = 0 Alors Calc_Suite 1 + 1/m (0.5 pt+0.5pt)
Sinon Calc_Suite 1+ 1/ FN Calc_Suite(n-1,m) (0.5 pt+0.5pt)
Finsi
2/ FIN Calc_Suite
2. L’ordre de récurrence de la fonction est égal à 1 car le terme Un est défini à partir du terme Un-1.
(0.5pt + 0.5pt)
NB : On acceptera les réponses suivantes :
- car le terme Un est défini à partir du terme précédent.
- car le terme Un est défini à partir d’un seul terme.
Page n°2 / 9
DEFFN Sym (Mat : matrice ; lig, n : entier) : Booléen
Résultat = Sym valid
Valid = [i 1, valid (Mat[lig,i]=Mat[lig,n])] (0.5 pt)
Tant que (i<=n Div 2) Et valid Faire (0.25pt)
i i+1 (0.25pt)
valid (Mat[lig,i]=Mat[lig,n-i+1]) (0.25pt)
FinTant que
Fin Sym
TDO Locaux
Objet Type/Nature
i Entier
valid Booléen/logique
Page n°3 / 9
Analyse de la procédure Remplir
DEFPROC Remplir (Var TD : Texte ; Var M : Matrice ; Lig, Long_Max : Octet)
Résultat = M
M = [ L 0, Ouvrir (TD)]
Tant que (Non Fin_fichier(TD)) Faire
LL+1
Lire (TD, ph)
Pour c De 1 à Long_Max Faire
Si (c ≤ Long (ph) Alors M[L, c] Ord(ph[c])
Sinon M[L,c] Ord(" ")
FinSi
FinPour
FinTant que
Fin Remplir
Tableau de déclaration des objets locaux
Objet Type/Nat Rôle
L Octet Compteur pour les lignes
c Octet Compteur pour les colonnes
ph Chaîne Variable contenant chaque ligne lue du fichier
Page n°4 / 9
Tableau de déclaration des objets locaux
Objet Type/Nature Rôle
L Octet Compteur pour les lignes
c Octet Compteur pour les colonnes
Conv10_8 Fonction Fonction qui retourne la conversion d’entier de la base 10 vers la base 8
NB :
- Le candidat sera évalué en fonction de ses capacités à traduire une analyse en algorithme,
donc les algorithmes sans analyse ne seront pas évalués
- La colonne « Rôle » n’est pas évaluée.
Page n°6 / 9
1) Ajouter (TR)
Pour L De 1 à lig Faire
Ph ""
Pour c De 1 à col Faire
Convch (MC[L,c], ch)
Ph ph + ch
Finpour
Ecrire_nl (TR, ph)
Finpour
2) Fin Conv_nbr_txt
Barème de la Partie II
Action Points
Analyse Algorithme
Programme principal (Décomposition + cohérence) 0.5+0.5 0.5
TDNT 0.25
TDOG + TDOL 0.5
Transfert du fichier « TxtInit » vers la matrice MC 1.75 = 0.75
- Ouverture du fichier + Parcours du fichier 0.25
- Avancement dans le fichier + Parcours horizontal de MC 0.50
- Parcours vertical de MC 0.50
- Rangement du code Ascii d’un caractère de « TxtInit » dans MC 0.25
- Ajout du code Ascii des espaces 0.25
Détermination de la ligne la plus longue 0.75 0.25
Détermination du nombre de lignes dans « TxtInit » 0.75 0.5
Conversion de la base 10 vers la base 8 1 0.5
Transfert de la matrice MC vers le fichier « TxtCrypt » 1 0.5
Page n°8 / 9
Page n°9 / 9