bonsoir ;
pouvez vous m'aider a crée un programme sous matlab
qui prend en argument un tableau d'entiers de taille n et qui le
modie de telle sorte que tous les entiers pairs se retrouvent avant les entiers impairs.
bonsoir ;
pouvez vous m'aider a crée un programme sous matlab
qui prend en argument un tableau d'entiers de taille n et qui le
modie de telle sorte que tous les entiers pairs se retrouvent avant les entiers impairs.
Bonjour,
Par quoi es-tu bloqué ?
Montre-nous ce que tu as déjà commencé à programmer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function t=pairim(t) p=1; imp=1; for i=1:length(t) if mod(i,2)==0 t(i)=t(i-1); p=p+1; else t(i)=t(i+1); imp=imp-1; end end
Ta ligne if mod(i,2)==0 est fausse, je t'invite à regarder ce message.
Dans tes lignes t(i)=t(i-1); et t(i)=t(i+1);, il te faudrait plutôt penser à faire un échange
>> Cette discussion devrait t'aider
Dernière modification par Invité ; 21/01/2012 à 23h22. Motif: Rectification
ca y est j'ai trouve
voila est ce que c correct :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function T = PairsFirst(tab) T=zeros; size = length(tab); x=0; for i=1:size if(mod(tab(i),2) == 0) x=x+1; T(x) = tab(i); end end for i=1:size if(mod(tab(i),2) ~= 0) x=x+1; T(x) = tab(i); end end
Oui ce code fonctionne correctement.
Deux remarques cependant:
- Pense à appliquer ceci en ce qui concerne SIZE. Dans ce cas, il n'y aura pas de problème, mais tu pourras rencontrer une erreur incompréhensible une prochaine fois.
- Pense à pré-allouer ta mémoire
Voici une autre solution plus avancée utilisant l'indexage logique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function tab = PairsFirst(tab) idxPair = ~rem(tab(:),2); Pairs = tab(idxPair); Impairs = tab(~idxPair); tab(:) = [Pairs(:) ; Impairs(:)];
Dernière modification par Invité ; 22/01/2012 à 00h06.
La meilleure solution pour tester la parité d'un entier consiste à utiliser BITGET pour récupérer la valeur du bit de poids faible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 >> x = 0:10 x = 0 1 2 3 4 5 6 7 8 9 10 >> bitget(x,1) ans = 0 1 0 1 0 1 0 1 0 1 0
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager