Programmation en c

Fermé
lalati Messages postés 83 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 avril 2013 - 3 janv. 2010 à 17:50
lalati Messages postés 83 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 avril 2013 - 3 janv. 2010 à 21:27
bonsoir à tous;


voilà les amis j'ai un petit problème avec un exercice que je dois faire , espérant que quelqu'un de vous pourra m'aider
voilà l'énoncé :

soit une matrice de n lignes et de m colonnes, écrire a programme qui répond aux questions suivantes:
1-trier la matrice d'entiers, ligne par ligne, indépendamment les une des autres.
2-trier tous les éléments de cette matrice.
en utilisant le tri par insertion (en langage c)

je me contenterai d'une orientation pour résoudre ce problème
merci de bien vouloir me répondre

1 réponse

lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
3 janv. 2010 à 20:50
salut,
pour la premiere question, tu considere chaque ligne comme un tableau et tu fais un trie dessus. ainsi tu fais 2 boucle imbriqué et dans la deuxieme (qui correspond aux colonnes) tu fais le tri.
pour la deuxieme question tu fais un parcours de ta matrice, et pour chaque element tu le place au bon endroit. pour ce faire, il te faut les 2 boucles de parcours de ta matrice, dans la deuxieme tu récupere l'élément a trié, le mieux c'est que tu fasse d'abord une verification "inverse" sur l'element precedent pour pas faire un parcours qui sert a rien, et tu fais un parcours du debut de la boucle a l'indice de l'element courant et tu place ton element ou tu veux quand tu l'as trouvée en faisant un decallage. si la verification est bonne tu ne fais rien.
je ne sais pas si j'ai été assez claire donc je vais de faire un exemple pour la deuxieme question :

for(i = 0; i<n; i++)
for(j = 0; j<m; j++)
//recuparation de l'element courant
tmp = tab[i][j]
//verification sur l'element precedent
if(tmp '<' ou '>' (ça depend du sens du tri) tabt[i][j-1])
//parcours de la matrice avec tri
for(k = 0; k<i; k++)
for(l = 0; l<j; l++)
...(faire le tri et le decallage)


j'espere t'avoir aidé
0
lalati Messages postés 83 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 6 avril 2013 4
3 janv. 2010 à 21:27
bonsoir
merci beaucoup pour votre aide
bonne fin de soiréee ;



Ça prend une minute pour remarquer quelqu’un, une heure pour l’apprécier une journée pour l’aimer mais toute une vie pour l’oublier
0