Page 1 sur 2

Problème de conversion

Publié : jeu. 20/mai/2004 12:16
par Good07
Bonjour à tous ! :D

Un petit sujet de réflexion: 8O

J'ai trouvé un petit programme écrit en javascript (en fait en JamajicSript).Je me suis dit vu la longueur du programme qu'il serait très facile de le transformer en Pure Basic. En fait je me heurte à un petit problème de tableau. Je ne vois pas comment passer un tableau (myattractors) dans les paramètres d'une procedure. je m'explique peut être mal et un bon exemple vaut mieu qu'un long discours.

Merci d'avance pour vos explications.

André.

[/code]

// listing Jamajic....

Var x=0;
Var y=0;

Function Sierpinski(attr,loops)
{
x=attr[0,0];
y=attr[0,1];
While(loops--)
{
attr_choisi=Random(3);
x=(attr[attr_choisi,0]+x)/2;
y=(attr[attr_choisi,1]+y)/2;
SetPixel(x,y);
}
}

Function SetArrayPoints(attr,x1,y1,x2,y2,x3,y3)
{
attr[0,0]=x1;
attr[1,0]=x2;
attr[2,0]=x3;
attr[0,1]=y1;
attr[1,1]=y2;
attr[2,1]=y3;
}

myattractors[0,0]=0;
SetArrayPoints(myattractors,0,480,320,0,640,480);
Sierpinski(myattractors,100000);
While(TRUE);

Le mien en Pure....

Code : Tout sélectionner


; La convertion en Pure Basic ?
; 
;
Dim  attr.b(2,2)
Dim myattractors.b(2,2)


If OpenWindow(0, 0, 0, 640, 480, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Sierpinski") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

Procedure Sierpinski(attr,loops)
x=attr(0,0)
y=attr(0,1)
StartDrawing(WindowOutput())
While loops<>0
attr_choisi=Random(2)
x=(attr(attr_choisi,0)+x)/2
y=(attr(attr_choisi,1)+y)/2
Plot(x,y,RGB(0,0,0))
loops=loops-1
Wend
StopDrawing()
EndProcedure

Procedure Setarraypoints(attr,x1,y1,x2,y2,x3,y3)
attr(0,0)=x1
attr(1,0)=x2
attr(2,0)=x3
attr(0,1)=y1
attr(1,1)=y2
attr(2,1)=y3
EndProcedure



Setarraypoints(myattractors(),0,480,320,0,640,480)
Sierpinski(myattractors(),100000)


Repeat
  Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow
End


; ExecutableFormat=Windows
; CursorPosition=4
; FirstLine=1
; EOF

Publié : jeu. 20/mai/2004 12:38
par nico
C'est vraiment très bien traduit, juste deux rectifications:

Code : Tout sélectionner

Dim  attr.l(2,2) 
Dim myattractors.l(2,2) 
car les variables Byte(.b) limite les nombres à (-128 à +127)

Sympa!

:)

Publié : jeu. 20/mai/2004 12:41
par Good07
Ne cherchez plus j'ai trouvé la réponse. Ou plutôt j'ai trouvé pourquoi mon listing en PureBasic ne fonctionnait pas. En première ligne j'avais dimensionné mon tableau (Dim attr.b(2,2)) en byte alors que celui-ci reçoit des valeurs supérieures à 256. :oops:
Donc vous supprimez le .b et ça fonctionne sans problème, même si je n'ai pas tout compris...

Merci :D

André.

Publié : jeu. 20/mai/2004 12:44
par Good07
Merci Nico

On a posté les réponses ensemble et tu as tout juste.

Merci pour ton aide. :D

Par contre il faudra remettre à l'heure l'horloge du forum elle a deux heures de retard :mad:

Publié : jeu. 20/mai/2004 12:55
par Chris
Good07 a écrit :Merci Nico

On a posté les réponses ensemble et tu as tout juste.

Merci pour ton aide. :D

Par contre il faudra remettre à l'heure l'horloge du forum elle a deux heures de retard :mad:
Le forum n'a pas deux heures de retard, l'heure est donnée au format GMT (heure du méridien de Greenwitch).

C'est nous qui avons deux heure d'avance.
Une heure à cause du décalage horaire, et une à cause de l'heure d'été.

Par contre, tu peux aller modifier ça dans ton profil.

Chris :)

Publié : jeu. 20/mai/2004 12:57
par cederavic
et tu peut metre GMT +2 dan ton profil ;)

Publié : jeu. 20/mai/2004 12:59
par Chris
C'est exactement ce que je viens de dire! :lol:

Chris :)

Publié : jeu. 20/mai/2004 13:00
par nico
Oui mais l'heure n'a de sens que si on se base tous sur la même référence sinon ça devient n'importe quoi!

:)

Publié : jeu. 20/mai/2004 13:07
par Chris
nico a écrit :Oui mais l'heure n'a de sens que si on se base tous sur la même référence sinon ça devient n'importe quoi!

:)
Pas du tout, parce que le code du forum convertit l'heure à laquelle tu poste en GMT, et la reconvertit ensuite selon l'affichage que chaque client choisit.

Si tu poste un message à 12 h chez toi, avec GMT+2h, un client qui a GMT+6 heures verra que tu as posté un message à 16 heures

Et si il te réponds à 16h05 chez lui, tu verras son message posté à 12h05 chez toi.

Chris ;)

Publié : jeu. 20/mai/2004 13:13
par nico
OOOuupsssss....... :oops:

Ce serait bien quand même que l'on soit tous par défaut lorsqu'on s'inscrit à l'heure nationale.

:)

Publié : jeu. 20/mai/2004 13:16
par Chris
nico a écrit :OOOuupsssss....... :oops:

Ce serait bien quand même que l'on soit tous par défaut lorsqu'on s'inscrit à l'heure nationale.

:)
Oui, mais bon! Tu fais le changement une fois dans ton profil, et après t'est tranquille, ca reste d'une session à l'autre.

Chris :)

Publié : jeu. 20/mai/2004 13:40
par nico
Oui mais pour tout le monde (enfin pour tous les Fr)

c'est pas que c'est gênant, ce serait juste bien!

:)

Publié : jeu. 20/mai/2004 20:35
par Good07
Bonsoir à tous !

Désolé pour la polémique sur l'heure, mais je n'avais pas fait le rapprochement avec l'heure d'été. OK pour GMT+2 mais au mois d'octobre il faudra faire GMT+1.
Je reste donc à l'heure GMT l'essentiel est de le savoir.

A plus et merci encore.

Ce forum est vraiment super et les membres vraiment sympatiques. :D

Publié : ven. 21/mai/2004 10:53
par Backup
Chris a écrit : C'est nous qui avons deux heure d'avance.
Une heure à cause du décalage horaire, et une à cause de l'heure d'été.

Le forum n'a pas deux heures de retard, l'heure est donnée au format GMT (heure du méridien de Greenwitch).
les anglais et nous les français avont le meme méridien !!!
avant ce meridien, on l'appelait "Méridien de Paris" !!!! :D
ont etaient chauvin avant !

l'explication viens qu'en heure d'hiver = zoulou+1 (zoulou etant l'heure solaire)
nous en france on a l'heure qui nous a été imposé par l'allemagne nazi !!!
c'est la raison pour laquelle les anglais vivent en hiver a l'heure solaire
car comme vous le savez, les allemands n'ont pas reussi a l'epoque, a envahir leur ile (aux anglais)

et que depuis la fin de la guerre (temporaire puisque ça n'est qu'un armistice,en effet le traité de paix n'ayant toujours pas encore été signé, officiellement ont est toujours en guerre avec l'allemagne, on a fait une treve c'est tout!) , nous avons gardé l'heurs imposé par l'allemagne nazi ..
nous y avont peut etre vu un avantage !!!????

voici donc l'explication du decalage d'une heure que nous avons en hivers
pour l'heure d'été, c'est une raison pseudo economique !

:D

puisqu'on est dans les méridien je vais sortir ma science !!

la definition du metre etalon est :
la un dix millionieme partie du quard du méridien terrestre de green sandwich .. :D

Publié : ven. 21/mai/2004 12:23
par Heis Spiter
(temporaire puisque ça n'est qu'un armistice,en effet le traité de paix n'ayant toujours pas encore été signé, officiellement ont est toujours en guerre avec l'allemagne, on a fait une treve c'est tout!)
Faux, la paix est signée quand un armistice est signé, pusique le pays qui demande et qui signe reconnait sa faiblesse et rend les armes ! Ce n'est pas une trève.