Exercices corrigés TD Chaines de caracteres python pdf

Exercices TD Chaines de caracteres

Télécharger PDF

Correction des exercices

Exercice 1 :

Ecrire les fonctions suivantes :

  • longueur(CH) : qui retourne le nombre de caractères de la chaine CH.
  • nombre_Occurrences_e(CH) : qui retourne le nombre de 'e' contenus dans la chaine CH.
  • afficheInvese(CH) : qui affiche l’inverse de la chaine CH sans changer son contenu.
  • Invese(CH) : qui inverse l'ordre des caractères dans CH:

Exemple :

voici une petite phrase !

! esarhp etitep enu iciov

Exercice 2 : supprimer les occurrences d’un caractère dans une chaîne

Ecrire la fonction supprime_occurrences(CH) qui enlève toutes les apparitions du caractère 'e' en tassant les éléments restants. Les modifications se feront dans la même variable CH.

Exemple :

Cette ligne contient quelques lettres e.

Ctt lign contint qulqus lttrs .

Exercice 3 : copier des caractères

Ecrire la fonction copier(CH1,CH2) qui copie la première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Et affiche le résultat.

Exercice 4 : Convertir une chaine en majuscule.

Ecrire la fonction qui converti une chaine en majuscule (sans utiliser la méthode upper()).

Exercice 5 : Chaines Palindromes

Ecrire une fonction palindrome prenant en argument une chaîne de caractères, et déterminant s'il s'agit d'un palindrome (on supprimera les espaces et la ponctuation, et on ne tiendra pas compte de la casse).

Une chaine est palindrome est une chaine qu’on peut lire es 2 sens.

Exemples de phrases palindromes :

  • Karine alla en iraK
  • esope reste ici et se repose

Exercice 6 : Tableau de chaines de caractères

Ecrire un programme utilisant les fonctions suivantes :

  • LireChaines(N) : qui lit N mots et les mémorise dans un tableau de chaînes de caractères.
  • Trier(T) : Trier les mots dans l’ordre alphabétique croissant. Utilisez la méthode de tri par sélection.
  • Afficher(T) : Afficher le tableau trié.

Exercice 7 : compter les occurrences des caractères dans une chaîne

Ecrire une fonction qui prend en paramètre une chaîne de caractères CH et qui compte les occurrences des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules. Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat. Afficher seulement le nombre des lettres qui apparaissent au mois une fois dans le texte.

Exemple :

Entrez une ligne de texte: hassan

La chaîne "hassan" contient :

  • 2 fois la lettre 'A'
  • 1 fois la lettre 'H'
  • 1 fois la lettre 'N'
  • 2 fois la lettre 'S'

Exercice 8 : supprimer les espaces

Ecrire un programme utilisant les fonctions suivantes :

  • supprimeDebut(s) : qui supprime tous les espaces qui sont au début de la chaîne s.
  • supprimeFin(s) : qui supprime tous les espaces qui sont à la fin de la chaîne s.
  • supprimeMulti(s) supprimer aussi tous les espaces multiples à l’intérieur de la chaîne s (s’il y’a 2 espaces consécutifs ou plus, on ne laisse qu’un seul espace)

Exercice 9: La distance de Hamming (CNC2011)

1- La distance de Hamming entre deux chaînes de caractères.

La distance de Hamming entre deux chaînes de caractères de mêmes longueurs est égale au nombre de caractères, à la même position, qui sont différents.

Exemples :

  • La distance de Hamming entre "sure" et "cure" est 1.
  • La distance de Hamming entre "aabbcc" et "xaybzc" est 3.

Ecrire une fonction d’entête : distanceH(S1, S2) qui calcule et retourne la distance de Hamming entre S1 et S2 (les paramètres S1 et S2 sont deux chaînes de caractères de même longueur).

2- La distance de Hamming d’un langage.

On appellera langage, un tableau de chaîne de caractères toutes de même longueur. La distance de Hamming d’un langage est égale au minimum des distances de Hamming entre deux chaînes de caractères de ce langage différentes deux à deux.

Exemple :

Si langage =["aabb","xayy","tghy","xgyy"], sa distance de est égale à 1.

Ecrire une fonction d’entête : distanceH_langage(langage) qui calcule et retourne la distance de Hamming de son paramètre langage (le paramètre langage est un tableau de chaînes de caractères toutes de même longueur)

