Ecrire un programme Python intitulé «Répétition» qui permet de :
1) Saisir une chaine de caractère CH formée au minimum par 5 caractères, et un caractère C.
2) Déterminer puis afficher le nombre d’apparition de C dans CH
3) Supprimer le deuxième caractère C consécutif dans la chaîne.
4) Afficher la chaine finale.
Exemple :
CH = "bonjouur touuuut le monde"
C = "u"
Le programme affichera :
Le caractère u est apparu 6 fois.
La nouvelle chaine est : Bonjour tout le monde.
Voici le principe d'un algorithme qui répond à vos besoins en quatre étapes :
1- Saisie de la chaîne de caractères et du caractère :
Saisir une chaîne de caractères CH
contenant au moins 5 caractères.
Saisir un caractère C
.
2- Détermination du nombre d'apparitions de C
dans CH
:
Parcourir la chaîne CH
et compter le nombre de fois où le caractère C
apparaît.
3- Suppression du deuxième caractère C
consécutif :
Parcourir la chaîne CH
pour identifier les occurrences consécutives de C
.
Supprimer le deuxième caractère C
dans chaque paire consécutive.
4- Affichage de la chaîne finale :
Afficher la chaîne CH
après la suppression des caractères.
Dans cet algorithme, On va utiliser 4 fonctions fonctions.
Algorithme du programme principal
1 2 3 4 5 6 7 |
Algorithme repetition Debut ch<-saisie_chaine() c<-saisie_caractere() Ecrire('Le caractere '+c+' est apparu '+str(nbr_repetition(ch,c))+' fois') Ecrire(supprimer_repetition(ch,c)) Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
c | caractère |
La fonction saisie_chaine
Cette fonction exige à l'utilisateur de saisir une chaîne des caractères composée au minimum 5 caractères.
1 2 3 4 5 6 7 8 9 10 |
Fonction saisie_chaine() Début Ecrire("donner une chaîne des caractère composé au minimum 5 carcateres ") Lire(ch) Tant que(long(ch)<5) Faire Ecrire("donner une chaîne des caractère composé au minimum 5 carcateres ") Lire(ch) Fin Tant que retourner ch Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
La fonction saisie_caractere
Cette fonction exige à l'utilisateur de saisir un seul caractère.
1 2 3 4 5 6 7 8 9 10 |
Fonction saisie_caractere() Début Ecrire("ddonner un caractere ") Lire(c) Tant que(long(c)!=1) Faire Ecrire("donner un caractere ") Lire(ch) Fin Tant que retourner c Fin |
Déclaration des objets
Objet | Type / Nature |
c | Caractère |
La fonction nbr_repetition(ch,c)
Cette fonction parcourt la chaîne CH
et compte le nombre de fois où le caractère C
apparaît.
1 2 3 4 5 6 7 8 9 10 |
Fonction nbr_repetition(ch:chaine,c:caractere) Début cp<-0 Pour i de 0 à long(ch)-1 faire Si ch[i]=c alors cp<-cp+1 Finsi Fin pour retourner cp Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
cp | entier |
La fonction supprimer_repetition(ch,c)
Cette fonction supprime le deuxième caractère C
dans chaque paire consécutive..
1 2 3 4 5 6 7 |
Fonction supprimer_repetition(ch:chaine,c:caractere) Début Tant que (Pos(ch,c+c)>=0) faire #Pour deux caracteres successifs égaux à la variable C ch<-ch.replace(c+c, c) #On supprime un de ces deux caracteres Fin tant que retourner ch Fin |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
def saisie_chaine(): ch=input("donner une chaîne des caractère composé au minimum 5 carcateres ") while(len(ch)<5): ch=input("donner une chaîne des caractère composé au minimum 5 carcateres ") return ch def saisie_caractere(): ch=input("donner un caractere ") while(len(ch)!=1): ch=input("donner un caracere ") return ch def nbr_repetition(ch,c): cp=0 for i in range(len(ch)): if ch[i]==c : cp=cp+1 return cp def supprimer_repetition(ch,c) : while (ch.find(c+c)>=0): #Pour deux caracteres successifs égaux à la variable C ch=ch.replace(c+c, c) #On supprime un de ces deux caracteres return ch #programme principal ch=saisie_chaine() c=saisie_caractere() print('Le caractere '+c+' est apparu '+str(nbr_repetition(ch,c))+' fois') print(supprimer_repetition(ch,c)) |
Exécution du programme
Pour créer une application en Python pour compter le nombre d'apparition du caractère c dans la chaîne et supprime le deuxième caractère C
dans chaque paire consécutive de la chaîne des caractères en utilisant Qt Designer pour l'interface graphique, suivez ces étapes :
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez ces widgets:
QLineEdit
nommé 'ch' pour entrer une chaîne des caractères .
QLineEdit
nommé 'char_2' pour entrer un caractère .
QPushButton
nommé 'supprimer_bt' pour exécuter le module suppression_espaces.
QLabel
nommé 'msg' pour afficher un message d'erreur.
QLabel
nommé 'nbr_repetition' pour afficher le nombre d'apparition du caractère c dans la chaîne.
QLabel
nommé 'nouvelle_ch' pour afficher la chaîne sans les espaces doubles et les remplacer par un seul espaces.
Enregistrez le fichier avec l'extension .ui
, par exemple supprimer-caracteres.ui
.
Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets from numpy import array app = QApplication([]) windows = loadUi ("supprimer-caracteres.ui") def nbr_repetition(ch,c): cp=0 for i in range(len(ch)): if ch[i]==c : cp=cp+1 return cp def supprimer_repetition(ch,c) : while (ch.find(c+c)>=0): #Pour deux caracteres successifs égaux à la variable C ch=ch.replace(c+c, c) #On supprime un de ces deux caracteres return ch def suppression() : ch = windows.ch.text() c= windows.char_2.text() if len(ch) < 5 : windows.msg.setText("La chaine doit etre compose 5 carcatères au minimum") elif len(c)!=1 : windows.msg.setText("donner un seul caractere") else: windows.msg.setText("") windows.nbr_repetition.setText('Le caractere '+c+' est apparu '+str(nbr_repetition(ch,c))+' fois') windows.nouvelle_ch.setText(supprimer_repetition(ch,c)) windows.supprimer_bt.clicked.connect(suppression) windows.show() app.exec_() |
Exécution du programme
Vous pouvez voir aussi :
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info