Ecrire un programme en Python qui permet de:
1- saisir une chaîne contenant au minimum 5 caractères
2- de rechercher dans la chaîne la plus longue suite de caractères
3- d’afficher le caractère concerné ainsi que le nombre de fois qu’il est répété.
Exemple : Si on introduit (a a b c c e d e e e e f f g a a a) à le programme affiche (e,4)
Voici le principe de l'algorithme pour répondre à ces exigences :
1- Saisie de la chaîne de caractères : Saisir une chaîne de caractères contenant au moins 5 caractères.
2- Recherche de la plus longue suite de caractères identiques :
Parcourir la chaîne pour identifier les séquences consécutives de caractères identiques.
Garder une trace du caractère ayant la plus longue séquence et la longueur de cette séquence.
3- Affichage du caractère concerné et du nombre de répétitions : Afficher le caractère qui est le plus répété consécutivement et le nombre de répétitions.
Dans cet algorithme, On va utiliser deux fonctions.
Algorithme du programme principal
1 2 3 4 5 |
Algorithme suite_caractere Debut ch<-saisie_chaine() suite(ch) Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
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 suite
Cette fonction recherche et affiche la plus longue suite de caractères.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Fonction suite(ch:chaine) Début cp1<-1 cp2<-0 Pour i de 0 à long(ch)-1 faire Si ch[i]=ch[i+1] alors cp1<-cp1+1 sinon Si cp1>cp2 alors c<-ch[i] cp2<-cp1 Fin si cp1=1 Finsi Fin pour Si cp1>cp2 alors c<-ch[i] cp2<-cp1 Finsi Ecrire('('+c+' , '+cp2+')') Fin |
Déclaration des objets
Name | Type / Nature |
i | entier |
cp1 | entier |
cp2 | entier |
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 |
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 suite(ch): cp1=1 cp2=0 for i in range (len(ch)-1) : if ch[i]==ch[i+1] : cp1=cp1+1 else: if cp1>cp2 : c=ch[i] cp2=cp1 cp1=1 if cp1>cp2 : c=ch[i] cp2=cp1 print('('+c+' , '+str(cp2)+')') #programme principal ch=saisie_chaine() suite(ch) |
Exécution du programme
Pour créer une application en Python pour Parcourir la chaîne pour identifier les séquences consécutives de caractères identiques 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é 'msg' pour afficher un message d'erreur au cas ou la chaîne est composé moins de 5 caractères .
QPushButton
nommé 'afficher_bt' pour exécuter le module recherche_suite.
QLabel
nommé 'suite' pour afficher afficher le caractère concerné ainsi que le nombre de fois qu’il est répété.
Enregistrez le fichier avec l'extension .ui
, par exemple codage-chaine.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 |
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 ("nbr_caractere-interface.ui") def recherche_suite() : ch = windows.ch.text() if len(ch) < 5 : windows.msg.setText("La chaine doit etre compose 5 carcatères au minimum") else: windows.msg.setText("") cp1=1 cp2=0 for i in range (len(ch)-1) : if ch[i]==ch[i+1] : cp1=cp1+1 else: if cp1>cp2 : c=ch[i] cp2=cp1 cp1=1 if cp1>cp2 : c=ch[i] cp2=cp1 windows.suite.setText('( '+c+' , '+str(cp2)+' )') windows.afficher_bt.clicked.connect(recherche_suite) 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