Ecrivez un algorithme et un programme avec Python pour remplir un tableau de longueur 1<=n<=30 et déterminer le nombre d’occurrences d’un nombre donné dans le tableau.
Pour trouver le nombre d’occurrences d’un nombre donné dans un tableau, vous pouvez utiliser une méthode similaire à la recherche séquentielle. Au lieu de s’arrêter dès que l’élément est trouvé, vous parcourez tout le tableau et comptez combien de fois l’élément apparaît. Voici le principe détaillé de cette recherche :
1- Initialisation : Initialiser un compteur à 0 pour suivre le nombre d’occurrences de l’élément recherché.
2- Parcours séquentiel :
Parcourir chaque élément du tableau.
À chaque élément, vérifier s’il est égal à l’élément recherché.
Si c’est le cas, incrémenter le compteur.
Retourner le résultat : Après avoir parcouru tout le tableau, retourner la valeur du compteur.
Dans cet algorithme, On va utiliser deux fonctions et deux procédures :
1 2 3 4 5 6 7 8 9 |
Algorithme recherche_tableau Debut n<-saisie_taille() Ecrire('remplissage du tableau') remplir(t,n) afficher_tableau(t,n) Ecrire('Donner un entier') Ecrire(x,' se trouve dans ',nbr_occurrences(t,n,x),'fois dans le tableau') Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
t | tableau de 30 entiers |
x | entier |
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 et 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.
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 afficher_tableau
Cette procédure affiche les éléments du tableau.
1 2 3 4 5 6 7 |
Procédure afficher_tableau(t:Tab,n:entier) Début Pour i de 0 à n-1 faire Ecrire('t[',i,']=') Ecrire(t[i]) Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
La fonction nobr_occurrences
Cette fonction compte le nombres de répétitions de l’entier x dans le tableau.
1 2 3 4 5 6 7 8 9 10 |
Fonction recherche(t:tab,n:entier,x:entier):booléen Début cp<-0 Pour i de 0 à n-1 faire Si t[i]=x alors cp<-cp+1 Finsi Fin pour retourner cp Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
cp | 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 |
from numpy import array t=array([int()]*30) def saisie_taille() : n=int(input("donner un entier entre 1 et 30 ")) while(1>n) and(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)+":")) def afficher_tableau(t,n): for i in range (n) : print('t['+str(i)+']= '+ str(t[i])) def nbr_occurences(t,n,x) : cp=0 for i in range(n) : if t[i]==x : cp=cp+1 return cp n=saisie_taille() print('remplissage du tableau t') remplir(t,n) print('tableau t') afficher_tableau(t,n) x=int(input("donner un entier ")) print(str(x)+' se trouve dans le tableau '+str(nbr_occurences(t,n,x))+' fois') |
Exécution du programme
Pour créer une application en Python pour déterminer le nombre d’occurrences d’un nombre x dans 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é ‘n’ pour entrer l’entier n .
QLineEdit
nommé ‘x’ pour entrer l’entier x .
QPushButton
nommé ‘valider_bt’ pour exécuter le module createTab.
QPushButton
nommé ‘exist_bt’ pour exécuter le module rechercheTab.
QLabel
nommé ‘msg’ pour afficher un message d’erreur en cas ou n<=0 ou n>=30 et le résultat de la recherche.
QTableWidget
nommé ‘t’ pour créer graphiquement le tableau t des entiers.
Enregistrez le fichier avec l’extension .ui
, par exemple tabtab.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 |
from PyQt5.uic import loadUi from PyQt5 import QtCore, QtGui from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui, QtWidgets app = QApplication([]) windows = loadUi ("tabtab.ui") def clearTab(): # Fonction qui efface le tableau windows.t.setDisabled(1) windows.t.clearContents() windows.t.setRowCount(0) windows.t.setColumnCount(0) def createTab(): # Fonction qui construit le table de taille n editors = [] n = windows.n.text() if n=="": clearTab() windows.msg.setText("Veuillez saisir un nombre >0") elif n.isnumeric() and int(n)>0: windows.msg.clear() # effacer le message d erreur n=int(n) #constructuion du tableau windows.t.setDisabled(0) windows.t.setRowCount(1) windows.t.setColumnCount(n) # resize taille colonnes windows.t.resizeColumnsToContents() for i in range(n): # ajouter t[1] , t[2] ,... editors.append('t['+str(i)+']') windows.t.setItem(0,i,QTableWidgetItem("0")) brush = QtGui.QBrush(QtGui.QColor(35+(i%2)*80, 20+(i%2)*80, 50+(i%2)*80)) # colorer le background des elements du tableau windows.t.item(0,i).setBackground(brush) # ajouter police aux elements du tableau brush1 = QtGui.QBrush(QtGui.QColor(255, 255, 255)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) windows.t.item(0,i).setForeground(brush1) windows.t.item(0,i).setFont(font) # ajouter police a entete du tableau t[i] item = QtWidgets.QTableWidgetItem() item.setFont(font) item.setForeground(brush) windows.t.setHorizontalHeaderItem(i, item) # renommer les entetes du tableau t[1], t[2] , ... windows.t.setHorizontalHeaderLabels(editors) else: windows.msg.setText("Veuillez saisir un nombre >0") clearTab() def rechercheTab(): n = int(windows.n.text()) x = windows.x.text() cp=0 for i in range(n): if (windows.t.item(0, i).text()==x): cp=cp+1 brush1 = QtGui.QBrush(QtGui.QColor(255, 0, 0)) font = QtGui.QFont() font.setPointSize(12) font.setBold(True) font.setWeight(75) windows.t.item(0,i).setForeground(brush1) windows.t.item(0,i).setFont(font) windows.msg.setText(x+" est trouvé "+ str(cp)+ " fois dans le tableau") windows.valider_bt.clicked.connect ( createTab ) windows.exist_bt.clicked.connect ( rechercheTab ) windows.show() app.exec_() |
Exécution du programme
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