tri par paire(pascal) - Programmation
Marsh Posté le 20-03-2002 à 14:56:41
si vous avez autre chose a me proposer allez y !
Marsh Posté le 20-03-2002 à 15:05:59
J'ai tout de même un doute avec le test de parité
Code :
|
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 :
|
Marsh Posté le 20-03-2002 à 15:11:30
div donne le reste de la division entiere si je ne me trompe pas
Marsh Posté le 20-03-2002 à 15:34:43
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 ?
Marsh Posté le 20-03-2002 à 15:40:18
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
Marsh Posté le 20-03-2002 à 15:46:47
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.
Marsh Posté le 20-03-2002 à 15:52:07
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
[jfdsdjhfuetppo]--Message édité par jawad--[/jfdsdjhfuetppo]
Marsh Posté le 20-03-2002 à 15:53:49
merde la modularité, je l'avais oubliée celle-la Des semaines qu'on nous fait chier avec ce concept !
Marsh Posté le 20-03-2002 à 16:00:11
BigBrother a écrit a écrit : merde la modularité, je l'avais oubliée celle-la Des semaines qu'on nous fait chier avec ce concept ! |
qui te fais chier
Marsh Posté le 20-03-2002 à 17:33:17
salut,
oui tu utilises le modulo.
Pour le ET binaire, j'avoue ne pas comprendre, qui pourrait m'expliquer ???
Marsh Posté le 20-03-2002 à 18:19:25
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
Marsh Posté le 20-03-2002 à 20:32:51
impair est une fonction pascal?
si oui je ne le savais pas
Marsh Posté le 20-03-2002 à 22:16:25
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
Marsh Posté le 20-03-2002 à 23:46:41
jawad a écrit a écrit : qui te fais chier |
les profs de prog dans mon ecole d'ingé
bon score ce matin en amphi (de prog): 45 personnes sur 110 (presence censée obligatoire)...on se croirait en fac
Marsh Posté le 20-03-2002 à 23:50:22
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.
Marsh Posté le 21-03-2002 à 09:28:18
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).
Marsh Posté le 20-03-2002 à 13:07:29
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
begin
tampon:=t[position];
t[position]:=t[k];
t[k]:=tampon;
inc(position)
end
end;
---------------
Master [:viiz] c'est moi