begin process at 2008 07 20 23:14:12
1 213 505 membres
406 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CREATION DE TABLEAUX ALPHA


Information sur la source

Catégorie :Divers Classé sous : tableaux, fonction, tableau, cellule, colonne Niveau : Débutant Date de création : 21/02/2006 Date de mise à jour : 22/02/2006 14:33:26 Vu / téléchargé: 6 443 / 62

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Slut,
J'ai eu envie de reproduire la fonction de tableau que l'on peut trouver dans bon nombre de langages
Les tableaux dont je m'inspire sont ceux du langage C/C++, ceux qui connaissent n'auront aucun mal a se servir de ces tableaux mirc.
Bon, pour l'instant (et peut etre pour toujours) j'ai limité les tableaux a une ou deux dimensions
Le zip contient le remote du code en lui même, et un fichier d'exemples avec commentaires pour comprendre la syntaxe

juste un petit exemple

/tableau exemple[2][3] = <  1 , 2 , 3 , 4 , 5 , 6 >

Ce code va remplir un tableau de 2 lignes et 3 colonnes avec les nombres respectifs pour chacune des cellule du tableau
$tableau(exemple,0,0) va retourner 1
$tableau(exemple,0,1) va retourner 2
$tableau(exemple,0,2) va retourner 3
$tableau(exemple,1,0) va retourner 4
$tableau(exemple,1,1) va retourner 5
$tableau(exemple,1,2) va retourner 6

Pour ceux qui trouvent ça pas clair
le tableau se présenterai comme ça


___|_0_|_1_|_2_|
_0_|_1_|_2_|_3_|
_1_|_4_|_5_|_6_|    



A VENIR:

Reorganisation COMPLETE du code
Possibilité de sauvegarder et charger son tableau (comme pour les hashtables)

