Ecrivez un algorithme et un programme avec Python pour remplir un tableau de longueur 1<=n<=30 et rechercher si un nombre existe dans ce tableau ou non.
La recherche d’un élément dans un tableau est réalisée en utilisant La recherche séquentielle qui consiste à parcourir le tableau élément par élément jusqu’à ce que l’élément recherché soit trouvé ou que tous les éléments aient été vérifiés.
1- Initialisation : Commencer à partir du premier élément du tableau.
2- Parcours séquentiel :
Comparer chaque élément du tableau avec l’élément recherché.
Si l’élément courant est égal à l’élément recherché, la valeur ‘Vrai‘ est retourné.
Sinon, passer à l’élément suivant.
3- Fin du parcours :
Si l’élément est trouvé pendant le parcours, retourner la valeur ‘Vrai‘.
Si la fin du tableau est atteinte sans trouver l’élément, retourner la valeur ‘Faux‘.
Dans cet algorithme, On va utiliser deux fonctions et deux procédures :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Algorithme recherche_tableau Debut n<-saisie_taille() Ecrire('remplissage du tableau') remplir(t,n) afficher_tableau(t,n) Ecrire('Donner un entier') Si recherche(t,n,x)= Vrai alors Ecrire(x,' se trouve dans le tableau') Sinon Ecrire(x,' ne se trouve pas dans le tableau') Finsi 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 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.
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 |
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 |
Objet | Type / Nature |
i | entier |
La fonction recherche
Cette fonction teste si le nombre x se trouve dans le tableau ou non.
1 2 3 4 5 6 7 8 |
Fonction recherche(t:tab,n:entier,x:entier):booléen Début i<-0 Tant que (i<n-2) et (t[i]!=x) faire i<-i+1 Fin tanque retourner (t[i]=x) Fin |
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 |
from numpy import array t=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)+":")) def afficher_tableau(t,n): for i in range (n) : print('t['+str(i)+']= '+ str(t[i])) def recherche(t,n,x) : i=0 while(i<n-2) and (t[i]!=x): i=i+1 return t[i]==x n=saisie_taille() print('remplissage du tableau t') remplir(t,n) print('tableau t') afficher_tableau(t,n) x=int(input("donner un entier ")) if (recherche(t,n,x)) : print(str(x)+' se trouve dans le tableau') else: print(str(x)+' ne se trouve pas dans le tableau') |
Exécution du programme
Pour créer une application en Python pour recherche un nombre x 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 83 84 |
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=="") or (int(n)<1) or (int(n)>30): clearTab() windows.msg.setText("Veuillez saisir un nombre entre 1 et 30") 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() i=0 while(i<n-2) and (windows.t.item(0, i).text()!=x): i=i+1 if (windows.t.item(0, i).text()==x): windows.msg.setText(x+" est trouvé") # ajouter police aux elements du tableau 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) else: windows.msg.setText(x+" est non trouvé") 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