Correction du TD n°4

Exercice 1

Première version

001  action inversion(mot)
002    Données-Résultats mot : Tableau [N] de caractère
003    Locales           d : entier      { Indice de parcours du mot }
004                      l : entier      { Longueur du mot }
005                      c : caractere   { Variable auxiliaire de permutation }
006    l := longueur(mot)
007    d := 0
008    tantque d < l/2 faire
009      c := mot[d]
010      mot[d] := mot[l-1-d]
011      mot[l-1-d] := c
012      d := d+1
013    fait
014  fin action

Seconde version

001  action inversion(mot,l)
002    Données-Résultats mot : Tableau [N] de caractère
003    Données           l : entier
004    Locales           d : entier       { Indice de parcours du mot }
005                      c : caractere    { Variable auxiliaire de permutation }
006    pour d de 0 à l/2-1 faire
007      c := mot[d]
008      mot[d] := mot[l-1-d]
009      mot[l-1-d] := c
010    fait
011  fin action

Exercice 2

001  fonction testPalindrome(mot):booléen
002    Données mot : Tableau [N] de caractère
003    Locales d : entier     { Indice de parcours du mot }
004            l : entier     { Longueur du mot }
005            p : booléen    { Résultat de la fonction }
006                           { et condition de continuation }
007                           { de la boucle tant que }
008    l := longueur(mot)
009    p := vrai
010    d := 0
011    tantque p et (d < l/2) faire
012      si mot[d] = mot[l-1-d] alors
013        d = d+1
014      sinon
015        p := faux
016      fsi
017    fait
018    Résultat : p
019  fin fonction

Exercice 3

001  action cribleEratosthene(n,t)
002    Données   n : entier
003    Résultats t : Tableau [N] de booléen
004    Locales   i : entier    { Indice de parcours de boucle pour }
005              j : entier    { Indice de parcours de boucle pour }
006    t[0] := faux
007    t[1] := faux
008    pour i de 2 à N-1 faire
009      t[i] := vrai
010    fait
011    pour i de 2 à ent(sqrt(n))+1 faire
012      si t[i] alors
013        pour j de 2*i à n pas i faire
014          t[j] := faux
015        fait
016      fsi
017    fait
018  fin action

Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr