L’alphabet français :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Les voyelles sont A,E,I,O,U,Y et leurs rangs respectifs sont : 1,5,9,15,21 et 25.
Exemples :
- la chaîne « BONNE » contient 2 voyelles « O » et « E », son poids est égal à 2*15+5*5=55
- la chaîne « BACCALAUREAT » contient 6 voyelles « A », « A », « A », « U », « E » et « A », son poids est égal à : 2*1+5*1+7*1+8*21+10*5+11*1=243
Ecrire un programme Python qui permet de lire une chaîne non vide, composée seulement par des lettres alphabétiques majuscules puis calcule et affiche le poids de cette chaîne.
1- Initialisation :
Initialiser une variable poids
à 0 pour accumuler le poids des voyelles trouvées dans la chaîne.
2- Parcours de la chaîne :
Pour chaque lettre dans la chaîne, vérifier si c'est une voyelle :
a) Si la lettre est une voyelle, calculer sa contribution au poids total en multipliant son rang par sa position (index + 1) dans la chaîne.
b) Ajouter cette valeur au poids
.
3- Affichage du résultat :
Afficher le poids_total
après avoir parcouru toute la chaîne.
Dans cet algorithme, On va utiliser trois fonctions:
Algorithme du programme principal
1 2 3 4 5 |
Algorithme crytage_chaine Debut ch<- saisie_chaine() ecrire('le poids de '+ch+' = ',poids(ch)) Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
La fonction verif_majuscule
Cette fonction vérifie si une chaîne est formée uniquement des lettres majuscules.
1 2 3 4 5 6 7 8 9 10 11 |
fonction verif(ch) Début Si long(ch)<=30 alors i<-0 Tant que ('A'<=ch[i]<='Z' ou ch[i]=' ') et (i<long(ch)-1) alors i<-i+1 Fin tant que retourner ('A'<=ch[i]<='Z') ou (ch[i]=' ') Sinon retourner Faux Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
La fonction saisie_chaine
Cette fonction retourne une chaîne formée uniquement des lettres majuscules..
1 2 3 4 5 6 7 8 9 10 |
fonction saisie_chaine() Début Ecrire('DDonner une chaine forme des lettres majuscules: ') lire(ch) Tant que verif(ch)=Faux : Ecrire('Donner une chaine forme des lettres majuscules: ') lire(ch) Fin tant que retourner ch Fin |
Déclaration des objets
Objet | Type / Nature |
ch | chaîne des caractères |
La fonction poids
Cette fonction calcule et retourne le poids de la chaîne.
1 2 3 4 5 6 7 8 9 |
fonction poids(ch) Début poids=0 Pour i de 0 à long(ch)-1 faire Si ch[i] dans {'A','E','I','O','U','Y'} : poids<-poids+(ord(ch[i])-64)*(i+1) Fin si retourner poids Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
poids | entier |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
def verif_majuscule(ch): i=0 while (('A'<=ch[i]<='Z') or ch[i]==' ') and i<len(ch)-1: i=i+1 return ('A'<=ch[i]<='Z') or (ch[i]==' ') def saisie_chaine(): ch=input('Donner une chaine formé des lettres majuscules: ') while verif_majuscule(ch)==False : ch=input('le poids de '+ch+' = '+str(poids(ch))) return ch def poids(ch): poids=0 for i in range(len(ch)) : if ch[i] in {'A','E','I','O','U','Y'} : poids=poids+(ord(ch[i])-64)*(i+1) return poids # programme principal ch= saisie_chaine() print('le poids de '+ch+' = '+str(poids(ch)) ) |
Exécution du programme
Pour créer une application en Python pour crypter une chaîne de caractères formée uniquement de lettres majuscules selon le principe décrit, 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 des lettres majuscules .
QPushButton
nommé 'poids_bt' pour exécuter le module calcul_poids.
QLabel
nommé 'msg' pour afficher un message d'erreur si ch contient des caractères non alphabétique et minuscules et afficher le poids de la chaîne.
Enregistrez le fichier avec l'extension .ui
, par exemple poids-chaine-interface.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 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("poids-chaine-interface.ui") def verif_majuscule(ch): i=0 while ('A'<=ch[i]<='Z' or ch[i]==' ') and i<len(ch)-1: i=i+1 return 'A'<=ch[i]<='Z' or ch[i]==' ' def calcul_poids() : ch = windows.ch.text() if verif_majuscule(ch): poids=0 for i in range(len(ch)) : if ch[i] in {'A','E','I','O','U','Y'} : poids=poids+(ord(ch[i])-64)*(i+1) windows.msg.setText('le poids de '+ch+' = '+str(poids)) else: windows.msg.setText('Donner une chaine formée des lettres majuscules: ') windows.poids_bt.clicked.connect(calcul_poids) 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