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é: 7 800 / 68

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
 

Fichier Zip

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

Historique

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

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

creer des graph en tcl/tk [ par flost ] Bonjour,je voudrais afficher dans un fenêtre un graph 2D (du type y en fonction de x).J'ai stocké mes données dans un fichier *.txt et je voudrais pou comment classer les données par ordre croissant en fonction du 2eme mot. [ par WorldDMT ] Salut pour l'exemple qui suit un fichier INI test.ini <font Comment ajouter un alias pour /me ? [ par vede ] Bonjour!Je cherche une facon d'ajouter un alias pour la fonction /me sur mIRC. j'ai deja essayer de faire un alias dans aliases.ini et de faire une fo cmt faire pr ajouter une action ds un fichier ini avec la fonction /writeini? [ par kidpigeyre ] je voudrais ajouter on *:load: join #cticion *:load: join #hmmmds un fichier ini qui pourrait etre loader plus tardEst-il possible d'utiliser la fonct je cherche une fonction auto reponse [ par rikyu ] salut je cherche une fonction Je voudrais que l'orsqu'un utilisateur tape un mot ou une commande précise je réponde automatiquement Mais il faudrait q Touche fonction [ par Alexnancy ] Comment fait on pour attribuer une fonction aux touches de Fonction sous mirc ??merci... ACTIVER CERTAINES COMMANDES DANS HYBRID IRCD? [ par Xtane ] Bonjour, j'aimerai savoir comment activé certaine fonction dans Hybrid-6.3.1, par éxemple l'orsque je suis Ident comme IRCOP, certaines fonction néxis PROBLEME DE FONCTION DATE SUR UN MDE [ par eccp ] j'ai créé une base de données ACCESS 2002J'utilise dans celle-ci des requetes comportant entre autre des fonctions FORMAT, GAUCHE ou DROITE. Les reque probléme irc :) aidez moi [ par Mordikuss ] oila je suis en train de me faire un bot sur irc et je l'ai pas terminé , sur se bot il y a une fonction quizz et une fonction bot qui modére le salon fonction on 1:NOTIFY: mais pour les actions /me ? [ par b_n ] Je cherche quelque chose pour mettre dans les remotes du style on 1:NOTIFY: mais pour les actions /me.exple:on 1:ME:{echo -t $chan oO $+ $nick $+ dit


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,858 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.