Page 3 sur 6
Re: Bric-à-Brac de Lord Nelson
Publié : mer. 12/nov./2014 23:13
par Lord Nelson
J'y travail, j'y travail, faut juste me laisser du temps

Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 9:57
par GeBonet
Salut, par rapport au premier code et des résultat qui y sont affiché, il y ce code ci-après !
Cela ne va pas vraiment faire avancer ton problème qui est qu'avant de présenter un code
il faut réfléchir à une MÉTHODE qui fonctionne dans toute les limites pour laquelle il est prévus
sans nécessairement étendre le code lui même... Je ne sais pas très bien quoi ceci pourrait
servir mais certainement pas pour compacter quoi que ce soit... Exercice de style ?
Code : Tout sélectionner
; -----------------------------------------------------------------------------
Compteur1=0 ; A chaque séquence
Compteur2=1 ; Compteur pour calcul des limite
n=1 ; Partie à afficher
limite = Pow(10 ,Compteur2) ; Première limite...
; ------------------------------------------------------------------------------
For i=0 To 1200 ; Valeur arbitraire pour l'exemple. = 1200 ...
If i=limite
Compteur1=0 ; nouveau départ de compteur
Compteur2+1 ; Nouvelle valeur
Affiche$=Left("00000000",n)+Str(Compteur1)
limite = Pow(10 ,Compteur2)+limite ; Nouvelle limite
n+1
Else
Affiche$=Left("00000000",n-1)+Str(Compteur1)
EndIf
If Len(Affiche$)>Compteur2
Affiche$=Right(Affiche$,n)
EndIf
Debug "Original ="+Str(i)+" Formaté ="+Affiche$
Compteur1+1
Next i
Debug "Etc..."
End
Ce n'était qu'une apparition, je retourne dans la nature... A plus
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 12:46
par TazNormand
Bonjour Gebonet,
Ahh content de te revoir ici, tu te fais plutôt très rare ces temps ci
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 13:57
par Kwai chang caine
+1
Ca fait plaisir d'avoir un "vieux de la vieille" qui repointe son nez

Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 15:45
par GeBonet
Bien le bonjour...

Comme vous le dites, '
vieux de la vieille' et
c'était en veille plutôt et ça le restera. Et si vous m'avez entre aperçus c'est simplement que de temps à autre je passe voir ce qui se passe et mettre ma version PB a jours (on ne sait jamais je pourrais y reprendre goût) entre "Game Of Throne", "Fargo", "Breaking Bad", "The Killing Dk Français et la version US" ou autres séries pas trop débile pour mon cerveau de plus en plus débilitant...
Donc ! voilà, voilà.
Puis en passant 'ai vus cette chose étrange (Bric-à-Brac) qui si le code initial est douteux le et ne servant pas à grand chose, mais ayant un certain rythme, ne nécessitant pas plus de neurone que ce qu'il me reste alors j'en ai profité pour tenter de voir si ma version PB fonctionnait toujours !
Voilà, voilà ! En fait ma passion est retombé à l'époque ou un amis sévissais et avais un comportement que par trop agressif et postulant que tout lui était adressé... Alors n'ayant plus trop l'âge du bac a sable, je me suis mis au série... C'est plus reposant

