37
Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Correction de la question 5 de l'exercice 2 du TD3 (M1202)

Embed Size (px)

Citation preview

Page 1: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 2: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 3: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExemple

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme Caractère

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 4: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas :

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie :

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 5: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie :

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 6: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 7: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 8: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et j

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 9: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et j

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

Page 10: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et j

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 11: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 12: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 13: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 14: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à dispositionExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 15: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleEntrées/sortiesAlgorithme DiviseParDeuxPair

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 16: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée :

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 17: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaire

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 18: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaine

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 19: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée :

Type de sortie : Variables : Début

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 20: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : Type de sortie : Variables : Début

→ enlève le dernier zéro

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineNType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 21: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN Type de sortie : chaîne de caractèresVariables : Début

→ enlève le dernier zéro

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineNType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 22: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN Type de sortie : chaîne de caractèresVariables : Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

→ enlève le dernier zéro

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 23: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère( , )="0" alors :

→ enlève le dernier zéro

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 24: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN, )="0" alors :

→ enlève le dernier zéro

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 25: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors :

→ enlève le dernier zéro

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 26: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

→ enlève le dernier zéro

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 27: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

→ enlève le dernier zéro SousChaine( )

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 28: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro SousChaine( )

Fin Si

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 29: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariables :

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro SousChaine( )

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 30: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro SousChaine( )

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 31: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine( )

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 32: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine(chaineN, , )

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 33: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine(chaineN,1, )

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 34: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine(chaineN,1,Longueur(chaineN)-1)

Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 35: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine(chaineN,1,Longueur(chaineN)-1)

6 Fin Si

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 36: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN

exemple : "1010100"Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie

exemple : "101010"Début

// Tester si chaineN contient un nombre pair en binaire :→ tester si son dernier caractère est 0

Si Caractère(chaineN,Longueur(chaineN))="0" alors : 7

// extraire les premiers caractères de chaineN, // du premier à l’avant-dernier

→ enlève le dernier zéro sortie ← SousChaine(chaineN,1,Longueur(chaineN)-1)

6 Fin Si "101010"

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4

Page 37: Correction de la question 5 de l'exercice 2 du TD3 (M1202)

1/ Outils à disposition

2/ Comportement attendu de l'algorithme à écrire

ExempleExemple d'entrées : "abaab" et 3Sortie dans ce cas : "a"→ Caractère("abaab",3) renvoie "a"

SousChaine("abaab", 3, 4) renvoie "aa"

Longueur("abaab") renvoie 5

Algorithme DiviseParDeuxPairVariable d'entrée : chaîne de caractères chaineN Type de sortie : chaîne de caractèresVariable : chaîne de caractères sortie Début

// Tester si chaineN contient un nombre pair en binaire : Si Caractère(chaineN,Longueur(chaineN))="0" alors : // extraire les premiers caractères de chaineN, // du premier à l’avant-dernier sortie ← SousChaine(chaineN,1,Longueur(chaineN)-1)

renvoyer sortie

Fin

Entrées/sortiesAlgorithme CaractèreEntrées : chaîne de caractères chaine et entier iType de sortie : chaîne de caractères

Algorithme SousChaineEntrées : chaîne de caractères chaine et entiers i et jType de sortie : chaîne de caractères

Algorithme LongueurEntrée : chaîne de caractères chaineType de sortie : entier

ExempleExemple d'entrée : "1010100" dans le cas où n vaut 1010100, c'est-à-dire 84 écrit en binaireSortie dans ce cas : "101010" (chaîne contenant n/2 en binaire, c'est-à-dire 84/2=42 en binaire, donc 101010)

Entrées/sortiesAlgorithme DiviseParDeuxPairEntrée : chaîne de caractères chaineType de sortie : chaîne de caractères

Enoncé : Déduisez-en un algorithme DiviseParDeuxPair qui prend en entrée une chaîne de caractères qui contient un nombre binaire n et s'il est pair, renvoie une chaîne de caractères qui contient la valeur de n/2 écrite en binaire. Vous utiliserez l'algorithme Caractère qui prend en entrée une chaîne de caractères chaine et un entier i et renvoie le i-ième caractère de chaine, ainsi que l'algorithme SousChaine qui renvoie la partie de la chaîne de caractères chaine allant du i-ième au j-ième caractère (inclus), et l'algorithme Longueur qui renvoie le nombre de caractères de la chaîne de caractères chaine.

3 4