3- La distance de Hamming entre 2 nombres entiers positifs.

La distance de Hamming entre 2 nombres entiers positifs est le nombre de bits distincts dans leurs représentations binaire (voir exemple)

Exemple :

La distance de Hamming entre les nombres 7 et 4 est 2 (7 est représenté en binaire sur un octet (8bits) par 00000111 et 4 est représenté en binaire par 00000100)

a- Ecrire une fonction d’entête : binaire(N) qui retourne une chaîne de caractères représentant la valeur binaire de N sur un octet ( on suppose que 0<=N<256).

b- Ecrire une fonction d’entête : distanceNombre(A, B) qui calcule la distance de Hamming entre les nombres A et B (on suppose que 0<=A<256 et 0<=B<256)

Exercice 10 : REPRÉSENTATION DE GRANDS NOMBRES ENTIERS NATURELS PAR DES CHAINES DE CARACTERES (CNC2012)

Dans cette exercice, on représentera un nombre positif ou nul par une chaine de caractères contenant ses chiffres.

Notations

  • On dira qu'une chaine de caractères S est une ChaineChiffres si sa longueur est strictement positive et tout caractère de S est un caractère chiffre (les caractères chiffres sont '0','1','2','3','4','5','6','7','8,'9').
  • Soit N un nombre entier positif ou nul de NC chiffres (NC > 0), la valeur décimale (base 10) de N est: N=CNC-1CNC-2...Ci...C1C0, (C0 chiffre des unités, C1 chiffre des dizaines,...), on dit que N est représenté par une chaineChiffre S, si S contient les chiffres de N comme suit : S= "CNC-1CNC-2...Ci...C1C0"

Exemple :

Le nombre N=45009876156430987 de 17 chiffres sera représenté par la ChaineChiffres S= "45009876156430987" (S [0]=’4 ’, S[1]= ’5 ’, S[2]= ’0 ’ ,...S[16]= ’7 ’)

Question 1 : Chaine de chiffres

Soit S une chaine de caractères quelconque déjà déclarée et initialisée.

Définir une fonction d'entête ChaineChiffres(s) qui retourne True si S est une ChaineChiffres ou False sinon.

Exemple :

  • Si s= "78500120360007" alors l'appel à la fonction ChaineChiffres(s) retourne True.
  • Si s= "856942a1478" alors l'appel de la fonction ChaineChiffres(s) retourne False.

Question 2 : Zéros non significatifs

On suppose que S est une ChaineChiffres déjà déclarée et définie.

Ecrire une fonction d'entête supprimer_zeros(s) qui supprime les zéros à gauche de la chaine S (les zéros non significatifs dans un nombre)

Exemple :

Si s= "0009760004300", après l'appel de supprimer_zeros(s ), s= "9760004300".

Question 3 : Somme de deux chaines de chiffres.

Il s'agit de faire la somme de deux nombres entiers positifs représentés par leurs ChaineChiffres. Pour ce faire:

Écrire une fonction de prototype additionner(S1, S2); qui retourne la chaine SOM représentant la somme des nombres représentés par les ChaineChiffres S1 et S2.

Exemple :

si S1= "129782004977" et S2= "754022234930" alors après l'appel de la fonction additionner(S1,S2), retourne SOM= "883804239907".

Rappel :

Les valeurs décimales des codes ASCII des caractères chiffres sont indiquées dans le tableau qui suit :

Caractère Code ASCII
'0' 48
'1' 49
'2' 50
'3' 51
'4' 52
'5' 53
'6' 54
'7' 55
'8' 56
'9' 57

En python :

La fonction ord(caractere ) : retourne le code ASCII d’un caractère. Exemple ord('0') retourne 48 ;

La fonction chr(nombre ) : retourne le caractère correspondant au code ascii. Exemple chr(48) retourne '0';

FAQ

Qu'est-ce qu'une chaîne de caractères ?

Une chaîne de caractères est une séquence de caractères, généralement utilisée pour représenter du texte.

Comment inverser une chaîne de caractères ?

Pour inverser une chaîne de caractères, vous pouvez utiliser une boucle pour parcourir la chaîne de droite à gauche et construire une nouvelle chaîne avec les caractères dans l'ordre inverse.

Qu'est-ce qu'un palindrome ?

Un palindrome est une chaîne de caractères qui se lit de la même manière de gauche à droite et de droite à gauche, en ignorant les espaces et la ponctuation.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne