Informatique Bac Blanc 2018 Partie2 .pdf
Ce document au format PDF 1.4 a été généré par PDFCreator Version 1.5.0 / GPL Ghostscript 9.05, et a été envoyé sur fichier-pdf.fr le 12/06/2018 à 01:22, depuis l'adresse IP 196.229.x.x.
La présente page de téléchargement du fichier a été vue 499 fois.
Taille du document: 182 Ko (4 pages).
Confidentialité: fichier public
Aperçu du document
MINISTERE EDUCATION TUNISIENNE
--- --------------------------------------------------------
Proposition correction Bac Blanc 2018
Informatique
Scientifiques
Epreuve :
Section :
Durée :
1
Coefficient :
1 heure 30 minutes
Problème
1) Analyse du problème
T.D.N.T :
Nom : probleme_codage
Resultat =
Ecrire(ʺExistence de ʺ,cs, ʺ dans le
tableau des
codes : ʺ,e, ʺ Disponibilite de ʺ,C, ʺ : ʺ,dis)
(e , dis ) = Proc existence(C, code, etat, vC, e, dis)
Type
TabCode = tableau de 100 caractères
TabEtat = tableau de 100 chaînes
T.D.O.G :
Objet
C
Nature/type
Var/
chaîne
e
Var/
Booléen
etat
Var/
TabEtat
vC ←FN saisieCode(C)
etat = Proc initialisationEtat(etat, n)
( code , n ) = Proc remplissageCode(code, n)
Fin probleme_codage
Proposé le Samedi 08 Juin 2018 2018
code
Var/
TabCode
remplissageCode Procédure
initialisationEtat
Procédure
saisieCode
Fonction/
booléen
existence
Procédure
dis
Var/chaine
vC
Var/Booléen
Rôle
Code à vérifier
son existence
et sa
disponibilité
Décision de
l'existence du
code
Tableau des
états de
disponibilité
des codes
Tableau des
des codes
Procédure
pour
remplissage du
tableau des n
codes
Procédure
pour
initialisser le
tableau etat
par le
caractère L
Fonction pour
la saisie du
code à vérifier
Procédure
pour décider
l'existence du
code C dans le
tableau code et
sa disponibilité
Disponibilité
du code
Décision après
saisie du code
concernant sa
validité
Année scolaire : 2017 - 2018
2) Les Algorithmes des modules et les tableaux de déclarations des objets locaux
correspondants :
a) Algorithme Procédure remplissageCode :
0)DEF PROC remplissageCode (var code : TabCode ; var n :
entier)
1) [ ] répéter
Ecrire(ʺDonner le nombre des codes : ʺ)
Lire(n)
jusqu'à n dans [10..100]
2) [ ] Pour i de 1 à n faire
répéter
Ecrire(ʺCode[ ʺ,i,ʺ ]= ʺ)
Lire (code[i])
jusqu'à FN valide(code[i]]) = Vrai
finPour
3) Fin remplisageCode
T.D.O.L :
Objet Nature/type
Rôle
i
Var/entier
compteur
valide Fonction/Booléen Fonction
qui
retourne
le
résultat
de
décision
de la
validité
d'un code
Algorithme de la fonction valide :
T.D.O.L :
Objet
chiffre
0) DEF FN valide (c : chaîne) : booléen
1) si (long(c)=13) et FN chiffre(c) et FNpremier(souschaine(c,1,3)) et (FN nbSeqArith(c)>=1)
alors valide ← vrai
sinon valide ← faux
finSi
2) Fin valide
Algorithme de la fonction chiffre :
0) DEF FN chiffre (ch : chaîne) : booléen
1) [ i← 1 ]Tant que (ch[i] dans [ʺ0ʺ..ʺ9ʺ]) et (i<=long(ch) ) faire
i ← i+1
finTantQue
2) si i <= long(ch) then Chiffre ← faux
Sinon Chiffre ← vrai
finSi
3) Fin chiffre
Algorithme de la fonction premier :
0) DEF FN premier (c : chaîne) : booléen
1)[ valeur(c,d,e) ] Si e <>0 alors premier ← faux
finSi
2) [ s ← 1 ] pour i de 2 à d faire si d mod i = 0 alors
s←s+1
finSi
finPour
3) si s = 2 alors premier ← vrai sinon premier ← faux
finSi
Proposé le Samedi 08 Juin 2018 2018
premier
Nature/type Rôle
Fonction qui
Fonction/
décide qu'un
booléen
Fonction/
booléen
nbSeqArith Fonction/
entier
entier donné
est composé
uniquement
par des
chiffres
Fonction qui
décide qu'un
entier donné
est premier
Fonction qui
retourne le
nombre de
séquences
arithmétiques
dans une
chaîne
donnée
T.D.O.L :
Objet
i
Nature/type
var/entier
Rôle
compteur
T.D.O.L :
Objet
i
s
Nature/type
var/entier
Var/entier
Rôle
compteur
Nombre des
diviseurs
Entier après
la
conversion
de c
d
Var/entier
e
Position
Var/entier
Année scolaire : 2017 - 2018
erreur
4) Fin premier
Algorithme de la fonction nbSeqArith :
0) DEF FN nbSeqArith (c : chaîne) : entier
1) [ nb ← 0 ]
pour i de 1 à long(c) -3 faire
ch1 ← sous_chaine(c,i,4)
si arith(ch1) alors nb ← nb + 1 finSi
2) nbSeqArith ← nb
3) fin nbSeqArith
o Algorithme de la fonction arith :
0) DEF FN arith (ch : chaîne) : booléen
1) [ i ← 1 ]
répéter
val(ch[i], di, e)
val(ch[i+1], dip1, e)
i←i+1
jusqu'à (abs(di - dip1)<> 2) ou (i>long(ch))
3) si i > long(ch) alors arith ← vrai
sinon arith ← faux
finSi
4) fin arith
T.D.O.L :
Objet Nature/type
i
var/entier
nb
Var/entier
Ch1
Var/ chaîne
T.D.O.L :
Objet
i
di
Nature/type
var/entier
Var/entier
dip1
Var/ entier
e
Var/entier
Rôle
compteur
Nombre des
séquences
arithmétiques
Chaine
contenant
l'entier donné
Rôle
compteur
Premier
chiffre
Chiffre
successeur
Position
erreur
b) Algorithme Procédure initialisationEtat :
0) DEF PROC initialisationEtat (var te : TabEtat ; n : entier)
1) [ ] pour i de 1 à n faire
te[i] ← ʺLʺ
finPour
2) Fin initialisationEtat
T.D.O.L :
Objet
i
Nature/type
Var/entier
Rôle
compteur
c) Algorithme Fonction saisieCode :
0) DEF FN saisieCode (var cs : chaîne) : booléen
1) Ecrire(ʺ Tapez le code a verifier ʺ)
2) Lire(cs)
3) saisieCode ←FN valide (cs)
4) Fin saisieCode
T.D.O.L :
Objet Nature/type
Rôle
valide Fonction/Booléen Fonction
qui
décide la
validité
du code
d) Algorithme Procédure existence :
0) DEF PROC existence(cs: chaîne ; code : tabCode ; var etat : tabEtat ; n : entier ;validiteCode : booléen ;var
e : booléen; var dis : chaîne)
1) si non validiteCode alors dis ← ʺ Code Invalide ʺ
sinon si non (FN existe(cs, code, n, sp)) alors
dis ← ʺCode inexistantʺ
e ←faux
sinon
si etat[p]='U' alors
dis ← ʺCode Utiliseʺ
e ← vrai
sinon dis ←ʺOperation de recharge reussiteʺ
e ←vrai
etat[p] ←ʺUʺ
Proposé le Samedi 08 Juin 2018 2018
Année scolaire : 2017 - 2018
finSi
2) fin existence
T.D.O.L :
Objet
existe
sp
Nature/type
Rôle
Fonction/Booléen Fonction qui
décide la
existence du
code dans
le tableau
des codes et
sa position
Var/entier
Position du
code dans le
tableau
sinon la
positon
égale à 0
Algorithme de la fonction existe :
0)DEF FN existe(code : chaine; tc : tabCode; n : entier ; var p:entier):booléen
1) [ i← 0]
répéter
i←i +1
jusqu'à (tc[i] = code) ou (i = n)
2) si tc[i] = code alors
P← i
B ← vrai
sinon
b ← faux
p← 0
finSi
3) existe ← b
4) fin existe
T.D.O.L :
Objet
i
b
Nature/type
Var/entier
Var/booléen
Rôle
compteur
décision
Proposé le Samedi 08 Juin 2018 2018
Année scolaire : 2017 - 2018



