Vous êtes sur la page 1sur 3

1) Algorithme du programme principal :

Algorithme Traduction_francais_anglais
Début
Saisie (n)
Remplir( tab_fr , tab_eng , n )
Saisie_phrase ( phrase )
Traduction ( phrase , tab_fr , tab_eng , n , phrase_trad , nb_mnt )
Affichage (phrase_trad , nb_mnt )
Fin
2) Déclaration des objets globaux
T.D.N.T
TYPE
Tab = tableau de 100 chaines de caractères
T.D.O.G
Objet Type / Nature
N , nb_mnt entier
Tab_fr , tab_eng tab
Phrase , phrase_trad chaine
Saisie procédure
Remplir procédure
Saisie_phrase procédure
Traduction procédure
Affichage procédure
3) Algorithmes des modules :

3-1 Algorithme de la procédure saisie :


Procédure saisie (@ n : entier)
Début
Répéter
Ecrire (" Donner le nombre de mots entre 2 et 100 ")
Lire (n)
Jusqu'à n ∈ [2..nmax]
Fin

3-2 Algorithme de la procédure Remplir :


Procédure Remplir (@ tab_fr, tab_eng : tab ; n : entier)
Début
Pour i de 0 à n-1 faire
Répéter
Ecrire ("Donner le mot num ",i, " en français ")
Lire (tab_fr[i])
Jusqu'à verif_mot(tab_fr[i]);
Répéter
Ecrire ("Donner la traduction en anglais du mot num ',i")
Lire (tab_eng[i])
Jusqu'à verif_mot(tab_eng[i]);
Fin pour
Fin

3-3 Algorithme de la fonction verif_mot :


Fonction verif_mot (ch : chaine ) : booléen
Début
i0
tant que majus(ch[i] ) ∈ ["A".."Z"] faire
ii+1
fin tant que
test  (i = long(ch)) et (long(ch) ∈ [1..15])
retourner test
Fin
3-4 Algorithme de la procedure saisie_phrase :
Procédure saisie_phrase (@ch : chaine)
Début
Répéter
Ecrire ("Donner la phrase à traduire ")
Lire (ch)
Jusqu'à verif_phrase (ch)
Fin
3-4 Algorithme de la fonction verif_phrase:
Fonction verif_phrase (ch : chaine ) : booléen
Début
i0
tant que ( majus(ch[i] ) ∈ ["A".."Z"] ) ou ( ch[i] = " ") faire
ii+1
fin tant que
test  i = long(ch)
retourner test
Fin
3-4 Algorithme de la procédure traduction
Procédure traduction (ph : chaine ; tab_fr, tab_eng : tab ; n : entier; @ ch_res : chaine ; @ nb_mnt : entier)
Début
ch_res  ""
nb_mnt  0
p  pos (" " , ph)
Tant que p # 0 Faire
res_rech  recherche_mot(tab_fr, n, ch)
Si res_rech # -1 Alors
ch_res  ch_res + tab_eng[res_rech] + " "
ph  effacer (ph,1,p)

sinon

ch_res  ch_res + "{" + ch + "}" + " "


nb_mnt  nb_mnt + 1
ph  effacer (ph,1,p)

Fin si
p  pos (" " , ph)
fin tant que
#ici on traiter le dernier mot#
res_rech  recherche_mot(tab_fr,n,ph)
Si res_rech # -1 Alors
ch_res  ch_res + tab_eng[res_rech] + " "
sinon
ch_res  ch_res + "{" + ch + "}" + " "
nb_mnt  nb_mnt + 1
fin si
Fin

3-5. Algorithme de la fonction recherche_mot :


Fonction recherche_mot(tab_fr : tab ; n : entier ; mot : chaine) : entier ;
Début
i0
trouve  faux
Répéter
i  i+1
trouve  mot = tab_fr[i]
jusqu'à (i= n) ou (trouve)
Si trouve Alors
Retourner i
sinon
Retourner -1
fin si
fin

Vous aimerez peut-être aussi