Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4772 connectés 

 


Dernière réponse
Sujet : tri par paire(pascal)
deepcore

wave a écrit a écrit :

commence par créer 2 listes chainées vides, une pour les nombres pairs et une autre pour les nombres impairs.
ensuite tu prends chaque nombre et tu l'ajoute dans la bonne liste.  




 
Pas vraiment optimisé au niveau taille mémoire ni longueur du code. Un tableau, une variable temporaire, et un bon vieux tri-bulle (modifié pour l'occasion).


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
deepcore

wave a écrit a écrit :

commence par créer 2 listes chainées vides, une pour les nombres pairs et une autre pour les nombres impairs.
ensuite tu prends chaque nombre et tu l'ajoute dans la bonne liste.  




 
Pas vraiment optimisé au niveau taille mémoire ni longueur du code. Un tableau, une variable temporaire, et un bon vieux tri-bulle (modifié pour l'occasion).

wave commence par créer 2 listes chainées vides, une pour les nombres pairs et une autre pour les nombres impairs.
ensuite tu prends chaque nombre et tu l'ajoute dans la bonne liste.
BigBrother

jawad a écrit a écrit :

 
:??: qui te fais chier  




 
les profs de prog dans mon ecole d'ingé :gun:
bon score ce matin en amphi (de prog): 45 personnes sur 110 (presence censée obligatoire)...on se croirait en fac :lol:

LeGreg et s'il est divisible par 3 eheh ;)?
 
test classique: mon nombre est une puissance de deux:
x & (x-1) ?= 0
 
Bon c'est totalement OT desole de vous embeter..
 
LEGREG
jawad impair est une fonction pascal?
si oui je ne le savais pas
HelloWorld un nombre impair aura son bit de poids faible à 1
un nombre pair à 0
3 => 11    15 => 1111
2 => 10    18 => 10010
 
donc il suffit de tester ce bit pour savoir si le nombre est pair ou pas
on fait ca a l'aide d'un ET
 
impair = nombre ET 0000000...00001
soit :
impair = (nombre & 1)
 
si impair vaut 1, alors c'est impair, sinon c'est pair
juju_le_barbare salut,
 
oui tu utilises le modulo.
Pour le ET binaire, j'avoue ne pas comprendre, qui pourrait m'expliquer ??? :hello:
jawad

BigBrother a écrit a écrit :

merde la modularité, je l'avais oubliée celle-la :o Des semaines qu'on nous fait chier avec ce concept !  




:??: qui te fais chier

BigBrother merde la modularité, je l'avais oubliée celle-la :o Des semaines qu'on nous fait chier avec ce concept !
jawad

BigBrother a écrit a écrit :

j'aurais toujours appris un truc :)
euh en fait vu que les tablo sont statiques, tu connais les indices vu que c toi qui les a defini de maniere definitive, pas la peine de faire appel a une fonction pour ça.  




oui ,ils sont statique,mais puisque l'interais de faire une procedure c'est qu'elle soit exportable,avec low et high tu peut utiliser n'importe quel tablau,meme si tes indices sont des caracters :sol:

 

[jfdsdjhfuetppo]--Message édité par jawad--[/jfdsdjhfuetppo]

BigBrother j'aurais toujours appris un truc :)
euh en fait vu que les tablo sont statiques, tu connais les indices vu que c toi qui les a defini de maniere definitive, pas la peine de faire appel a une fonction pour ça.
jawad

BigBrother a écrit a écrit :

nan ça donne le quotient, il faut utiliser mod qui lui donne le reste.
 
low(t) et high(t) c quoi ? les indices de debut et de fin de ton tablo ?  




oui,low et high donne les indice extremes de t

BigBrother nan ça donne le quotient, il faut utiliser mod qui lui donne le reste.
 
low(t) et high(t) c quoi ? les indices de debut et de fin de ton tablo ?
jawad div donne le reste de la division entiere si je ne me trompe pas :??:
HelloWorld J'ai tout de même un doute avec le test de parité

Code :
  1. if((t[k] div 2)<>0) then


 
6 / 2 = 3 <> 0
5 / 2 = 2 <> 0 :(
 
faut utiliser le modulo, ou mieux, faire un ET binaire pour tester le bit de poids faible
maintenant en Pascal, je sais pas le faire ...
en C :

Code :
  1. if((t[k] & 1) == 1)    /* & = ET binaire */
  2.         /* impair */
  3.     else
  4.         /* pair */

jawad si vous avez autre chose a me proposer allez y !
nero27 c bon, c doit pas etre la méthode la plus rapide !
jawad salut a tous on ma demender une procedure qui tri un tablau d'entier en metant les impaire devant et les paire derriere(l ordre des nombres n a aucunne importance.que pencez vous de
 
procedure tri_paire(var t:tablau);
var tampon,k,position:integer;
begin
     position:=0;
     for k:=low(t) to high(t) do
 if ((t[k]div2)<>0) then   :gun:  
  begin
       tampon:=t[position];
       t[position]:=t[k];
       t[k]:=tampon;
       inc(position)
  end
end;

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)