Uploaded by Mohamed HADJ SALEM

Prototype théorique 2022. - Correction salem

advertisement
Correction Prototype théorique Bac 2022
Proposé par Ben Moallem Salem, Professeur Informatique Sfax1
Exercice 1 (2 points)
1) Compléter le tableau ci-dessous par la valeur de la variable c après exécution de chaque séquence, et ce
pour n = 4.
Séquence
Valeur de la variable c
1
3
2
2
3
3
2) Donner le numéro de la séquence qui ne permet pas d’afficher le nombre de diviseurs. Justifier votre
réponse.
La séquence n°2 ne permet pas d’afficher le nombre de diviseurs car le compteur k va de 2 à (n div 2)
donc il a éliminé le 1 et n alors que l’objet de comptage est initialisé seulement à 1 (c  1).
Exercice 2 : (3 points)
1) Compléter la séquence algorithmique présentée ci-dessous afin de vérifier l’existence d’un nom donné
NOM dans un tableau T non vide.
Algorithme recherche
Début
Ecrire ("Donner le nom à chercher : ")
Lire (NOM)
Existe  Faux
i0
Répéter
Si (T[i] = NOM) alors
Existe  Vrai
Sinon
i  i +1
FinSi
Jusqu’à (Existe) ou (i = N-1)
Si (Existe) alors
Ecrire ("Le nom recherché existe dans ce tableau : ")
Sinon
Ecrire ("Le nom recherché n’existe pas dans ce tableau : ")
FinSi
Fin
2) Maintenant, le médecin veut chercher les numéros des fiches de ses patients ayant le même nom. Modifier la
séquence algorithmique présentée ci-dessus afin d’afficher ces numéros.
Page 1 sur 6
Algorithme recherche
Début
Ecrire ("Donner le nom à chercher : ")
Lire (NOM)
Existe  Faux
pour i de 0 à N-1 faire
Si (T[i] = NOM) alors
Ecrire (i)
Existe  Vrai
FinSi
Fin pour
Si Non (Existe) alors
Ecrire ("Le nom recherché n’existe pas dans ce tableau : ")
FinSi
Fin
Exercice 3 : (5 points)
Algorithme Covid19
Début
Ecrire ("donner le nombre de jours"), lire(N)
Ecrire ("donner nombre de personnes initialement contaminées"), lire(x)
Ecrire ("le nombre total de personnes contaminées est", Arrondi (somme(x,N)))
Fin
T.D.O.G.
Objet
Type/Nature
N
entier
x
Entier
Somme
Fonction/Réel
Fonction Somme(x :entier , N :entier) : Réel
Début
T.D.O.L.
s0
Objet
pour i de 0 à N faire
i
s  s + Puissance(x,i) / Fact(i)
s
Fin pour
Puissance
retourner s
Fact
Fin
Fonction Fact(x :entier) : entier
Début
f1
pour i de 2 à x faire
ff*i
Fin pour
retourner f
Fin
Fonction Puissance(x, y :entier) : entier
Début
p1
pour i de 0 à y-1 faire
pp*x
Fin pour
retourner p
Type/Nature
entier
Entier
Fonction/entier
Fonction/entier
T.D.O.L.
Objet
Type/Nature
f
entier
i
entier
T.D.O.L.
Objet
Type/Nature
p
entier
i
entier
Page 2 sur 6
Fin
Problème : (10 points)
Correction :
Procedure
Cryptage
Procedure
Saisie1 (@ N)
Procedure
Traduire (ch, FR, ENG, n)
Procedure
Saisie2 (@ ch)
Remplir (@ FR, @ ENG , n)
Fonction
Fonction
Verif1 (ch) : booléen
Verif2 (ch) : booléen
1. Algorithme du PP :
Algorithme Carnet
Début
Saisie1 (N)
Remplir (FR,ENG,n)
Saisie2 (ch)
Traduire (ch,FR,ENG,n)
Fin
T.D.N.T
Type
TAB = Tableau de Nmax chaînes
T.D.O Globaux
Objet
2. Les algorithmes des modules envisagés :
N
Entier
Nmax
Constante = 100
FR
TAB
ENG
TAB
ch
chaîne
Saisie1
Procédure
Remplir
Procédure
Saisie2
Procédure
Traduire
Procédure
Procédure Saisie (@ N: entier)
Début
Répéter
Ecrire (“Donner la taille du tableau ”)
Lire(N)
Jusqu’à (2 ≤ N ≤ Nmax)
Fin
Procédure Remplir (@ FR : TAB , @ ENG : TAB , N : entier)
Début
Pour i de 0 à N-1 faire
Répéter
Ecrire ("FR[" + convch(i) + "]=")
T.D.O Locaux
Lire (FR[i])
Objet
Type/Nature
Jusqu’à (verif1 (FR[i]))
i
entier
Répéter
Verif1 Fonction/Booléen
Ecrire ("ENG[" + convch(i) + "]=")
Lire (ENG[i])
Jusqu’à (verif1 (ENG[i]))
Fin pour
Page 3 sur 6
Type/Nature
Fin
Fonction Verif1 (ch : chaîne) : Booléen
Début
i  -1
Répéter
i  i +1
T.D.O Locaux
Objet
Type/Nature
i
Entier
Jusqu’à Non ("A" ≤ Majus(ch[i])) ≤ "Z") ou (i = long(ch)-1)
Retourner ("A" ≤ Majus(ch[i])) ≤ "Z") et (1 ≤ long(ch) ≤ 15)
Fin
Procédure Saisie2 (@ ch : chaîne)
Début
Répéter
Ecrire (“Saisir la phrase à traduire”),
Lire(ch)
Jusqu’à (Verif2 (ch))
Fin
T.D.O Locaux
Objet
Type/Nature
Verif2
Fonction/Booléen
Fonction Verif2 (ch : chaîne) : Booléen
Début
T.D.O Locaux
i  -1
Objet Type/Nature
Répéter
i
Entier
i  i +1
Jusqu’à Non ("A" ≤ Majus(ch[i])) ≤ "Z" ou ch[i] = " ") ou (i = long(ch)-1)
Retourner ("A" ≤ Majus(ch[i])) ≤ "Z" ou ch[i] = " ")
Fin
Procédure Traduire (ch : chaîne, FR : TAB , ENG : TAB , N : entier)
Début
res  ""
nb=0
ch  ch + " "
T.D.O Locaux
Répéter
Objet
Type/Nature
p  pos (" ",ch)
res
Chaîne
ch1  SousChaîne (ch, 0, p+1)
nb
Entier
x  Recherche (FR, n, ch1)
p
Entier
Si x ≠ -1 alors
ch1
Chaîne
res  res + ENG[x] + " "
x
Entier
Sinon
Recherche Fonction/entier
res  res + "{" + ch1 + "}" + " "
nb  nb + 1
FinSi
Effacer (ch, 0, p+1)
Jusqu’à (ch = "")
Si nb = 0 alors
Ecrire (res , " : Traduction totale")
Sinon
Ecrire (res, ": Traduction partielle, ", nb, " mot(s) non traduit(s) ")
Fin Si
Fin
Page 4 sur 6
Fonction Recherche (T : TAB , N : entier, ch : chaîne) : entier
Début
i  -1
Répéter
T.D.O Locaux
ii+1
Objet Type/Nature
Jusqu’à (T[i] = ch) ou (i = N-1)
i
Entier
Si T[i] = ch alors
pi
Sinon
p  -1
FinSi
Retourner p
Fin
Python : (n’est pas demandé dans l’examen théorique)
Page 5 sur 6
Page 6 sur 6
Related documents
Download