Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » tableaux

olivierF
Visiteur
Citer - Posté le 23/07/2005 à 20:14
salut
j'aimerais savoir si on peut faire en qbasic des tableaux a plusieurs dimensions et si on peut stocker une chaine de caractere dans une case d'un tableau
merci
Fred
ProgBoarder
RemonterCiter - Posté le 24/07/2005 à 12:11

Dim Tableau (10,10,10) as string


Créé un tableau de 10*10*10 : 1000 chaines strings
En 3 dimensions.

Edité par Fred (24/07/2005 12:11:52)
Purée faut que je change d'avatar !
neamar
Modérateur
RemonterCiter - Posté le 13/08/2005 à 10:50
A ma connaissance on peut faire jusqu'à 64 dimensions... mais je n'en vois pas trop l'interet....
Pour les chaines de caracteres il faut faire un choix à l'avance :
ou le tableau sera entieremnent string et ds ce cas là il n'acceptera que des valeurs alphanumériques de type $.
Pour les manipuler il faut se sezervir de " " et de Val...
ou le tableau sera exclusivement integer et cela te permet alors de faire des operations arithmétik.
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.

http://neamar.fr
Fred
ProgBoarder
RemonterCiter - Posté le 14/08/2005 à 18:11
Exact !
Purée faut que je change d'avatar !
3.141592653589
ProgBoarder
RemonterCiter - Posté le 16/08/2005 à 18:37
On peut tout de même mettre des valeurs arithmétiques et des chaines de caractères avec les types :


TYPE nouveautype
chainedecaractere AS STRING
arithmetique AS SINGLE
END TYPE

DIM Tableau(10, 10, 10) AS nouveautype



(langue) (héhé (sourire)

Edité par 3.141592653589793238462 (16/08/2005 19:06:56)
Vive les maths (exclamation)
neamar
Modérateur
RemonterCiter - Posté le 17/08/2005 à 19:07
[repeat]
Exact !
[repeat]
(langue)
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.

http://neamar.fr
olivierF
Visiteur
RemonterCiter - Posté le 22/08/2005 à 18:06
merci les amis!
kaloula77
Visiteur
RemonterCiter Windows NT Mozilla 4 - Posté le 13/09/2010 à 08:10
moi je cherche a enregistrer un tableau dans un fichier (exclamation)!!

si quelqu'un sait , .... snif car moi je sais pas

je cherche sur le net , si je trouve je poste ici , ca peut etre utile a quelqu'un d'autre.
SFLPMEA
ProgBoarder
RemonterCiter Windows XP Firefox 3 - Posté le 13/09/2010 à 11:22
(héhé Salutations.

J’ai connu ce problème, il y a une vingtaine d’années …

J’ai écrit des programmes (pour mon usage personnel) de « BANQUE/RECETTES/DEPENSES » et je voulais enregistrer les totaux mensuels dans un fichier. J’avais 8 colonnes de 5 lignes. Je n’avais rien trouvé dans l’aide de qbasic sur la méthode à utiliser et j’ai appliqué celle préconisée par SANYO …Ci-dessous des extraits sur l'open, la lecture et l'écriture :

' ***** TOTAUX MENSUELS #6 Nf6% *****

DIM TM#(8, 6)

E15.F6: F = RTRIM$(ACC.F) + "TOTMENS.BRD"
OPEN F FOR RANDOM AS #6 LEN = 392
FOR I1% = 8 TO 1 STEP -1
FOR I2% = 6 TO 1 STEP -1
FIELD #6, (8 + (I2% - 1) * 64 + (I1% - 1) * 8 ) AS TOTO, 8 AS F.Tm(I1%, I2%)
NEXT I2%
NEXT I1%
FIELD #6, 8 AS F.Datmens
RETURN

E15A: GET #6, Nf6%
Datmens = F.Datmens
FOR I1% = 1 TO 8
FOR I2% = 1 TO 6
TM#(I1%, I2%) = CVD(F.Tm(I1%, I2%))
NEXT I2%
NEXT I1%
RETURN

E15B: LSET F.Datmens = Datmens
FOR I1% = 1 TO 8
FOR I2% = 1 TO 6
LSET F.Tm(I1%, I2%) = MKD$(TM#(I1%, I2%))
NEXT I2%
NEXT I1%
PUT #6, Nf6%
RETURN


Je ne sais pas si c’est la bonne méthode, mais elle a fonctionné correctement pendant plus de 15 ans. Mais, il n’y a que deux dimensions … Combien en as-tu ?

(héhé Salutations.

Edité par SFLPMEA ( 13/09/2010 11:27:25 )
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
kaloula77
Visiteur
RemonterCiter Windows NT Mozilla 4 - Posté le 15/09/2010 à 13:56
merci j'ai reussi , j'utilise 3 dimensions

par contre il y as une chose que je comprend pas on est limité a 64 dimensions mais a combien de " lignes " ?

par exemple je fais :

dim cnc(10000,3) => ca ne marche pas je depasse la taille

si je fais dim cnc(16384,1) ca passe ( j'ai chercher a taton la valeur max 16384 )

donc si je veux trois dimensions :

16384/3 = 5461.3333

donc en trois dimnsions j'ai :

dim cnc(5461,3) et efectivement il sagit de la valeur max

ma question est " pourquoi ?"

( je fabrique une machine decoupe cnc simplifier , les tableaux me servent a rentrer les different point x,y,z )
SFLPMEA
ProgBoarder
RemonterCiter Windows XP Firefox 3 - Posté le 15/09/2010 à 23:58
(héhé Salutations.

kaloula77, regarde un peu :
http://www.progboards.com/sujet-1096_ameliorer_mon_ping_pong_grace_a_un_tableau.php
Il y est parlé de Table :

CitationLe maximum autorisé est largement dépassé (64 Ko en mode classique, 65.536 octets). Dès que tu démarres le programme avec un tel DIM : Indice en dehors des limites, code d'erreur 9.


Lorsque le curseur se trouve sur DIM, presser F1 et Détails.
Pour des tailles plus grandes, utiliser la ligne de commande (/AH), mais je n'en ai jamais eu besoin ...

(héhé Salutations.

Ajout : Voir également

http://www.progboards.com/sujet-886_des_tables_de_plus_de_64_k__.php

Edité par SFLPMEA ( 16/09/2010 15:36:40 )
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2012 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,131 s - Crédits - Stats
1 connecté