Vous êtes sur la page 1sur 3

Corrigé Informatique Sections Scientifiques-Session principale Baccalauréat

2020
CORRIGE
Exercice 1 : (5 points)
N° Situation dans un jeu Traitements
Le jeu de chance pile ou face: il s’agit de jeter une
pièce de monnaie.Pile symbolisée par 1 et face
symbolisée par 0.
1 P ← Alea( 2 ) {1 pt}
Il s’agit de simuler le résultat de la lancée d’une
pièce de monnaie. Le résultat est affecté à une
variable P.
Le jeu de dé: un dé contient 6 facettes numérotées
de 1 à 6.
2 D ← 1+Alea(6) {1 pt}
Il s’agit de simuler le résultat de la lancée d’un
dé. Le résultat est affecté à une variable D.
Le jeu de Vache-Taureau: il s’agit de proposer un
entier positif de 4 chiffres à deviner par
3 l’utilisateur. VT ← 1000 + Alea(9000) {1 pt}
Il s’agit de simuler la génération de l’entier VT à
deviner.
Le jeu de Scrabble: l’ordinateur effectue un tirage {2pts:1 pt boucle + 1pt instruction}
de 7 lettres majuscules. Pour i de 1 à 7 Faire
Rappel: Nous disposons de 26 lettres de "A" à "Z"
4
avec ASCII("A")=65 T[i] ← CHR(65+Alea(26))
Il s’agit de simuler le tirage de 7 lettres
majuscules à placer dans un tableau T. Fin Pour
Exercice 2 : (5 points)
1) Nous proposons le tableau T suivant:
T -2 19 -8 -14 4 5 -4 3 -8 9
1 2 3 4 5 6 7 8 9 10

a. Remplir le tableau ci-dessous par la valeur de la variable H obtenue suite à l’exécution de


l’instruction d’appel de la fonction INCONNUE.
{0,5 pt x 3}
N° Instruction d’appel Valeur de la variable H
1 H ← INCONNUE(T,3,8) -14
2 H ← INCONNUE(T,6,2) 6
3 H ← INCONNUE(T,4,4) -14
b. Déduire le rôle de la fonction INCONNUE. {1,5 pts=0.75*2}
La fonction INCONNUE permet de calculer la somme des éléments d’une séquence du tableau T se
trouvant entre deux position p1 et p2.
2) Algorithme de la procédure affiche {2 pts}
0) DEF PROC AFFICHE_EQUILIBRE(T:TAB ; n:ENTIER)
1) Point_Eq← Faux 0,25
Pour k de 2 à n-1 faire 0,25
Si FN INCONNUE(T,1,k-1)=FN INCONNUE(T,k+1,n) Alors 0,5
Ecrire(k,"est un point d’équilibre") 0,25
Point_Eq←Vrai 0,25
Fin Si
Fin Pour
2) Si NON(Point_Eq) Alors 0,25
Ecrire("Aucun point d’équilibre") 0,25
Fin Si
3) Fin AFFICHE_EQUILIBRE
Page 1 /3
Problème (10 points) :
1) Analyse du programme principal :
Nom: Parcours_Robot
Résultat=PROC Parcours(NL,NC,L,C,S)
(S)=PROC Saisie_Seq(S)
(L,C)=PROC Saisie_Pos(L,C,NL,NC)
(NL,NC)=PROC Saisie_LigCol(NL,NC)
Fin Parcours_Robot
Tableau de déclaration des objets globaux
Objet Type/Nature Rôle
NL,NC Entier Déterminent respectivement le nombre de lignes et le nombre de colonnes de la grille
L,C Entier Déterminent respectivement la ligne et la colonne où se trouve le robot
S Chaîne Détermine la séquence des pas que doit effectuer le robot
Saisie_LigCol Procédure Saisir le nombre de lignes et le nombre de colonnes de la grille
Saisie_Pos Procédure Saisir les coordonnées de la position initiale du robot
Saisie_Seq Procédure Saisir la séquence des pas à effectuer par le robot
Parcours Procédure Simuler l’exécution du parcours par le robot et afficher le message adéquat
2) Les algorithmes des modules:
0) DEF PROC Saisie_LigCol(Var NL,NC:Entier) 0) DEF PROC Saisie_Pos(Var L,C:Entier; NL,NC:entier)
1) Répéter 1) Répéter
Ecrire("Donner le nombre de lignes et le nombre de colonnes") Ecrire("Donner la position initiale du robot")
Lire(NL,NC) Lire(L,C)
Jusqu’a (NL dans [1..100]) ET (NC dans [1..100]) Jusqu’a (L dans [1..NL]) ET (C dans [1..NC])
2) Fin Saisie_LigCol 2) Fin Saisie_Pos
*****
0) DEF PROC Saisie_Seq(Var S:chaine) 0) DEF FN TEST( S:chaine):Booléen
1) Répéter 1) i ← 0 Répéter
Ecrire("Donner la séquence des pas à exécuter par le robot") i←i+1
Lire(S) Jusqu’a (NON(S[i] dans ["H","B","D","G"]) ou (i=Long(S))
Jusqu’a (FN Test(S)) et (S≠"") 2) TEST←S[i] dans ["H","B","D","G"]
2) Fin Saisie_Pos 3) Fin TEST
Tableau de déclaration des objets locaux Tableau de déclaration des objets locaux
Objet Type/Nature Rôle Objet Type/Nature Rôle
Vérifier si la séquence des
Test Fonction Compteur pour parcourir la
pas est valide i Entier
chaîne S
NB:ne pas sanctionner S≠""
*****
0)DEF PROC Parcours(NL,NC,L,C:entier; S:chaine)
1) LS←Long(S)
K←0 Tableau de déclaration des objets locaux
Tantque (L dans [1..NL]) et (C dans[1..NC]) et (K<LS) Faire Objet Type/Nature Rôle
K←K+1 Longueur de la
Selon S[K] faire LS Entier
chaîne S
"H":L←L-1 Compteur pour
"B":L←L+1 K Entier parcourir la chaine
"D":C←C+1 S
"G":C←C-1
FinSelon
FinTantque
2)Si NON((L dans [1..NL]) et (C dans[1..NC])) Alors
Ecrire("Attention cas de dépassement causé par le pas n°",K)
Sinon
Ecrire("Je suis à la position (",L,",",C,")")
FinSi
3)Fin Parcours
Page 2 /3
Barème détaillé:

Programme principal : 1.5 point=


- Modularité 0.5
- Cohérence (appels + conformité des paramètres)) 1=(0.5+0.5)
Saisie des dimensions de la grille : 1 point=
- Lecture de NL et NC 0.25+0.25
- Contrôle des contraintes sur NL et sur NC 0.25+0.25
Saisie de la position initiale du robot: 1 point=
- Lecture de L et C 0.25+0.25
- Contrôle des contraintes sur L et C 0.25+0.25
Saisie de la séquence des pas S : 1.25 point=
- Lecture de S 0.25
- Contrôle de la contrainte sur S 1
Simulation de l’exécution du parcours par le robot et affichage du message 3.75 points=
final :
- Parcours de la chaîne 1 point
- Mise à jour de la ligne L et de la colonne C suivant les différents types de 1.25 point
pas
- Affichage du message adéquat suivant la raison de l’arrêt du robot 1.5 point
1.5 point
TDOG 1 point
TDOL 0.5 point

-0.25 par type erreur.

Page 3 /3

Vous aimerez peut-être aussi