📝 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"
| N° | 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 + Ch3signifie la concaténation des deux chaîneslong(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") = Vraiestnum("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-1pos()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èresCh2 = "Python"→ longueur = 6 caractèresCh3 = "4502"→ longueur = 4 caractèresCh2 + Ch3 = "Python4502"→ concaténation
✅ Solution détaillée
Résolution pas à pas :
Voici les solutions avec des explications détaillées pour chaque instruction :
| N° | 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) = 6 → sous_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 :
- long(Ch2) : "Python" a 6 lettres (P-y-t-h-o-n)
- long(Ch2 + Ch3) : Concaténation → "Python" + "4502" = "Python4502" (10 caractères)
- pos("Go", Ch1) : "Algorithmique" ne contient pas "Go" → résultat -1
- 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
- estnum(Ch3) : "4502" ne contient que des chiffres → Vrai
- valeur(Ch3) + 4 : "4502" devient 4502 + 4 = 4506
- convch(246) : Conversion numérique → chaîne "246"
- sous_chaine(Ch2, 2, 6) : "Python" positions 2 à 5 = "thon"
- efface(Ch2, 2, 6) : Efface "thon" de "Python" → reste "Py"
- 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 :
# 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 :
Ch3 = 4502
=== EXERCICE 13 : FONCTIONS SUR LES CHAÎNES ===
Ch1 = Algorithmique
Ch2 = Python
==================================================
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 :
- Cliquez sur "Copier le code" pour copier le code Python
- Cliquez sur "Ouvrir Online Python" pour ouvrir le compilateur en ligne
- Collez le code dans l'éditeur (Ctrl+V ou Cmd+V)
- Cliquez sur le bouton "Run" (ou appuyez sur F9)
- Observez les résultats dans la console de sortie
- 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)oufloat(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()