Ecrire un programme pascal qui permet de :
1- Remplir un tableau T par n chaines de caractères, avec (5≤n≤30)
2- Eliminer tous les caractères non alphabétiques de chaque élément de T.
3- Afficher les chaines non vides du tableau T, précédés chacun de son indice.
N.B : On suppose que les lettres accentuées ne sont pas considérées comme des lettres alphabétiques.
Exemple : Pour le tableau T suivant, avec n=8 :
Ab?23k | 2kj !mn | tkrmob | Z56a8ù | B&12a :c | 43 ?8\% | 7in8fco | (9o,k ? |
Le programme affiche les chaines suivantes :
1 Abk
2 kjmn
3 tkrmob
4 Za
5 bac
7 infco
8 ok
1- Remplir le tableau : Le programme demande à l'utilisateur de saisir n chaînes de caractères (avec 5≤n≤30) et les stocke dans un tableau T.
2- Éliminer les caractères non alphabétiques : Pour chaque chaîne du tableau T, on retire tous les caractères qui ne sont pas des lettres alphabétiques. Les lettres accentuées ne sont pas considérées comme alphabétiques dans ce contexte.
3- Afficher les chaînes non vides : Le programme parcourt le tableau T, et pour chaque chaîne non vide, il affiche la chaîne accompagnée de son indice d'origine dans le tableau.
Dans cet algorithme, On va utiliser 2 fonctions et 2 procédures :
Algorithme du programme Principal
1 2 3 4 5 6 7 8 9 |
Algorithme entiers_manquants_tableau Debut n<-saisie_taille() Ecrire('remplissage du tableau t') remplir(t,n) effacer_symboles(t,n) Ecrire('Tableau t apres suppression des caracteres non alphabetiques') afficher_manque(t,n) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
t | tableau des 30 chaînes |
La fonction saisie_taille
Cette fonction retourne un entier n entre 5 et 30 saisi par l'utilisateur.
1 2 3 4 5 6 7 8 9 10 |
foncttion saisie_taille():entier Début Ecrire('donner un entier entre 5 et 30') lire (n) Tant que n<5 ou n>30 faire Ecrire('donner un entier entre 5 et 30') lire (n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La procédure remplir
Cette procédure remplit le tableau t de n chaîne des caractères.
1 2 3 4 5 6 7 |
Procédure remplir(@t:Tab,n:entier) Début Pour i de 0 à n-1 faire Ecrire("donner elt N° "+i+': ') lire(t[i]) Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
La procédure effacer_symboles
Cette procédure efface tous les caractères qui ne sont pas des lettres alphabétiques pour chaque chaîne du tableau T.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Procédure effacer_symboles(@t:Tab,n:entier) Début Pour i de 0 n-1 faire j<-0 ch<-t[i] Tant que (j<=long(ch)-1) faire Si ('A'<=Majus(ch[j])<='Z') alors j<-j+1 Sinon ch<-Sous_chaîne(ch,0,j)+Sous_chaîne(ch,j+1,long(ch)] #effacer le symbole trouve t[i]<-ch Fin si Fin tant que Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
ch | chaîne des caractères |
La procédure afficher
Cette procédure parcourt le tableau T, et pour chaque chaîne non vide, il affiche la chaîne accompagnée de son indice d'origine dans le tableau.
1 2 3 4 5 6 7 8 |
Procédure afficher(t:Tab,n:entier) Début Pour i de 0 à n-1 faire Si t[i]!='' alors Ecrire((i+1)+') '+t[i]) Fin si Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | 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 31 32 33 34 35 36 37 38 39 |
from numpy import array t=array([str]*50) #declaration du tableau des chaines def saisie_taille() : n=int(input("donner un entier entre 5 et 30: ")) while(n<5) or (n>30) : n=int(input("donner un entier entre 5 et 30: ")) return n def remplir(t,n): for i in range (n) : t[i]=input("donner elt N° "+str(i)+": ") def effacer_symboles(t,n): for i in range(n) : j=0 ch=t[i] while (j<=len(ch)-1): if ('A'<=ch[j].upper()<='Z'): j=j+1 else: ch=ch[0:j]+ch[j+1:len(ch)] #effacer le symbole trouve t[i]=ch def afficher(t,n): for i in range (n) : if t[i]!='': print(str(i+1)+') '+t[i]) #programme principal n=saisie_taille() print('Remplissage du tableau t') remplir(t,n) effacer_symboles(t,n) print('Tableau t apres suppression des caracteres non alphabetiques') afficher(t,n) |
Exécution du programme
Pour remplir un tableau d'entiers à partir d'une chaîne de caractères en Python, vous pouvez suivre les étapes suivantes :
1- Découper la chaîne de caractères en sous-chaînes contenant les entiers.
2- Convertir chaque sous-chaîne en entier.
3- Ajouter chaque entier au tableau.
Pour créer une application en Python et Designer QT qui permet de :
1- Remplir un tableau T par n chaines de caractères, avec (5≤n≤30)
2- Eliminer tous les caractères non alphabétiques de chaque élément de T.
3- Afficher les chaines non vides du tableau T, précédés chacun de son indice.
On va suivre 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 entiers .
QPushButton
nommé 'remplir_bt' pour exécuter le module createTab afin de remplir le tableau à partir de la chaine 'ch'.
QPushButton
nommé 'bt_effacer' pour effacer les symboles et afficher les chaines non vides du tableau T, précédés chacun de son indice.
QLabel
nommé 'msg' pour afficher un message d'erreur.
QLabel
nommé 'tab_label' pour afficher les éléments du tableau T.
QLabel
nommé 'resultat' pour contenir les chaines non vides du tableau T, précédés chacun de son indice.
Enregistrez le fichier avec l'extension .ui
, par exemple tabtab-2.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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets from numpy import array t=array([str]*100) app = QApplication([]) windows = loadUi ("tabtab-2.ui") # Fonction qui supprime des espaces de la chaine des carcatères def supprimer_espaces (ch) : while(ch[0]==' '): # elimnier tous les espaces au début de la chaine ch=ch[1:len(ch)] while(ch[len(ch)-1]==' '): # elimnier tous les espaces a la fin de la chaine ch=ch[0:len(ch)-1] while (ch.find(' ')>0): ch=ch.replace(" ", " ") # remplacer les doubles espaces apar un seul espace return ch # Procedure qui remplit un tableau par des entiers a partir d'une chaine des caractère def createTab(): ch = windows.ch.text() global n # pour la taille di tableau if ch=="": windows.msg.setText("Veuillez remplir la chaîne") else: windows.msg.clear() # effacer le message d erreur ch= supprimer_espaces(ch) i=0 j=0 ch1='' # parcourir les caracteres de la chaine while i<len(ch): if (ch[i]!=' '): ch1=ch1+ch[i] if ((ch[i]==' ') or (i==len(ch)-1)) : t[j]=ch1 ch1='' j=j+1 i=i+1 if 5<=j<=20: # test du taille du tableau n=j tab='' for k in range (j) : tab=tab+ 't['+str(k)+']= '+ t[k]+ '\n' #afficher les elements du tableau windows.tab_label.setText(tab) else: windows.msg.setText("Le nbr des elements doit etre entre 5 et 20") def effacer_symboles(): liste='' for i in range(n) : j=0 ch=t[i] while (j<=len(ch)-1): if ('A'<=ch[j].upper()<='Z'): j=j+1 else: ch=ch[0:j]+ch[j+1:len(ch)] t[i]=ch if t[i]!='': liste=liste+str(i)+') '+t[i]+'\n' windows.resultat.setText(liste) tab='' for k in range (n) : tab=tab+ 't['+str(k)+']= '+ t[k]+ '\n' #afficher les elements du tableau windows.tab_label.setText(tab) windows.remplir_bt.clicked.connect ( createTab ) windows.bt_effacer.clicked.connect ( effacer_symboles ) windows.show() app.exec_() |
Exécution du programme
1) Remplir le tableau à partir de la chaine 'ch'
2) Effacer les symboles et afficher les chaines non vides du tableau T, précédés chacun de son indice
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