.
D'autant qu'en tant que Belge, nous avons une distraction journalière avec un nouveau gouvernement de tendance "Le Pen" style flamand grâce un revirement de veste d'un partis francophone prétendant avant élection qu'il ne s’allierait jamais avec ces gens là ! Le collabo du moment... Alors voilà, c'est grève sur grève etc...
Et pour moi, c'est comme une série à la télé
Re Voilà, voilà, des news from Belgium !
Bon baisers et a bientôt pour le prochaine épisode.
Gerhard
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 15:58
par GeBonet
Ha j'oubliais, regardez ceci, ça parle de votre avenir...
c'est pas long, mais ça va vite... Alors écoutez et ne vous démoralisez pas trop :
https://www.youtube.com/watch?v=uJG50bHdfXU
Alors si vous en voulez une de plus ...
http://mrmondialisation.org/le-travail- ... on-csoj-2/
Et si vous voulez aller plus loin il y a aussi ceci...
Et avec Jeremy-Rifkin la présentation du "Coût marginal zéro" ou la direction de nos économie
http://www.rendezvousdufutur.com/archiv ... emy-Rifkin
Bon, j'arrête, sinon je risque d'avoir des suicides sur la conscience
A++
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 20:06
par Ollivier
Gebonnet,
Fred a pourtant mis une charte : absolument interdit de parler de football.
Comme tu peux le constater, on parle librement, bien qu'il nous soit très strictement interdit de parler de football.
T'inquiète pas va. Moi, j'ai pas de tv, pas de frigo, pas d'ordi, et j'en passe des choses que j'ai pas mais qui ne sont pas nécessaire au fond. En fait, je m'en cogne royalement de ce qui manque. Tant que je peux faire le daftpunk en scooter pour aller tremper ma baguette mi-cuite dans le thé pas trop bouillu, c'est bon.
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 22:24
par Ollivier
Bon... Nelson, te déconcentre pas.
Parlons "normalement", c'est-à-dire en décimal. Pas en unaire, binaire, cathénaire, octal, çavamal, etc... Juste du normal... Du décimal: 10 doigts.
Donc en calcul NORMAL, on a DIX chiffres. Pas un de plus, pas un de moins.
On les connaît ces chiffres : 0,1,2,3,4,5,6,7,8 et 9.
On veut additionner DEUX chiffres pour obtenir un nombre.
Si mes calculs sont bons, le résultat le plus grand est "18".
Commence par faire une procédure qui est juste capable de faire ça.
Et qui affiche 10.
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 22:37
par GeBonet
Ollivier a écrit :Gebonnet,
Fred a pourtant mis une charte : absolument interdit de parler de football.
Comme tu peux le constater, on parle librement, bien qu'il nous soit très strictement interdit de parler de football.
T'inquiète pas va. Moi, j'ai pas de tv, pas de frigo, pas d'ordi, et j'en passe des choses que j'ai pas mais qui ne sont pas nécessaire au fond. En fait, je m'en cogne royalement de ce qui manque. Tant que je peux faire le daftpunk en scooter pour aller tremper ma baguette mi-cuite dans le thé pas trop bouillu, c'est bon.
Ouais ? Je ne sais pas si tu as essayé les liens ? On est très loin de parler de football ?
On parle boulot, d'avenir y compris des développeurs ! Ou alors je n'ai rien compris à ta réponse ?
A++
Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 22:48
par Lord Nelson
Ollivier, rien de plus facile mais c'est nul comme procéder entre nous

J'ai fais ça à la va vite pour te faire plaisir mais c'est loin d'être à mon gout car on est limité !
Note: Remarque pas si nul que ça en faite !
De cette façon je peut aller de 0 à 18446744073709551615
C'est du bricolage hein
Je suis un peut occupé là mais je vais m'y mettre.
Mon procédé serra différent et non limité en taille à par par la mémoire disponible.
Je travaillerais avec la mémoire pour aller plus vite aussi.
Voila le bousin: Avant
Code : Tout sélectionner
Procedure.S Ajoute(Nombre1$, Nombre2$)
Nombre1 = Val(Nombre1$)
Nombre2 = Val(Nombre2$)
ProcedureReturn StrU(Nombre1 + Nombre2)
EndProcedure
Debug Ajoute("9223372036854775807", "9223372036854775808")
Après:
Code : Tout sélectionner
Procedure.S Ajoute(Nombre1$, Nombre2$)
ProcedureReturn StrU(Val(Nombre1$) + Val(Nombre2$))
EndProcedure
Debug Ajoute("9223372036854775807", "9223372036854775808")
Édit, pas faut ça merci, c'est fait

Re: Bric-à-Brac de Lord Nelson
Publié : jeu. 13/nov./2014 22:50
par falsam
Yeahhhh Lord Nelson mais tu peux encore optimiser ce code sans déclarer deux variables dans ta procédure

Re: Bric-à-Brac de Lord Nelson
Publié : ven. 14/nov./2014 8:31
par Ollivier
Noâwon!
Nelson,
Pourquoi t'as été pondre un 2ème code? Le 1er est mieux que le 2ème, va pas optimiser l'inoptimisable. Au contraire, prend soin d'allouer une variable de résultat avec Protected, et pense bien à séparer ton calcul de ProcedureReturn. Ça te permettra de savoir que tu as zappé l'adéquation d'interface entre ton programme et ta procédure.
Règle n1: Quand je veux créer une procédure, macro, méthode, fonction ou autres zébulon, je fais l'inventaire total de ce qui rentre et ce qui sort (définition du sous-système, par ses interactions avec le système).
Pour chaque élément, je dois définir obligatoirement un nom et un type, compatible avec le compilateur courant. Ici, il te manque le nom de la variable qui sort de ta procédure.
Corrige le tir s'il-te-plaît.
Chaque chose en son temps Nelson. Ça donne quoi comme code ça?
Re: Bric-à-Brac de Lord Nelson
Publié : ven. 14/nov./2014 11:33
par Lord Nelson
Ollivier, je fais de mon mieux !
N'oublie pas que c'est pas mon code finale, juste de la bidouille