Source

  • ;alias d'exemple tres basique, present dans le fichier du zip
  • ;je le met ici pour les curieux
  • alias tableau_ex_3 {
  • ;on crée notre tableau à 2 dimensions
  • tableau echiquier[8][8]
  • ;on va le remplir des nombres 1 à 64 (le nombre de cases d'un echiquier)
  • var %i 0 , %case 1
  • while (%i < 8) {
  • var %j 0
  • while (%j < 8) {
  • echo -a $+(echiquier[,%i,],[,%j,]) contient le numero %case
  • ;on inscrit la variable aux coordonnees %i %j dans le tableau
  • tableau echiquier[ %i ][ %j ] = %case
  • inc %case
  • inc %j
  • }
  • inc %i
  • }
  • ;on supprime le tableau
  • tableau echiquier[] > delete
  • }
;alias d'exemple tres basique, present dans le fichier du zip
;je le met ici pour les curieux

alias tableau_ex_3 {

  ;on crée notre tableau à 2 dimensions
  tableau echiquier[8][8]

  ;on va le remplir des nombres 1 à 64 (le nombre de cases d'un echiquier)

  var %i 0 , %case 1
  while (%i < 8) {
    var %j 0
    while (%j < 8) {
      echo -a $+(echiquier[,%i,],[,%j,]) contient le numero %case

      ;on inscrit la variable aux coordonnees %i %j dans le tableau
      tableau echiquier[ %i ][ %j ] = %case

      inc %case
      inc %j
    }
    inc %i
  }

  ;on supprime le tableau

  tableau echiquier[] > delete

}

Conclusion

/!\ Lisez le fichier d'exemple qui contient des explications pour utiliser cette fonction /!\
ps: N'oubliez pas que la premiere cellule d'un tableau est a l'emplacement 0, et non 1 !!!

Pour toute suggestion ou rapport de bug, laissez un commentaire
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

22 février 2006 10:06:30 :
un changement suite a une remarque de cm (echo -e) + correction d'un petit bug
22 février 2006 14:15:07 :
Ajout du tableau
22 février 2006 14:33:27 :
bug
  • signaler à un administrateur
    Commentaire de RCA ArKanis le 22/02/2006 02:45:18

    ça a l'air plutôt pas mal, assez interessant, mais pas très pratique
    /tableau exemple[2][3] = < 1 , 2 , 3 , 4 , 5 , 6 >

    déjà le temps de comprendre pourquoi tes $tableau(...) retournent un certain nombre :x

    t'aurais p'tet pu faire un truc du style :
    1-2-3|4-5-6
    les | sont faits pour dire que c'est un retour à la ligne, ce qui te donne en fait :
    1 2 3
    4 5 6
    perso je trouve ça plus parlant :)


    Ca simplifierait également ton code, voici la preuve :
    var %tableau = 1-2-3|4-5-6
    ;$1 : ligne et $2 : colonne
    var %elementsdelaligne = $gettok(%tableau,$1,124)
    ;et donc on a :
    var %casesouhaitee = $gettok(%elementsdelaligne,$2,45)
    ;soit plus directement en une ligne :
    var %case = $gettok($gettok(%tableau,$1,124),$2,45)

    ici, c'est plus logique, plus simple, et puis au moins la ligne 0 et la colonne 0 n'existent pas (ouais, ça perturbe légèrement dans ton exemple :D)

    ce sont des sortes de matrices quoi :)

    j'pense que t'aurais pu généraliser ça assez facilement à "n" dimensions

  • signaler à un administrateur
    Commentaire de fjxokt le 22/02/2006 10:00:51

    disons que j'ai voulu reproduire la manière de procéder en c/cpp, donc c'est sur qu'un certain nombre de choses aurait pu être simplifié, et que tout n'est forcement pas très compréhensible pour les gens qui ne connaissent pas ce langage
    Par exemple, j'aurai très bien pu faire commencer les tableaux a 1, mais j'ai choisis de les faire commencer a zero par soucis de ressembler aux tableaux du c
    Et pour ton exemple, je ne peux pas stocker les donnéees dans une seule et même variable, sachant que les tableaux peuvent stocker des nombres, mais égalements des phrases entières
    Apres j'ai aussi pensé a une méthode pour généraliser les tableaux a n dimensions, seulement, la "puissance" de mirc n'est de toute manière pas faite pour stocker des tableaux, ne serait-ce qu'a 3 dimensions, sachant qu'en plus rare sont les gens qui utilisent des tableaux à plus de 2 dimensions, même dans des langages plus évolués

    Enfin bref, je sais que les tableaux peuvent dérouter au début, mais je pense que ça peut être un outil assez puissant, une fois qu'on en a bien assimilé le fonctionnement

  • signaler à un administrateur
    Commentaire de Mc_AbBeR le 22/02/2006 13:53:29

    en c/c++ :
    long tableName[3];
    tableName[0] = 1;
    tableName[1] = 2;
    tableName[2] = 3;
    là, tableName[1] retourne 2

    Ton code n'est pas comme ça...

  • signaler à un administrateur
    Commentaire de fjxokt le 22/02/2006 13:58:24

    en mirc:
    tableau tablename[3]
    tableau tablename[0] = 1
    tableau tablename[1] = 2
    tableau tablename[2] = 3

    ( j'aurai pu faire: tableau tablename[3] = < 1 , 2 , 3 > )

    $tableau(tab,1) retourne bien 2...

  • signaler à un administrateur
    Commentaire de Mc_AbBeR le 23/02/2006 12:46:54

    Et il faut mettre le code à chaque fois que l'on veut faire un tableau ?! Pas bien sa :|

  • signaler à un administrateur
    Commentaire de fjxokt le 23/02/2006 13:35:49

    euh de quel code tu parles ?
    si tu parles du fait qu'il faille toujours preceder les noms des tableaux par le mot 'tableau' saches que je ne peux pas faire autrement, mirc ne reconnaissant bien evidemment pas les tableaux comme des 'variables'
    Cela dit, il est rare de remplir un tableau de manière manuelle, la boucle est plus appropriée, et dans ce cas là, on n'ecrit plus 'tableau' qu'une seule fois ;-)

  • signaler à un administrateur
    Commentaire de PaDa le 23/02/2006 13:58:21

    il parle de l'alias tableau je pense, mais c'est irréalisable de faire des alias dynamiques proprement avec mirc
    pas mal ton truc, faudrait comparer avec les pseudo arrays sur sdb.org et la gestion de matrices de Kerrigan ici
    bonne continuation

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS