📝 Exercice 13 - Fonctions de manipulation des chaînes

Algorithmique - Fonctions prédéfinies sur les chaînes de caractères

📝 Exercice : Fonctions de manipulation des chaînes

🔤
Objectif : En utilisant les fonctions prédéfinies sur les chaînes de caractères, déterminer la valeur de X pour chaque instruction algorithmique.
Données initiales :
  • Ch1 = "Algorithmique"
  • Ch2 = "Python"
  • Ch3 = "4502"
Instruction algorithmique Valeur de X
1 X ← long(Ch2) ?
2 X ← long(Ch2 + Ch3) ?
3 X ← pos("Go", Ch1) ?
4 X ← pos("i", Ch1) ?
5 X ← estnum(Ch3) ?
6 X ← valeur(Ch3) + 4 ?
7 X ← convch(246) ?
8 X ← sous_chaine(Ch2, 2, long(Ch2)) ?
9 X ← efface(Ch2, 2, long(Ch2)) ?
10 X ← majus("Anis") ?
💡 Indications :
  • Les positions dans les chaînes commencent à 0
  • La fonction pos() retourne -1 si le motif n'est pas trouvé
  • Ch2 + Ch3 signifie la concaténation des deux chaînes
  • long(Ch2) donne la longueur de la chaîne Ch2
  • Rappelez-vous de la table des fonctions pour comprendre chaque opération

📚 Table des fonctions prédéfinies

Fonctions de manipulation des chaînes de caractères

Voici les principales fonctions prédéfinies pour manipuler les chaînes en algorithmique et leur équivalent en Python :

Syntaxe Algorithmique Syntaxe Python Rôle de la fonction Exemples
long(ch) len(ch) Donne le nombre de caractères de la chaine ch long("prog") = 4
pos(ch1, ch2) ch2.find(ch1) Donne la 1ère position de ch1 dans ch2 pos("o", "foot") = 1
convch(d) str(d) Convertit un nombre décimal en chaine convch(123) = "123"
valeur(ch) int(ch) ou float(ch) Convertit une chaine en valeur numérique valeur("12.9") = 12.9
estnum(ch) ch.isdigit() Donne Vrai si la chaine est convertible en valeur numérique estnum("2598") = Vrai
estnum("25 98") = Faux
sous_chaine(ch, d, f) ch[d:f] Retourne une partie de ch de la position d jusqu'à f-1 sous_chaine("Python", 0, 4) = "Pyth"
efface(ch, d, f) ch[:d] + ch[f:] Retourne la chaine sans la partie de d à f-1 efface("Python", 1, 4) = "Pon"
majus(ch) ch.upper() Retourne la chaine en majuscule majus("Python") = "PYTHON"
🔍 Points importants à retenir :
  • Les positions dans les chaînes commencent à 0
  • sous_chaine(ch, d, f) prend les caractères de d à f-1
  • pos() retourne -1 si le motif n'est pas trouvé
  • estnum() vérifie si tous les caractères sont des chiffres
  • La concaténation se fait avec l'opérateur +
🎯 Application aux données de l'exercice :
  • Ch1 = "Algorithmique" → longueur = 13 caractères
  • Ch2 = "Python" → longueur = 6 caractères
  • Ch3 = "4502" → longueur = 4 caractères
  • Ch2 + Ch3 = "Python4502" → concaténation

✅ Solution détaillée

Résolution pas à pas :

Voici les solutions avec des explications détaillées pour chaque instruction :

Instruction algorithmique Valeur de X Explication
1 X ← long(Ch2) 6 Ch2 = "Python" a 6 caractères
2 X ← long(Ch2 + Ch3) 10 Ch2 + Ch3 = "Python4502" → 6 + 4 = 10 caractères
3 X ← pos("Go", Ch1) -1 "Go" n'existe pas dans "Algorithmique" → retourne -1
4 X ← pos("i", Ch1) 5 Le premier "i" dans "Algorithmique" est à la position 5 (A=0, l=1, g=2, o=3, r=4, i=5)
5 X ← estnum(Ch3) Vrai Ch3 = "4502" contient uniquement des chiffres
6 X ← valeur(Ch3) + 4 4506 valeur("4502") = 4502 → 4502 + 4 = 4506
7 X ← convch(246) "246" Convertit le nombre 246 en chaîne de caractères
8 X ← sous_chaine(Ch2, 2, long(Ch2)) "thon" long(Ch2) = 6sous_chaine("Python", 2, 6) = positions 2 à 5 = "thon"
9 X ← efface(Ch2, 2, long(Ch2)) "Py" Efface les positions 2 à 5 de "Python" → garde "Py"
10 X ← majus("Anis") "ANIS" Convertit "Anis" en majuscules
📝 Explications complémentaires :
  1. long(Ch2) : "Python" a 6 lettres (P-y-t-h-o-n)
  2. long(Ch2 + Ch3) : Concaténation → "Python" + "4502" = "Python4502" (10 caractères)
  3. pos("Go", Ch1) : "Algorithmique" ne contient pas "Go" → résultat -1
  4. pos("i", Ch1) : Les positions : A(0) l(1) g(2) o(3) r(4) i(5) t(6) h(7) m(8) i(9) q(10) u(11) e(12). Premier "i" à position 5
  5. estnum(Ch3) : "4502" ne contient que des chiffres → Vrai
  6. valeur(Ch3) + 4 : "4502" devient 4502 + 4 = 4506
  7. convch(246) : Conversion numérique → chaîne "246"
  8. sous_chaine(Ch2, 2, 6) : "Python" positions 2 à 5 = "thon"
  9. efface(Ch2, 2, 6) : Efface "thon" de "Python" → reste "Py"
  10. majus("Anis") : Majuscules → "ANIS"

