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