Petit cadeau pour Dobro!
Publié : mer. 02/juin/2004 16:13
Histoire de lui faire abandonner la programmation "à l'ancienne"
Avec ça, tu verras l'avantage qu'il y à utiliser les listes plutôt que les tableaux.
"A l'ancienne", c'est bon pour la moutarde ou pour les saucisses, pas pour PureBasic
Chris

Code : Tout sélectionner
;-=============== Petit cadeau pour DOBRO ===============
;-.......................................................
;-==== Comparaison entre Tableaux et Listes chainées ====
;-=======================================================
;
;
;- Première partie : Tableau
;
;- Dans la première partie, on va dimensionner un tableau simple
;- pouvant contenir 100 valeurs.
;- On va ensuite redimensionner ce tableau pour pouvoir lui faire
;- accepter 200 valeurs, ce qui va nous obliger à créer un second
;- tableau pour sauvegarder les données du premier, puis à retransférer
;- les données dans le premier tableau, une fois redimensionné.
;
Dim MonTableau.w(99) ; 0 étant une valeur, de 0 à 99 = 100 valeurs
For i = 0 To 99 ; On va ensuite rentrer une valeur dans chaque
a.w = Random(300)+100 ; case du tableau.
MonTableau(i)= a ;
Next ;
;
;- Un petit coup de debug pour voir si ça a fonctionné
;- Une fois ce test fait, le mettre en commentaire et décommenter le suivant
For i = 0 To 99
Debug MonTableau(i)
Next
;
;- On redimensionne ensuite le tableau, et on reteste.
;- Une fois ce test fait, le mettre en commentaire
; Dim MonTableau.w(199)
; For i = 0 To 199
; Debug MonTableau(i)
; Next
;- Les données son perdues : Bien fait.
;-
;-Il faut donc faire une sauvegarde du tableau pour pouvoir le redimensionner.
;- On crée donc un second tableau, et on fait le transfert, puis un coup de debug.
;- Décommenter cette partie
;
; Dim MaSauvegarde.w(99) ;/ Ne plus commenter cette partie
; For i = 0 To 99 ;/
; MaSauvegarde(i) = MonTableau(i) ;/
; Next ;/
;
; For i = 0 To 99
; Debug MonTableau(i)
; Debug MaSauvegarde(i)
; Debug""
; Next
;
;- Ca fonctionne, mettre le test au dessus,(et seulement lui), en commentaire, et on continue.
;- On peut donc, maintenant, redimensionner le tableau, et lui renvoyer
;- les données sauvegardées.
;- Décommenter les dernières lignes de la partie TABLEAU
; Dim MonTableau.w(199)
;
; For i = 0 To 99 ; Rien n'empèche de mettre 199 ici, le tableau
; MonTableau(i) = MaSauvegarde(i) ; sera rempli de 0 à partir de 100
; Next
;
;- Comme d'hab, un petit coup de debugger
; For i = 0 To 99
; Debug MonTableau(i)
; Next
;
;- ===== Fin de la partie TABLEAU =====
;- Le tableau a maintenant 200 valeurs possibles, les 100 premières sont
;- sauvegardées
;
;/
;- Seconde partie : Listes chainées (LinkedList)
;
;- Dans la seconde partie, on va créer une liste chainée, et on va lui faire
;- avaler un certain nombre de valeurs. (Ca bouffe tout ce qu'on lui donne, ces bêtes là)
;- Mettre tout ce qui est au dessus en commentaire, et décommenter tout ce qui suit
;
;- On crée la liste
; NewList MaListe.w()
;
; ;- On lui donne 100 valeurs
; For i = 0 To 99
; AddElement(MaListe())
; a = Random(300)+100
; MaListe() = a
; Next
; ;
; ;-un petit coup de debug pour tester
; ForEach MaListe()
; Debug MaListe()
; Next
; ;
;- C'est tout. Si on veut mettre plus d'éléments, il suffit de les ajouter.
;- Par exemple, on peut mettre 1000 à la place de 99, ça fonctionne pareil
"A l'ancienne", c'est bon pour la moutarde ou pour les saucisses, pas pour PureBasic

Chris
