Bac 2019 Info SC Corrigé
Bac 2019 Info SC Corrigé
Bac 2019 Info SC Corrigé
tn © 14/03/2020
Corrigé Informatique Sections Scientifiques-Session principale Baccalauréat 2019
CORRIGE
Exercice N°1 : (4 points=0.25*16)
1) a)
Objet Type/nature Objet Type/nature Objet Type/nature Objet Type/nature
C1 Chaîne C1 Caractère C1 Chaîne C1 Caractère
C2 Chaîne C2 Caractère C2 Caractère C2 Chaîne
C3 Entier C3 Entier C3 Réel C3 Entier
F F F V
b)
F Ecrire ("Le nombre de caractères majuscules de ",C1," et ", C2," est : ", C3)
V Ecrire ("Le nombre d’occurrence de ",C1," dans ", C2," est : ", C3)
F Ecrire ("Le nombre de chiffres dans ",C2 ," est : ", C3)
F Ecrire ("Le nombre de caractères communs entre ",C1," et ", C2," est : ", C3)
2) a) La séquence algorithmique qui permet de déterminer le terme Un avec n ≥ 0 est :
T[1] 1 U0 1 Un 1 U0 1
Pour i de 2 à n+1 faire Pour i de 1 à n faire Pour i de 1 à n faire Pour i de 1 à n faire
T[i] 1+ 1/T[i-1] Un 1+ 1/U0 Un 1+ 1/Un Un 1+ 1/U0
Fin pour Fin pour Fin pour U0 Un
Un T[n+1] Fin pour
Un U0
V F V V
b) L’entête de la fonction qui permet de déterminer le terme Un avec n≥0 est :
DEF FN Suite (n :Réel) : Réel F DEF FN Suite (n :Entier) : Entier F
Page 1 /3
2) Les algorithmes des modules :
a) Algorithme de la procédure Remplir :
0) DEF PROC Remplir (Var id, D :Tab ;Var n :entier)
1) Répéter
Ecrire ("Donner le nombre de cartes :"), Lire(n)
Jusqu’à (n dans [3..50])
2) Pour i de 1 à n faire
Répéter
Ecrire ("Donner l’identificateur de la carte n° ",i," :"), Lire(Id[i])
Jusqu’à (Long(Id[i])=8) et (FN Verifnum(Id[i]))
Ecrire("Donner la date en jour et en mois de la carte n°",i," : ")
Répéter
TDOL
Ecrire("Donner J :"), Lire(j)
Nom Type/Nature Rôle
Jusqu’à (j dans [1..31])
Répéter i Entier Compteur
Ecrire("Donner M :"), Lire(m) m Entier Contient le mois
Jusqu’à (m dans [1..12]) j Entier Contient le jour
Convch(j,jch) Résultat de la conversion du jour en
jch Chaîne
Convch(m,mch) chaîne
D[i]jch+"/"+mch Résultat de la conversion du mois
mch Chaîne
FinPour en chaîne
3) Fin Remplir Verifnum Fonction Vérifier si une chaîne est numérique
b) Algorithme de la fonction Verifnum :
0) DEF FN Verifnum (ch :chaine) :booléen
1) k 0 TDOL
Répéter Nom Type/Nature Rôle
k i+1 k entier Compteur
Jusqu’à (non (ch[k] dans ["0".."9"])) ou (k=Long(ch))
Verifnum ch[k] dans ["0".."9"])
2) Fin Verifnum
c) Algorithme de la procédure Coder :
0) DEF PROC Coder(var C :tab ;D :tab ;n :entier) TDOL
1) Pour i de 1 à n faire Nom Type/Nature Rôle
chD[i] i Entier Compteur
Efface(ch, pos("/",ch),1) r Entier Contient les chiffres relatifs à la date
Valeur(ch,r,e) x Entier Entier aléatoire
e Entier Position de l’erreur
x5+Aléa(60)
nb Entier long Résultat de la multiplication de r par x
nbr*x nb1 Entier Les quatre chiffres de gauche de nb
Convch(nb,nbch) nb2 Entier Le reste des chiffres de nb
Si (Long(nbch)=4)Alors Ch Chaîne Une date du tableau D
C[i]Sous_chaine(nbch,2,3)+nbch[1] nbch Chaine Résultat de la conversion de la chaine
Sinon Si (Long(nbch)<4) Alors Répéter
Nbchnbch+"0"
Jusqu’à (Long(nbch)=4)
C[i]nbch
Sinon Valeur(Sous_chaine(nbch,1,4),nb1,e)
Valeur(Sous_chaine(nbch,5,Long(nbch)),nb2,e)
Convch(nb1+nb2,c[i])
Fin si
Fin si
FinPour
2)Fin Coder
Page 2 /3
d) Algorithme de la procédure Afficher:
0) DEF PROC Afficher (Id,D,C:tab ;n :entier)
1) Pour i de 1 à n faire
Ecrire(Id[i]," :", D[i]," :",C[i]) TDOL
Fin Pour Nom Type/Nature Rôle
i entier Compteur
2) Fin Afficher
Barème détaillé:
Page 3 /3