Je suis un débutant qui tente de faire une exercice en python.
Créez :
Une méthode affichageMat, qui prend en paramètre une matrice et l’affiche ligne, par ligne.
Une méthode trier, qui prend en paramètre une matrice et la trie en utilisant un tri croissant sur toutes les colonnes de la matrice. (chaque colonne doivent être trier en décroissant)
Un programme principal, qui lit (demande) d’abord la taille d’une matrice (0<taille,<11), puis génère aléatoirement des nombres entiers dans cette matrice carrée. Tester ensuite dans ce programme principal les deux méthodes précédentes, en affichant la matrice avant et après le tri. On utilisera qu’une matrice dans le programme principal.
Ainsi, si vous choisissez la taille 5, par exemple et que la matrice générée est comme suit :
# création de deux matrices à l'aide d'input
affichageMat = int(input("Entrez la taille que vous voulez"))
if affichageMat <= 0:
print("Le chiffre doit être supérieure à 0")
elif affichageMat > 11:
print("Le chiffre doit être inférieur à 11")
else:
import random
A = []
# pour créer la matrice d'appartir ce que l'utilisateur saisit
for i in range(affichageMat):
a = []
for j in range(affichageMat):
a.append(int(random.randint(0, 50)))
A.append(a)
print("Voici la matrice avant le tri :")
# pour ajouter des valeurs aléatoires
for i in range(affichageMat):
for j in range(affichageMat):
print(A[i][j], end=" ")
print()
print("Voici la matrice après le tri :")
J'ai réussi à créer un input dans laquelle un utilisateur peut entrer un chiffre entre 0 et 11 et qui génère une matrice carrée selon la taille que l'utilisateur saisit. Le problème que j'ai est que je ne sais pas comment mettre en ordre décroissant chaque colonne et ensuite afficher la matrice avec le tri.
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 202274 11 avril 2020 à 17:23
Bonjour,
Pour manipuler les matrices il faut utiliser la bibliothèque NumPy.
Si numpy n'est pas installé, en mode administrateur dans une console python passez la commande suivante:
python -m pip install numpy
Exemple de code
# -*- coding: UTF8 -*-
import numpy as np
valeurs = [5, 15, 34, 21, 11,
3, 11, 75, 3, 56,
19, 30, 24, 95, 99,
10, 24, 43, 45, 65,
45, 87, 18, 78, 74]
#Création du tableau en colonnes 5X5
mat = np.array(valeurs).reshape(5,5)
print(mat)
#Lire la colonne 0
col0 = mat[:,0]
print("\nColonne 0\n",col0)
#Tri ascendant par colonnes
mat_tri=np.sort(mat,axis=0) #Axe du tri 0=colonnes 1=lignes
print("\nTri Asc par colonnes\n",mat_tri)
#Inversion de la matrice pour obtenir un tri descendant
print("\nTri Desc par colonnes\n",mat_tri[::-1])
11 avril 2020 à 18:30