🐍 Code Python - Vérification

Exécuter le code Python en ligne

Copiez le code ci-dessous et exécutez-le sur Online Python pour vérifier les résultats :

▶️ Ouvrir Online Python
# Exercice 13 : Fonctions de manipulation des chaînes
# Vérification des résultats avec Python
# Données initiales
Ch1 = "Algorithmique"
Ch2 = "Python"
Ch3 = "4502"
print("=== EXERCICE 13 : FONCTIONS SUR LES CHAÎNES ===")
print("Ch1 = ", Ch1)
print("Ch2 = ", Ch2)
print("Ch3 = ", Ch3)
print("=" * 50)
# 1. long(Ch2) - longueur de la chaîne
X = len(Ch2)
print("1. long(Ch2) =", X)
# 2. long(Ch2 + Ch3) - longueur de la concaténation
X = len(Ch2 + Ch3)
print("2. long(Ch2 + Ch3) =", X)
# 3. pos("Go", Ch1) - position de "Go" dans Ch1
X = Ch1.find("Go")
print("3. pos('Go', Ch1) =", X)
# 4. pos("i", Ch1) - position de "i" dans Ch1
X = Ch1.find("i")
print("4. pos('i', Ch1) =", X)
# 5. estnum(Ch3) - vérifie si Ch3 est numérique
X = Ch3.isdigit()
print("5. estnum(Ch3) =", X)
# 6. valeur(Ch3) + 4 - convertit en nombre et ajoute 4
X = int(Ch3) + 4
print("6. valeur(Ch3) + 4 =", X)
# 7. convch(246) - convertit le nombre 246 en chaîne
X = str(246)
print("7. convch(246) =", X)
# 8. sous_chaine(Ch2, 2, long(Ch2)) - sous-chaîne de Ch2
X = Ch2[2:len(Ch2)]
print("8. sous_chaine(Ch2, 2, long(Ch2)) =", X)
# 9. efface(Ch2, 2, long(Ch2)) - efface partie de Ch2
X = Ch2[:2] + Ch2[len(Ch2):]
print("9. efface(Ch2, 2, long(Ch2)) =", X)
# 10. majus("Anis") - convertit en majuscules
X = "Anis".upper()
print("10. majus('Anis') =", X)
print("=" * 50)
print("✅ Tous les calculs sont terminés !")
📋 Résultat attendu de l'exécution :
=== EXERCICE 13 : FONCTIONS SUR LES CHAÎNES ===
Ch1 = Algorithmique
Ch2 = Python
Ch3 = 4502
==================================================
1. long(Ch2) = 6
2. long(Ch2 + Ch3) = 10
3. pos('Go', Ch1) = -1
4. pos('i', Ch1) = 5
5. estnum(Ch3) = True
6. valeur(Ch3) + 4 = 4506
7. convch(246) = 246
8. sous_chaine(Ch2, 2, long(Ch2)) = thon
9. efface(Ch2, 2, long(Ch2)) = Py
10. majus('Anis') = ANIS
==================================================
✅ Tous les calculs sont terminés !
📝 Instructions pour exécuter le code :
  1. Cliquez sur "Copier le code" pour copier le code Python
  2. Cliquez sur "Ouvrir Online Python" pour ouvrir le compilateur en ligne
  3. Collez le code dans l'éditeur (Ctrl+V ou Cmd+V)
  4. Cliquez sur le bouton "Run" (ou appuyez sur F9)
  5. Observez les résultats dans la console de sortie
  6. Comparez avec les solutions de l'exercice
💡 Correspondance Algorithmique ↔ Python :
  • long(ch)len(ch)
  • pos(ch1, ch2)ch2.find(ch1)
  • convch(n)str(n)
  • valeur(ch)int(ch) ou float(ch)
  • estnum(ch)ch.isdigit()
  • sous_chaine(ch, d, f)ch[d:f]
  • efface(ch, d, f)ch[:d] + ch[f:]
  • majus(ch)ch.upper()