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

  FORUM HardWare.fr
  Programmation

  tri par paire(pascal)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tri par paire(pascal)

n°114896
jawad
Posté le 20-03-2002 à 13:07:29  profilanswer
 

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;


---------------
Master [:viiz] c'est moi
mood
Publicité
Posté le 20-03-2002 à 13:07:29  profilanswer
 

n°114940
nero27
Posté le 20-03-2002 à 14:06:45  profilanswer
 

c bon, c doit pas etre la méthode la plus rapide !

n°114972
jawad
Posté le 20-03-2002 à 14:56:41  profilanswer
 

si vous avez autre chose a me proposer allez y !


---------------
Master [:viiz] c'est moi
n°114976
HelloWorld
Salut tout le monde!
Posté le 20-03-2002 à 15:05:59  profilanswer
 

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 */


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°114983
jawad
Posté le 20-03-2002 à 15:11:30  profilanswer
 

div donne le reste de la division entiere si je ne me trompe pas :??:


---------------
Master [:viiz] c'est moi
n°115010
BigBrother
pulse powered - useless post
Posté le 20-03-2002 à 15:34:43  profilanswer
 

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 ?


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°115013
jawad
Posté le 20-03-2002 à 15:40:18  profilanswer
 

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


---------------
Master [:viiz] c'est moi
n°115023
BigBrother
pulse powered - useless post
Posté le 20-03-2002 à 15:46:47  profilanswer
 

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.


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°115033
jawad
Posté le 20-03-2002 à 15:52:07  profilanswer
 

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]


---------------
Master [:viiz] c'est moi
n°115034
BigBrother
pulse powered - useless post
Posté le 20-03-2002 à 15:53:49  profilanswer
 

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


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
mood
Publicité
Posté le 20-03-2002 à 15:53:49  profilanswer
 

n°115041
jawad
Posté le 20-03-2002 à 16:00:11  profilanswer
 

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


---------------
Master [:viiz] c'est moi
n°115130
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 20-03-2002 à 17:33:17  profilanswer
 

salut,
 
oui tu utilises le modulo.
Pour le ET binaire, j'avoue ne pas comprendre, qui pourrait m'expliquer ??? :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°115171
HelloWorld
Salut tout le monde!
Posté le 20-03-2002 à 18:19:25  profilanswer
 

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


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°115250
jawad
Posté le 20-03-2002 à 20:32:51  profilanswer
 

impair est une fonction pascal?
si oui je ne le savais pas


---------------
Master [:viiz] c'est moi
n°115321
LeGreg
Posté le 20-03-2002 à 22:16:25  profilanswer
 

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

n°115336
BigBrother
pulse powered - useless post
Posté le 20-03-2002 à 23:46:41  profilanswer
 

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:


---------------
L'invariance de l'univers lorsqu'on change de referentiel...
n°115340
wave
Posté le 20-03-2002 à 23:50:22  profilanswer
 

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.

n°115432
deepcore
Posté le 21-03-2002 à 09:28:18  profilanswer
 

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).


---------------
"Si ça peut déconner, ça va déconner..."

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  tri par paire(pascal)

 

Sujets relatifs
Pascal : faire un timer[Pascal + openGL] Comment on fait ?
[Pascal/Delphi] déclarer des nouvelles variables dans un whileReceptionner des donnees en pascal
[Pascal] Client/Seveur sous Linux.....Programmation d'un Compilateur Pascal en C... AU SECOURS !!!
passer du langage c à pascal[Pascal] Prob connexion avec socket..........
je cherche un interpreteur pcode pour compiler un prog pascal..Question idiote de débutant en pascal
Plus de sujets relatifs à : tri par paire(pascal)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR