30

Tu dis qu'elle ne marche pas. Pour tous les nombres, ou seulement pour les nombres négatifs ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

31

J'ai trouvé une autre méthode de convertion de base sans modulo et avec celle-ci je peut aller au delà de 32 bits mais j'ai un bug à corriger. En effet pour une image de 32 en largeur:

01010101010101011111111111111111

Donc voici ceci en base 2 en binaire sur 32 bits mais lorsque je passe en 8 bits et même 16 il y a certain bit qui sont inversé mais je vais trouver le problème. smile

Vriament merci pour cette méthode de modulo car en effet elle fonctionne correctement c'est juste mon algo de traitement d'image qui merde un peu. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

32

heu g pas tout lu, mais g vu qu'a un moment vous vous preniez la tete pour faire un modulo 0xffffffff sur un nbr 64 bits?
c'est pas possible en vb de faire un truc du genre:

long long var_64;
unsigned int *p_uint;
unsigned int le_modulo;

var_64 = le_gros_nombre;
p_uint = (unsigned int*)&var_64;
le_modulo = *(++p_uint);

?

ou selon quel endian c'est, meme pas besoin du ++
non?
et pareil pour modulo 0xffff, ou 0xff, sauf qu'a la place d'un unsigned int* ca serait un unsigned short* ou unsigned char*...
et que ca serait pas + 1 mais + 3 ou + 7
mais bon, je c pas du tout si c'est faisable en vb...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

33

Merci beaucoup sBibi car j'ai trouvé une autre méthode et maintenant mon convertisseur fonctionne très bien mais cette technique de modulo j'en aurait besoin dans d'autres programmes.smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

34

Ben, lis les messages plus haut. Je t'ai donné les formules qu'il faut.

