Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1254 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Pascal] Décalaration d'un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Pascal] Décalaration d'un tableau

n°1269800
Twister
Posté le 19-12-2005 à 11:23:38  profilanswer
 

Bonjour,
Je voudrais crée un tableau dont les dimensions sont fixé par l'utilisateur.
Je demande donc a l'utilisateur d'entrer les deux borne du tableau dans les variable i et j.
Mais le probleme c'est que je dois déclarer le tableau au debut du programme en rentrant sa taille.
Comment faire?
 
Merci

mood
Publicité
Posté le 19-12-2005 à 11:23:38  profilanswer
 

n°1269812
saxgard
Posté le 19-12-2005 à 11:44:22  profilanswer
 

Twister a écrit :

Bonjour,
Je voudrais crée un tableau dont les dimensions sont fixé par l'utilisateur.
Je demande donc a l'utilisateur d'entrer les deux borne du tableau dans les variable i et j.
Mais le probleme c'est que je dois déclarer le tableau au debut du programme en rentrant sa taille.
Comment faire?
 
Merci


 
je me rappelle plus en pascal  
mais c'ets pas un truc du genre
 
array tab[10][10]
 
oublie ce que je viens d'ecrire j'avais aps bien lu ta question
 
mais je pense qu'apres avoir recuperé tes valeurs i et j rentré par l'utilisateur tu declare ton tableau avec ces valeurs :
 
ByteArray = array[0..i][0...j] of Byte;
 
Je crois avoir vu un truc comme ca sur le net  
mais j'y connais rien en pascal


Message édité par saxgard le 19-12-2005 à 11:48:16
n°1269814
Trollable
Posté le 19-12-2005 à 11:47:00  profilanswer
 

Pascal etant capable de gerer la memoire dynamiquement, ou est le probleme?
Il te faut utiliser les pointeurs.


---------------
The Million Dollar Screenshot  (seo v7ndotcom elursrebmem paesys wifi)
n°1269845
Zozol
Posté le 19-12-2005 à 12:23:54  profilanswer
 

En "vrai" pascal, il ne me semble pas que ce soit possible.
En delphi, et je croi dans les version "recente" du turbo pascal, tu fait comme suis:
 
type  
  MonTableau = array of TypeQuelconque
...
 
procedure MaProcedure (taille:integer);
begin
  SetLength(MonTableau,taille);
end;

n°1269972
Twister
Posté le 19-12-2005 à 15:16:10  profilanswer
 

Merci pour vos reponse.
Je ne vois pas comment les pointeurs peuvent m'aider, pourais tu m'expliquer?

n°1270356
Zozol
Posté le 19-12-2005 à 23:10:55  profilanswer
 

Ca depend ce que tu veut faire. Les plus simple sont la liste chainé(pour un accées séquentiel) ou du tableau de pointeur(pour enregistrement de plusieur Ko)...
 
Y'a bien une centaine de structure plus ou moins compliquée... Faut voir ce que tu met dans ton tableau et ce que tu veut en faire (acces sequentiel/aléatoire, remplissage en une fois/au fur et a mesure, ect....).  
Rien que ce sujet peut prendre un an à la fac :D

n°1271477
fusion_sad​am
:D
Posté le 21-12-2005 à 18:34:45  profilanswer
 

Bonsoir, j'ai également une question a propos des tableaux a deux dimmension:
 
ex : Tab = array of array of ...;
 
Je ne comprend pas comment les utiliser !!  
déclarer la longueur ? setlength(  :??: )  
connaitre la longueur : length(  :??: )
écrire, lire dedans , ect ...

n°1271560
copper_fr
Posté le 21-12-2005 à 21:48:07  profilanswer
 

De mémoire tu as 2 possibilités :
 
Par exemple pour un tableau 2d "rectangulaire" :
 
var
  Tab: array of array of Integer;
 
...
 
SetLength(Tab, 10, 20);
 
On accède aux elément avec  
Tab[0, 0] ... Tab[9, 19] ou bien Tab[0][0] ... Tab[9][19]
 
Tab.Length renvoie 10
Tab[0].Length renvoie 20  
 
On peut aussi faire des tableaux non rectangulaire par exemple :
 
SetLength(Tab, 10);
 
for I := 0 to Tab.Length - 1 do
  SetLength(Tab[I], I + 1);
 
Crééra un tableau :
Tab[0, 0]
Tab[1, 0] Tab[1, 1]
...
Tab[9, 0] ... Tab[9, 9]
 

n°1272140
fusion_sad​am
:D
Posté le 23-12-2005 à 00:44:44  profilanswer
 

Merci, j'ai encore besoin d'une petite précision :
est-ce qu'il existe un moyen de d'enregistrer un tableau dynamique dans un fichier d'enregistrement ?
ex :
 
Type
  TElement = record
                  NomElt : ShortString;
                  Param   : Array of Double;
  end;
 
TFileElt = File of TElement;
 
à la compilation j'ai l'erreur suivante :
"le type bidule necessite une finalisation : non autorisé dans type fichier"
est-ce qu'il ya une astuce pour contourner ce probleme, sans devoir utiliser un tableau non dynamique ?          
 

n°1272203
Zozol
Posté le 23-12-2005 à 08:47:00  profilanswer
 

Un record a une taille fixe. Donc, si tu reusissais a enregister tes records(sans une procedure spécifique), tout ce que tu enregistrerais, ce serait les pointeur de tableaux.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Pascal] Décalaration d'un tableau

 

Sujets relatifs
Chercher element dans un tableautableau: 100% en hauteur
[C] question passage d'un tableau a plusieurs dim en parametre[pascal]comment faire passer une fenetre graphique au premier plan?
Tri dans un tableau (débutant inside)probleme avec tableau
initialiser un tableau 2D ds le mainaide sur appel de fonction en pascal
[VB6] traitement sur tableau excel très lent [résolu][VBA Excel] Bloquer les barres de défilement à la fin d'un tableau
Plus de sujets relatifs à : [Pascal] Décalaration d'un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR