Vous êtes sur la page 1sur 3

Épreuve d’informatique

Correction Ex n°4 Sections : Mathématiques, Sciences


PROTOTYPE expérimentales et Sciences techniques
Durée : 1 heure 30 mn Coefficient : 0.5
2022

Exercice n°4 :
1) Algorithme du programme principal
Algorithme TRADUCTION
Début
Elaborer_carnet (fr, en, n)
Saisir_phrase(ph_fr)
Traduire (fr, en, ph_fr, ph_en, n, nb_erreur)
Afficher (ph_en, nb_erreur)
Fin

Tableau de déclaration de nouveaux types


Type
tab = tableau de 100 chaines de caractères

TDO
Objet Type/Nature
N entier
fr,en tab
ph_fr, ph_en chaine
nb_erreur entier
Elaborer_carnet procédure
Saisir_phrase procédure
Traduire procedure
Afficher procédure

procedure Elaborer_carnet (@fr , @en : tab; @n:entier)


Début
répéter
Page 1 sur 3
Écrire ("N= ") , Lire (n)
Jusqu’à (2 <=n<=100)
pour i de 0 à n-1 faire
répéter
Écrire ("Donnez un mot en français : "), Lire(m_fr)
Jusqu'à vérifier_mot(m_fr)
répéter
Écrire ("Donnez la traduction du ", m_fr, " : "), Lire(m_en);
Jusqu'à vérifier_mot (m_en)
fr[i]m_fr
Objet Type/ Nature
en[i]m_en
i Entier
Finpour m_fr , m_en Chaine
Fin vérifier_mot Fonction

Fonction vérifier_mot (mot : chaine) : booléen


Début
Llong(mot)
i  0
Tantque (0<L≤ 15) et (i<L) et ( majus(mot[i]) "A".."Z"] )) faire

I i+1 T.D.O.L
FinTantque
Objet Type/ Nature
retourner (i=L) et (L ≠ 0) L, i Entier

Fin

Fonction Valide(phrase : chaine) : booléen


Début
L long(phrase) , v  Faux
Si(majus(phrase[0]) "A".."Z"]) et (majus(phrase[L-1]) "A".."Z"])
alors
i1
v vrai
Tantque (i<L-1) et (v=vrai) faire
v = (majus(phrase[i]) "A".."Z"] ) ou ((phrase[i] = " ")et
(majus(phrase[i+1]) "A".."Z"]))
i  i+1
FinTantque T.D.O

Finsi Objet Type/ Nature


retourner v i Entier
Fin v Booléen

Procédure Saisir_phrase (@ph :chaine)


Début
répéter
Écrire("Donnez une phrase en français : ")
Lire(ph)
Jusqu'à valide(ph)
Fin

Fonction Chercher(mot :chaine, fr : tab, n :entier): entier


Page 2 sur 3
Début
i0
Tantque (i<n) et (fr[i] ≠ mot) faire T.D.O.L
ii+1 Objet Type/ Nature
FinTantque
i Entier
retouner i
Fin

Procédure Traduire (fr, en : tab, ph_fr , @ph_en : chaine, n, @nb_erreur : entier)


Début
nb_erreur 0 , ph_en= "" p -2
Tantque (p ≠ -1) ou (ph_fr ≠ "") Faire
ppos(" ", ph_fr)
Si (p ≠ -1) alors
mot Sous_chaine(ph_fr,0,p)
effacer(ph_fr,0,p+1)
Sinon T.D.O
mot  ph_fr
Objet Type/ Nature
ph_fr ""
Finsi p, j Entier
mot Chaine
jChercher(mot,fr)
Si j<n alors ph_enph_en +en[j]+ " "
Sinon
ph_en ph_en +"{"+ mot + "}"
nb_erreur nb_erreur + 1
Finsi
FinTantque
Fin

Procédure Afficher (ph_en : chaine, nb_erreur : entier)


Début
Si (nb_erreur = 0) alors
Écrire(ph_en," : Traduction totale")
Sinon
Écrire (ph_en," : Traduction partielle, ",nb_erreur, " Mot(s) non traduit(s) ")
Fin

Page 3 sur 3

Vous aimerez peut-être aussi