...

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

...

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:29, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:29, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

intéréssant :wink:
Image
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:30, modifié 1 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Moi qui me faisait une joie d'aller le voir ! :roll:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:30, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:31, modifié 1 fois.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:31, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

heu!! je veux pas chercher la polémique mais ils me parrait tres compliqué
d'usée de peek et poke pour faire un echange de variable !!

esce vraiment plus rapide que d'utiliser 3 variables
ou meme de 2 variables pour les contenus numerique ???

ha moins que le but soit le chalenge intellectuel , dans ce cas je comprend !
:)
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

Dobro,

Les Peek / Poke coûtent + cher que le passage par des variables oui ... à ma connaissance.

Voici la preuve ?!

Code : Tout sélectionner

Procedure SwapB(a.l, b.l) ; de Dr Dri
  c.b 
  c = PeekB(a) 
  PokeB(a, PeekB(b)) 
  PokeB(b, c) 
EndProcedure 

Procedure Swap(*a, *b) ; Pour bien comprendre
  a = PeekL(*a)
  b = PeekL(*b)
  PokeL(*a, b)
  PokeL(*b, a)
EndProcedure

Procedure MySwapL(*a, *b) ; Et voilà ce que je fais MOOOOA ! Toujours le principe d'évitement des Peek / Poke
  !  MOV    eax,dword [esp] ; eax = *a
  !  MOV    ecx,[eax] ; ecx = a
  !  MOV    ebx,dword [esp+4] ; ebx = *b
  !  MOV    edx,[ebx] ; edx = b
  !  MOV    [eax], edx ; *a = b
  !  MOV    [ebx], ecx ; *b = a
EndProcedure

Count = 2500000 ; Je fixe Count à "l'infini", valeur assez grande pour faire un bon test et paire, comme ça la dernière itération devrait donner pour résultat deux valeurs permutées

OpenConsole()

tz = ElapsedMilliseconds() : a = 13 : b = 12 : For i = 1 To Count : SwapB(@a, @b) : Next : PrintN(Str(ElapsedMilliseconds() - tz) + " " + Str(a) + " " + Str(b))
tz = ElapsedMilliseconds() : a = 13 : b = 12 : For i = 1 To Count : Swap(@a, @b) : Next : PrintN(Str(ElapsedMilliseconds() - tz) + " " + Str(a) + " " + Str(b))
tz = ElapsedMilliseconds() : a = 13 : b = 12 : For i = 1 To Count : MySwapL(@a, @b) : Next : PrintN(Str(ElapsedMilliseconds() - tz) + " " + Str(a) + " " + Str(b))

While Inkey() = "" : Wend

CloseConsole()

End
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:32, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ben je voulai juste (son prenom) savoir si c'etait pas plus simple de faire

si
a=5
b=8

-----algorithme tres complexe !!------------
c=a
a=b
b=c
------------------
resultat

a=8
b=5
avantage !! ça marche avec tout type de variables !!!

:D

faut mettre ça dans le site des codes !!! :)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

...
Dernière modification par Dr. Dri le lun. 10/oct./2005 9:33, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Dr. Dri a écrit : L'algo je veux bien le faire mais y faudrait juste qu'il y ai des marcos paramètrées en PB...
Dri
c'est pas prevu ça dans une prochaine version de pure ? :)
Répondre