Ecrivez un algorithme qui permet à l’utilisateur de supprimer une valeur du tableau en donnant son indice
Exemple :
T :
12 | 15 | 20 | 24 | 28 | 32 | 34 | 45 | 21 | 56 |
Si on saisit 3 à le programme supprime 20 (T[2]=20)
Et T devient :
12 | 15 | 24 | 28 | 32 | 34 | 45 | 21 | 56 |
Pour supprimer une valeur d’un tableau en donnant son indice, l’algorithme peut suivre les étapes suivantes :
1- Vérification de l’indice : S’assurer que l’indice donné est valide, c’est-à-dire qu’il se situe dans les bornes du tableau.
2- Suppression de la valeur : Utiliser l’indice pour supprimer l’élément correspondant du tableau.
3- Réajustement du tableau : Réorganiser les éléments restants pour maintenir la structure du tableau.
Dans cet algorithme, On va utiliser trois fonction et trois procédures :
1 2 3 4 5 6 7 8 9 10 11 |
Algorithme suppression_tableau Debut n<-saisie() Ecrire('remplissage du tableau t') remplir(t,n) indice<-saisie_indice(t,n) supprimer(t,n,indice) n<-n-1 Ecrire('tableau t ') afficher(t,n) Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
indice | 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 |
Fonction 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 |
Déclaration des objets
Objet | Type / Nature |
i | entier |
La Fonction saisie_indice
Cette fonction retourne l’indice de l’élément à supprimer par l’utilisateur.
1 2 3 4 5 6 7 8 9 |
Début Fonction saisie(n) Ecrire('donner un entier entre 0 et ',n-1) lire (x) Tant que (x<0) ou (x>n-1) faire Ecrire('donner un entier entre 1 et ',n-1) lire (x) Fin tant que retourner x Fin |
Déclaration des objets
Objet | Type / Nature |
x | entier |
La procédure supprimer
Cette procédure supprime un élément à supprimer du tableau.
1 2 3 4 5 6 |
Procédure supprimer(@t:Tab,n:entier,indice:entier) Début Pour i de indice à n-1 faire t[i]<-t[i+1] Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
i | entier |
La procédure afficher
Cette procédure affiche les éléments du tableau.
1 2 3 4 5 6 7 |
Procédure afficher(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 |
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 |
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 saisie_indice(n) : x=int(input("donner un indice entre 0 et "+str(n-1)+' ')) while(x<0) or (n>30) : x=int(input("donner un indice entre 0 et "+str(n-1)+' ')) return x def remplir(t,n): for i in range (n) : t[i]=int(input("donner elt N°"+str(i)+":")) def supprimer(t,n,indice): for i in range(indice,n-1): t[i]=t[i+1] def afficher(t,n): for i in range (n) : print('t['+str(i)+']= '+ str(t[i])) n=saisie_taille() print('remplissage du tableau t') remplir(t,n) indice=saisie_indice(n) supprimer(t,n,indice) n=n-1 print('tableau t') afficher(t,n) |
Exécution du programme
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é ‘n’ pour entrer l’entier n .
QLineEdit
nommé ‘indice’ pour entrer l’entier indice .
QPushButton
nommé ‘valider_bt’ pour exécuter le module createTab.
QPushButton
nommé ‘suuprimer_bt’ pour exécuter le module supprimerTab.
QLabel
nommé ‘msg’ pour afficher un message d’erreur en cas ou n<=0 ou n>=30.
QTableWidget
nommé ‘t’ pour créer graphiquement un tableau 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 |
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") else: 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) def supprimerTab(): n = int( windows.n.text() ) indice = int( windows.indice.text() ) for i in range(indice,n-1) : windows.t.setItem(0,i,QTableWidgetItem(windows.t.item(0, i+1).text())) n=n-1 windows.n.setText(str(n)) windows.t.removeColumn(n) windows.valider_bt.clicked.connect ( createTab ) windows.supprimer_bt.clicked.connect ( supprimerTab ) 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