D'ailleurs, une solution qui marche bien pour faire des calculs sur de très grands nombres en VB est de stocker les nombres dans des chaînes de caractères et d'utiliser Mid pour extraire un ou plusieurs chiffres à la fois sur lesquels calculer avec les types d'entiers. On réunit ensuite le résultat, pour la plupart des opérations avec &, mais dans ton exemple du modulo avec une addition d'entiers. Regarde les sources de Tokens89 OCX (http://members.chello.at/gerhard.kofler/kevin/francais/pcprogs/) pour des exemples de calculs sur des chaînes de caractères. (Je les utilise pour tokéniser/détokéniser les entiers de AMS.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

35

Non j'ai tout simplement abandonné cette méthode de modulo par calcul pour faire une convertion avec des chaîne de caractères, car le programme bloqué autre part!

Mais effectivement les chaînes de caractères sont très utile. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

36

Plutôt que de bosser sur des chaînes (base 10), pourquoi ne pas bosser en base 256 (on utilise toutes les possibilités de l'octet plutôt que seulement 10) ?
Ce serait plus rapide et moins gourmand en mémoire.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

37

Parce qu'après il faut faire la conversion pour l'affichage, donc il faut quand-même faire des calculs sur les chaînes en base 10. Pour Tokens89 OCX, les calculs que je fais se limitent déjà à la conversion pour l'affichage et à la conversion inverse (le format tokénisé de AMS fait exactement ce que tu proposes), on ne peut pas faire mieux.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

38

Dans le cas de geogeo, où il doit faire beaucoup de divisions (modulos), le calcul en base 256 n'est pas plus rapide (je ne crois pas qu'il doive afficher le résultat) ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

39

Pas forcément. S'il fait ça, il doit traîter les caractères un par un, alors que moi, je convertis des groupes de chiffres en des entiers et je fais les calculs dessus. Les routines de conversion sont dans le runtime VB, donc elles sont plus rapides que du code VB.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

40

Il n'a rien à convertir, son nombre est déjà en base 256. Il décompose son long long en 8 chiffres allant de 0 à 256.
Ca revient à ce qu'on disait page précédente, sauf qu'on décompose en octets plutôt qu'en longs.
Je dois me tromper...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

41

Si tu veux (par exemple) additionner 2 nombres stockés sous forme de chaînes de caractères (et trop longs pour rentrer entièrement dans un type entier, sinon on n'utiliserait pas une chaîne de caractères!), soit tu le fais chiffre par chiffre, soit tu le fais groupe de chiffres par groupe de chiffres. La deuxième solution est normalement plus rapide en VB. Mais elle ne marche qu'avec une chaîne codée en décimal, parce que c'est ce que les routines de conversion chaînes de caractères <-> nombres de VB attendent
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

42

C'est à dire qu'il n'est pas possible d'accéder aux octets qui constituent un nombre aussi facilement qu'en C (nombre >> 8*n°_octet) ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

43

En VB il n'est pas possible de créer des pointeurs et donc d'accéder à des nombres sous forme d'octets.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

44

Thibaut a écrit :
C'est à dire qu'il n'est pas possible d'accéder aux octets qui constituent un nombre aussi facilement qu'en C (nombre >> 8*n°_octet) ?

Ce n'est pas ça le vrai problème (Asc(Mid(s,n,1)) suffit). Le problème est que ce que tu proposes nécessite de faire un Asc(Mid(s,n,1)) sur chaque chiffre. Ce que je propose permet de faire par exemple un CLng(Mid(s,9*n,9)), donc 9 chiffres à la fois. Même si tu prends des chiffres en base 256, ça me fait 3,7 fois moins de chiffres/groupes de chiffres à traîter que toi, donc c'est plus rapide (comme déjà dit, le CLng est beaucoup plus rapide que tout ce qu'on peut coder en VB). Et puis il y a le type Decimal (virgule fixe à 4 chiffres décimaux après la virgule et à grande rangée, rangée qui permet de travailler sur des groupes de jusqu'à 29 chiffres) qui permet à ma méthode de traîter encore plus de chiffres à la fois. Voilà le code que j'utilise dans Tokens89 OCX, peut-être que ça te permettra de comprendre mieux:
Private Function StrAdd$(ByVal S1$, ByVal S2$)
Dim i&, S3$, S4$, S5$
If Len(S1) > Len(S2) Then
S2 = String(Len(S1) - Len(S2), "0") & S2
Else
S1 = String(Len(S2) - Len(S1), "0") & S1
End If
StrAdd = ""
Dec1 = CDec(0)
For i = Len(S1) To 1 Step -28
S3 = Right(S1, 28)
S4 = Right(S2, 28)
S5 = CDec(S3) + CDec(S4) + Dec1
If Len(S5) = 29 Then
Dec1 = CDec(1)
StrAdd = Mid(S5, 2) & StrAdd
Else
Dec1 = CDec(0)
If Len(S1) > 28 Then
StrAdd = String(28 - Len(S5), "0") & S5 & StrAdd
Else
StrAdd = S5 & StrAdd
End If
End If
If Len(S1) > 28 Then
S1 = Left(S1, Len(S1) - 28)
S2 = Left(S2, Len(S2) - 28)
End If
Next
If Dec1 <> CDec(0) Then StrAdd = Dec1 & StrAdd
End Function

(Ce code est en principe sous licence LGPL. Étant l'auteur, je me permets de ne pas inclure une copie de la licence pour des raisons de place, mais elle est disponible online .)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

45

Quelle horreur, c'est même pas indenté couic Illisible !
Merci quand même de m'avoir expliqué (je crois que j'ai compris) wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

46

J'ai écrit ça en l'an 2000, et à l'époque, je n'aimais pas indenter mon code. smile Maintenant, j'indente toujours, mais avec 1 ou 2 espaces. grin (Je n'aime toujours pas le gaspillage de place, mais j'ai quand-même compris l'intérêt d'indenter, d'où ce compromis. smile)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

47

bah, dans 2 ans tu reviendras sur ce que tu disais (et dit tjrs?) en ce qui concerne l'identation de l'asm et tu trouvera ca bien ouitrilovetrignitoilettes
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

48

Je déteste toujours l'indentation par tabs. Un espace (oui, un seul!) suffit.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

49

mais heu sad
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

50

Ben, regarde:
Private Function StrAdd$(ByVal S1$, ByVal S2$)
 Dim i&, S3$, S4$, S5$
 If Len(S1) > Len(S2) Then
  S2 = String(Len(S1) - Len(S2), "0") & S2
 Else
  S1 = String(Len(S2) - Len(S1), "0") & S1
 End If
 StrAdd = ""
 Dec1 = CDec(0)
 For i = Len(S1) To 1 Step -28
  S3 = Right(S1, 28)
  S4 = Right(S2, 28)
  S5 = CDec(S3) + CDec(S4) + Dec1
  If Len(S5) = 29 Then
   Dec1 = CDec(1)
   StrAdd = Mid(S5, 2) & StrAdd
  Else
   Dec1 = CDec(0)
   If Len(S1) > 28 Then
    StrAdd = String(28 - Len(S5), "0") & S5 & StrAdd
   Else
    StrAdd = S5 & StrAdd
   End If
  End If
  If Len(S1) > 28 Then
   S1 = Left(S1, Len(S1) - 28)
   S2 = Left(S2, Len(S2) - 28)
  End If
 Next
 If Dec1 <> CDec(0) Then StrAdd = Dec1 & StrAdd
End Function

(Ce code est en principe sous licence LGPL. Étant l'auteur, je me permets de ne pas inclure une copie de la licence pour des raisons de place, mais elle est disponible online .)

Ce n'est pas clair comme ça?
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

51

bah moi je trouve que l'identation est pas assez marquee smile
(je prefere quand les blocs sautent un peu plus aux yeux smile)

par exemple:

Private Function StrAdd$(ByVal S1$, ByVal S2$)
  Dim i&, S3$, S4$, S5$
  If Len(S1) > Len(S2) Then
    S2 = String(Len(S1) - Len(S2), "0") & S2
  Else
    S1 = String(Len(S2) - Len(S1), "0") & S1
  End If
  StrAdd = ""
  Dec1 = CDec(0)
  For i = Len(S1) To 1 Step -28
    S3 = Right(S1, 28)
    S4 = Right(S2, 28)
    S5 = CDec(S3) + CDec(S4) + Dec1
    If Len(S5) = 29 Then
      Dec1 = CDec(1)
      StrAdd = Mid(S5, 2) & StrAdd
    Else
      Dec1 = CDec(0)
      If Len(S1) > 28 Then
        StrAdd = String(28 - Len(S5), "0") & S5 & StrAdd
      Else
        StrAdd = S5 & StrAdd
      End If
    End If
    If Len(S1) > 28 Then
      S1 = Left(S1, Len(S1) - 28)
      S2 = Left(S2, Len(S2) - 28)
    End If
  Next
  If Dec1 <> CDec(0) Then StrAdd = Dec1 & StrAdd
End Function


deux espaces je trouve ca tres bien smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

52

Moi aussi, j'ai besoin de bien différencier les blocs, sans avoir à trop me concentrer, donc je préfère une source indentée.

53

Comme tout le monde je pense pareil, une source indenté y a rien de mieux pour relire rapidement son code, il reste plus que les commentaires et c'est parfait mais l'idée de Kevin est bien aussi car pour des lignes de conditions assez longue au autre c'est mieux d'indenter avec 1 espace. Mais personnelement j'effectue jamais d'indentation en VB car le Basic d'origine est assez facile à lire.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

54

Le VB plus facile à lire que le C ? Que je sache, il utilise les mêmes structures algorithmiques smile
Je suis comme sBibi, je trouve 2 espaces être le minimum. C'est vraiment plus clair.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

55

PS: sBibi, tu es en violation de la licence LGPL. Moi, je peux faire ce que je veux vu que je suis l'auteur, mais toi, tu es obligé d'inclure une copie de la licence avec toute copie que tu fais de mon code (LGPL section 1). Tu n'as pas non plus le droit de supprimer la notice qui dit que le code est sous LGPL (cf. encore LGPL section 1).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

56

pffff triroll
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

57

je me demande si la GPL tien dans un post, ou si la limite de taille (si elle existe encore) ne le coupe pas...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

58

Kevin> j'etais sur que t'allais sortir un truc comme ca... trisotfl
tu veux pas que je fasse une "copie"? triroll tres bien je cite ton post alors...
c'est risible trisotfl
dsl mais la je me pisse quasiment dessus... trisotrisotrisotrisotrisotriso
ptdr..... trisotfl
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

59

t'adore vraiment faire chier le monde...
c'est devenu un sport?
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

60

t'as une mentalite minable...
enfin ca sert a rien que je te le dise, on te l'a dit tellement de fois, que maintenant tu dois commencer a le savoir smile
et la bien sur, le seul truc que tu vas trouver a dire c'est "BOUH! une attaque personnelle!" #gol#
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina