Le compte est bon

1. Création du programme principal

Créer le fichier main.py qui va contenir le programme principal. Celui-ci consistera à demander à l'utilisateur une chaîne de caractères et un caractère et l'on cherchera à savoir combien de fois apparaît le caractère dans la chaîne. Nous allons répondre à cette question en 3 questions.

Créer dans le fichier main.py le code permettant d'exécuter les 4 étapes de l'algorithme suivant :

  1. Demander à l'utilisateur une chaîne de caractères que l'on nommera chaîne_entrée (en utilisant la fonction input([prompt: str]) -> str)
  2. Demander à l'utilisateur un caractère que l'on nommera caractère_entrée (vous ne ferez aucune vérification de type)
  3. Afficher à l'écran le plus petit indice (ou -1) de chaîne_entrée valant caractère_entrée (vous pourrez utiliser la méthode find des chaînes de caractères)
  4. Retournez à l'étape 1. de cet algorithme à part si chaîne_entrée valait "sortie"

2. Prochain indice

On veut savoir si le caractère caractère_entrée apparaît plusieurs fois dans la chaîne chaîne_entrée. Comme on connaît déjà le premier indice où il apparaît, on cherche s'il apparaît aussi plus tard.

Fonction donne_prochain_indice(chaîne:str, indice:int) -> int

Créer la fonction donne_prochain_indice(chaîne:str, indice:int) -> int qui rend :

  • Le plus petit indice $j$ strictement plus grand que le paramètre indice tel que chaîne[j] == chaîne[indice],
  • None si cet indice n'existe pas.

Ajout de question 2 au programme principal

On ajoute notre fonction au programme principal :

Dans l'étape 3. de l'algorithme du programme principal, utilisez la fonction que vous venez de coder pour ajouter un affichage qui indique si caractère_entrée apparaît plusieurs fois dans chaîne_entrée ou pas.

L'étape 3. du programme principal sera alors constitué de deux actions :

  • Afficher à l'écran le plus petit indice (ou -1) de chaîne_entrée valant caractère_entrée (vous pourrez utiliser la méthode find des chaînes de caractères) (question 1)
  • Afficher si caractère_entrée est présent plus d'une fois dans chaîne_entrée (question 2)

3. Compte

On veut finalement savoir combien de fois apparaît caractère_entrée dans la chaîne chaîne_entrée. Comme on connaît sa première position grace à la question 1 et qu'on peut connaître la suivante grace à la question 2, on va terminer le boulot et compter combien de fois apparaît caractère_entrée dans chaîne_entrée.

Fonction compte_caractère(chaîne: str, indice: int) -> int

Créer la fonction compte_caractère(chaîne: str, indice: int) -> int qui rend le nombre de fois où le caractère chaîne[indice] est présent dans le paramètre chaîne

Ajout de question 3 au programme principal

Dans l'étape 3. de l'algorithme du programme principal, utilisez la fonction que vous venez de coder pour ajouter un affichage qui indique le nombre de fois où caractère_entrée apparaît dans chaîne_entrée.

L'étape 3. du programme principal sera alors constitué de trois actions :

  • Afficher à l'écran le plus petit indice (ou -1) de chaîne_entrée valant caractère_entrée (vous pourrez utiliser la méthode find des chaînes de caractères) (question 1)
  • Afficher à l'écran si caractère_entrée est présent plus d'une fois dans chaîne_entrée (question 2)
  • Afficher à l'écran le nombre de fois où caractère_entrée apparaît dans chaîne_entrée (question 3)

4. Maximum

Cerise sur le gateau, on cherche à savoir si caractère_entrée est le caractère qui apparaît le plus de fois dans chaîne_entrée.

Fonction donne_max_doublon(chaîne: str) -> str

Créer la fonction donne_max_doublon(chaîne: str) -> str qui rend le caractère de chaîne apparaissant le plus de fois.

Créer la fonction donne_max_doublon(chaîne: str) -> str qui rend le caractère de chaîne apparaissant le plus de fois.

Ajout de question 4 au programme principal

Dans l'étape 3. de l'algorithme du programme principal, utilisez la fonction que vous venez de coder pour ajouter un affichage qui le nombre maximum de répétition d'un caractère, et affichez un message de victoire si caractère_entrée réalise ce maximum.

L'étape 3. du programme principal sera alors constitué de quatre actions :

  • Afficher à l'écran le plus petit indice (ou -1) de chaîne_entrée valant caractère_entrée (vous pourrez utiliser la méthode find des chaînes de caractères) (question 1)
  • Afficher à l'écran si caractère_entrée est présent plus d'une fois dans chaîne_entrée (question 2)
  • Afficher à l'écran le nombre de fois où caractère_entrée apparaît dans chaîne_entrée (question 3)
  • Afficher à l'écran le nombre maximum de répétition d'un caractère, et affichez un message de victoire si caractère_entrée réalise ce maximum. (question 4)