C'est mieux ça ?
Code : Tout sélectionner
Procedure.S Ajoute(Nombre1.S, Nombre2.S)
Protected ParseNombre1.Q, ParseNombre2.Q, Resultat.S
ParseNombre1.Q = Val(Nombre1.S)
ParseNombre2.Q = Val(Nombre2.S)
Resultat.S = StrU(ParseNombre1.Q + ParseNombre2.Q)
ProcedureReturn Resultat.S
EndProcedure
Debug Ajoute("9223372036854775807", "9223372036854775808")
Re: Bric-à-Brac de Lord Nelson
Publié : ven. 14/nov./2014 17:15
par Lord Nelson
Bon voici un début de code qui me plais déjà un peut plus, je fais en sorte d'être le plus rapide possible.
J'ai fais un test avec plus de 96 000 000 de chiffre et c'est plutôt rapide, moins d'une minute je crois...
C'est pas au point loin de là mais déjà c'est un début:
Code : Tout sélectionner
file$ = OpenFileRequester("S�lectionnez le fichier 1","","Text (.txt)|*.txt|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length1 = Lof(0) ; Lit la taille en octets du fichier
*MemoryID1 = AllocateMemory(length1) ; alloue un bloc m�moire de la taille du fichier "length"
If *MemoryID1 ; si l'allacation a bien fonctionner ont continue
ReadData(0, *MemoryID1, length1) ; Lit les donn�es du fichier et les place dans le bloc m�moire "*MemoryID" de la taille correspondant � "length"
*Fichier1.String = @*MemoryID1 ; "*Fichier" a pour valeur l'adresse o� r�side la cha�ne de caract�res en m�moire "*MemoryID"
Fichier1$ = *Fichier1\s ; "Fichier$" � pour valeur le texte o� r�side la cha�ne de caract�res en m�moire "*MemoryID"
EndIf
CloseFile(0)
EndIf
EndIf
file$ = OpenFileRequester("S�lectionnez le fichier 1","","Text (.txt)|*.txt|All files (*.*)|*.*",0)
If file$
If ReadFile(0, file$)
length2 = Lof(0) ; Lit la taille en octets du fichier
*MemoryID2 = AllocateMemory(length2) ; alloue un bloc m�moire de la taille du fichier "length"
If *MemoryID2 ; si l'allacation a bien fonctionner ont continue
ReadData(0, *MemoryID2, length2) ; Lit les donn�es du fichier et les place dans le bloc m�moire "*MemoryID" de la taille correspondant � "length"
*Fichier2.String = @*MemoryID2 ; "*Fichier" a pour valeur l'adresse o� r�side la cha�ne de caract�res en m�moire "*MemoryID"
Fichier2$ = *Fichier2\s ; "Fichier$" � pour valeur le texte o� r�side la cha�ne de caract�res en m�moire "*MemoryID"
EndIf
CloseFile(0)
EndIf
EndIf
If length1 > length2
length3 = length1
ElseIf length2 > length1
length3 = length2
Else
length3 = length1
EndIf
*MemoryID3 = AllocateMemory(length3 + 1) ; alloue un bloc m�moire de la taille du fichier "length"
If *MemoryID3 ; si l'allacation a bien fonctionner ont continue
A = ElapsedMilliseconds()
For I = length3 - 1 To 0 Step -1
Chiffre1 = Val(PeekS(*MemoryID1 + I, 1, #PB_Ascii))
Chiffre2 = Val(PeekS(*MemoryID2 + I, 1, #PB_Ascii))
Resultat = Chiffre1 + Chiffre2 + Retenue
If Len(Str(Resultat)) > 1
Retenue = Val(Mid(Str(Resultat), 1, 1))
Else
Retenue = 0
EndIf
If Len(Str(Resultat)) = 1
Chiffre3 = Val(Mid(Str(Resultat), 1, 1))
Else
Chiffre3 = Val(Mid(Str(Resultat), 2, 1))
EndIf
PokeS(*MemoryID3 + Position, Str(Chiffre3), -1, #PB_Ascii)
Position + 1
Next
B = ElapsedMilliseconds()
Debug ReverseString(PeekS(*MemoryID3, -1, #PB_Ascii))
EndIf
Note, ici il faut que les deux fichier soit de taille identique, ne commence pas par un 0 et ne contienne que des chiffres.
Quand au résultat, ya des chance qu'il soient pas trop mal
Oui, je choisie de travailler directement en mémoire pour optimiser la vitesse de calcule, pas de tableau, prend trop de temps mais après à voir.
Ollivier, cette méthode te plaira peut être pas mais pourtant elle est rapide, c'est un premier jet, j'ai pas chercher à optimiser un maxi et je sais pas si les résultat sont correcte.
Re: Bric-à-Brac de Lord Nelson
Publié : ven. 14/nov./2014 18:29
par Ollivier
Nelson a écrit :
Resultat = Chiffre1 + Chiffre2 + Retenue
C'est ce que tu trouve: la retenue.