Ecrire un algorithme et un programme Python qui permet de saisir un entier n dans [1..30], remplir un tableau T de taille n par des entiers <=9999 et afficher le nombre des entiers formés d’un seul chiffre, le nombre des entiers formés de 2 chiffres , le nombre des entiers formés de 3 chiffres et le nombre des entiers formés de 4 chiffres. Exemple :
T :
120 | 15 | 2 | 2445 | 2856 | 321 | 3 | 45 | 2111 | 5 |
Le programme affiche :
le nombre des entiers formé de 1 chiffre est 3
le nombre des entiers formé de 2 chiffres est 2
le nombre des entiers formé de 3 chiffres est 2
le nombre des entiers formé de 4 chiffres est 3
Pour remplir un tableau de entiers, nous pouvons utiliser un algorithme simple. Nous allons demander à l'utilisateur de saisir chaque entier un par un, puis les stocker dans le tableau.
1- Déclaration du tableau: Un tableau de taille est déclaré.
2- Saisie n taille du tableau :
Le programme demande à l'utilisateur de demander un entier ( 1<=n <= 30 ) Si <= 0 ou n >30 , l'algorithme affiche un message qui demande une autre fois d'entrer l'entier 1<=n <= 30 . 3- Remplissage du tableau:
L'algorithme parcourt chaque indice du tableau de 0 à n−1 .
Pour chaque indice, il demande à l'utilisateur d'entrer un entier compris entre 0 et 9999 et le stocke dans le tableau.
4- Parcourir ce tableau pour compter combien de ces entiers ont 1, 2, 3 ou 4 chiffres.
5- Afficher ces comptes.
Dans cet algorithme, On va utiliser une fonction et deux procédures :
Algorithme du programme principal
1 2 3 4 5 6 7 |
Algorithme remplir_tableau Debut n<-saisie_numerique() Ecrire('remplissage du tableau t') remplir(t,n) afficher_chiffres(t,n) Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
t | tableau de 30 entiers |
La fonction saisie
Cette fonction retourne un entier n entre 1 et 30 saisi par l'utilisateur.
1 2 3 4 5 6 7 8 9 10 |
foncttion saisie() Début Ecrire('donner un entier entre 1 et 30') lire (n) Tant que n<1 ou n>30 faire Ecrire('donner un entier entre 1 et 30') lire (n) Fin tant que retourner n Fin |
La procédure remplir
Cette procédure remplit le tableau t de n entiers entre 0 et 9999.
1 2 3 4 5 6 7 8 9 10 11 |
Procédure remplir(@t:Tab,n:entier) Début Pour i de 0 à n-1 faire Ecrire("donner elt N°",i," entre 0 et 9999 ") lire(t[i]) Tantque t[i]<0 ou t[i]>9999 Faire Ecrire("donner elt N°",i," entre 0 et 9999 ") lire(t[i]) Fin Tantque Fin pour Fin |
Objet | Type / Nature |
i | entier |
La procédure afficher_chiffres
Cette procédure affiche les nombres des entiers composés de 1 , 2 , 3 et 4 chiffres.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Procédure afficher_chiffres(t:Tab,n:entier) Début Pour i de 0 à n-1 faire Selon long(Convch(t[i]) faire cas 1 : compteur[0]= compteur[0] + 1 cas 2 : compteur[1]= compteur[1] + 1 cas 3 : compteur[2]= compteur[2] + 1 cas 4 : compteur[3]= compteur[3] + 1 Fin pour Pour i de 0 à 3 écrire('le nombre des entiers formé de ',i+1,' chiffre(s) est ', compteur[i]) Fin pour Fin |
Objet | Type / Nature |
i | entier |
compteur | tableau de 30 entiers |
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 |
from numpy import array t=array([int()]*30) compteur=array([int()]*30) def saisie_taille() : n=int(input("donner un entier entre 1 et 30 ")) while(1>n) or (n>30) : n=int(input("donner un entier entre 1 et 30 ")) return n def remplir(t,n): for i in range (n) : t[i]=int(input("donner elt N°"+str(i)+" entre 0 et 9999 ")) while (t[i]<0) or (t[i]>9999): t[i]=int(input("donner elt N°"+str(i)+" entre 0 et 9999 ")) def afficher_chiffres(t,n): for i in range (n) : match len(str(t[i])): case 1: compteur[0]=compteur[0]+1 case 2: compteur[1]=compteur[1]+1 case 3: compteur[2]=compteur[2]+1 case _: compteur[3]=compteur[3]+1 for i in range(4): print('le nombre des entiers formé de ',str(i+1),' chiffre(s) est ', str(compteur[i])) n=saisie_taille() print('remplissage du tableau t') remplir(t,n) afficher_chiffres(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.
4- Parcourir ce tableau pour compter combien de ces entiers ont 1, 2, 3 ou 4 chiffres.
5- Afficher ces comptes.
Pour créer une application en Python pour afficher le tableau des n entiers 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 entiers .
QPushButton
nommé 'remplir_bt' pour exécuter le module createTab afin de remplir le tableau à partir de la chaine 'ch'.
QPushButton
nommé 'recherche_bt' pour exécuter le module afficher afin d'afficher la liste des entiers.
QLabel
nommé 'msg' pour afficher un message d'erreur si ch est vide ou contient des valeurs non numériques .
QLabel
nommé 'tablabel' pour afficher les éléments du tableau.
QLabel
nommé 'liste_nbr' pour afficher la liste des entiers selon le nombre de chiffres de chaque entier.
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 |
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([int()]*30) compteur=array([int()]*30) 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 taille 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)) and (('0'<=ch[i]<='9') or (ch[i]==' '))): if ('0'<=ch[i]<='9') : ch1=ch1+ch[i] if ((ch[i]==' ') or (i==len(ch)-1)) : t[j]=int(ch1) ch1='' j=j+1 i=i+1 if (i<len(ch)) : # si la chaine contient des valeurs non numeriques windows.msg.setText("la chaîne contient des valeurs non numériques") else : tab='' for k in range (j) : tab=tab+ 't['+str(k)+']= '+ str(t[k])+ '\n' taille=j #afficher les elements du tableau windows.tab_label.setText(tab) def afficher(): for i in range (3) : compteur[i]=0 for i in range (taille) : match len(str(t[i])): case 1: compteur[0]=compteur[0]+1 case 2: compteur[1]=compteur[1]+1 case 3: compteur[2]=compteur[2]+1 case _: compteur[3]=compteur[3]+1 ch='' for i in range(4): print('le nombre des entiers formé de ',str(i+1),' chiffre(s) est ', str(compteur[i])) ch=ch+'le nombre des entiers formé de '+str(i+1)+' chiffre(s) est '+ str(compteur[i])+'\n' windows.liste_nbr.setText(ch) windows.remplir_bt.clicked.connect ( createTab ) windows.recherche_bt.clicked.connect ( afficher ) 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