A voir également:
- Programmation fonction tri sous octave
- Fonction si et - Guide
- Tri sur excel - Guide
- Logiciel tri photo - Guide
- Gnu octave - Télécharger - Édition & Programmation
- Application de programmation - Guide
4 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
Modifié par Char Snipeur le 2/12/2010 à 11:04
Modifié par Char Snipeur le 2/12/2010 à 11:04
function tri1 (i,j,T) K=length(T) for j=1:K y=j for i=j:K if T(i+1)<T(y) y=i+1 end end end insertion (y,j) ans=T
il manque pas mal de chose en effet. Je pense que tu n'as pas du écrire l'algorithme avant de coder.
Il y a pas mal d'érreurs dans un si petit code :
à quoi servent i et j en paramètre de tri1 ?
la boucle sur les "i" devrais s'arrêter à K-1, sinon tu risques le débordement de tableaux.
Du coup, ta boucle sur j ne devrais pas aller jusqu'à K (K-1 ou K-2... à réfléchir).
Pour finir, tu appels la fonction "insertion" sans le bon nombre de paramètre et en plus tu ne récupère pas la sortie.
Au final, tu n'appelles qu'une fois "insertion" dans "tri1" alors que tu devrais en faire beaucoup plus.
D'ailleurs, je ne suis pas trop sur du comportement de mettre la même variable ("T") en tant qu'entrée et sortie dans la fonction "insertion", il vaut mieux utiliser deux noms différents.
Ce que tu doit faire :
- pour la fonction insertion, la corriger
- pour la fonction tri1, mieux vaut tout effacer et recommencer en réfléchissant posément.
Un autre petit détail, pas de ta faute. "insertion" est un mauvais mot pour décrire la fonction, il vaudrait mieux parler de déplacement. L'insertion sous entend (classiquement en programmation) qu'on apporte un élément nouveau au tableau.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
Modifié par Char Snipeur le 2/12/2010 à 09:46
Modifié par Char Snipeur le 2/12/2010 à 09:46
que veux tu qu'on te réponde ?????
Tu veux l'exercice tout fait ? à part ça, je ne vois pas car tu ne donnes pas assez d'éléments pour qu'on puisse t'aider.
En mécanique, tu risques d'avoir à faire avec la programmation très souvent (je suis mécanicien). Un guide : retourne au base, écrit l'algorithme petit à petit, décompose en tâche élémentaires.
Tu veux l'exercice tout fait ? à part ça, je ne vois pas car tu ne donnes pas assez d'éléments pour qu'on puisse t'aider.
En mécanique, tu risques d'avoir à faire avec la programmation très souvent (je suis mécanicien). Un guide : retourne au base, écrit l'algorithme petit à petit, décompose en tâche élémentaires.
ma fonction insertion fonctionne jusque la tout va bien... c'est ma fontion tri1 qui m'embete : voila mes fonctions :
T=le tableau de 5 chiffres, ex : T=[8 7 5 2 1]
function T=insertion (i,j,T)
if i>j
x=T(i)
n=i-1
while n>0
T(n+1)=T(n)
n=n-1
end
T(j)=x
elseif i<j
K=length(T)
x=T(i)
n=i+1
while n<K
T(n-1)=T(n)
n=n+1
end
T(j)=x
end
end
function tri1 (i,j,T)
K=length(T)
for j=1:K
y=j
for i=j:K
if T(i+1)<T(y)
y=i+1
end
end
end
insertion (y,j)
ans=T
T=le tableau de 5 chiffres, ex : T=[8 7 5 2 1]
function T=insertion (i,j,T)
if i>j
x=T(i)
n=i-1
while n>0
T(n+1)=T(n)
n=n-1
end
T(j)=x
elseif i<j
K=length(T)
x=T(i)
n=i+1
while n<K
T(n-1)=T(n)
n=n+1
end
T(j)=x
end
end
function tri1 (i,j,T)
K=length(T)
for j=1:K
y=j
for i=j:K
if T(i+1)<T(y)
y=i+1
end
end
end
insertion (y,j)
ans=T