Les piles en pascal !!!!

hamza -  
 imaria2 -
slt les amis j'ai besoin d'un cours sur les piles car je dois faire un programe sur pascal et je sais pas comment faire

5 réponses

  1. LeFrettchen Messages postés 23 Statut Membre 12
     
    Bonjour.

    Euh, dans ton code, hamza, tu marques, je cite :

    (a(bc(d))) : ok
    (a(bcd)): non ok

    je vois pas de différences entre les deux lignes pourtant !
    1° ligne : 3 parenthèses ouvrantes, 3 fermantes
    2° ligne : 2 ouvrantes, 2 fermantes...

    Je suppose que tu dois tester le nombre de parenthèses, en les empilant pour voir si le nombre d'ouvrantes et de fermantes correspond, c'est ça ?

    Moi je dirais alors qu'il faudrait deux tableaux de caractères, un pour les symboles, un autre pour les variables :
    on obtiendrait donc du genre :
    var tabSymboles :array [1..100] of char;
    tabVariables :array [1.100] of char;
    nbSymboles :integer;
    nbVariables :integer;

    ensuite, tu lis ta ligne, et suivant ce que tu trouves, tu incrémentes tel ou tel tableau...

    function equilibree(ligne:string) :boolean;
    var i,nbpar,nbcro,nbacc :integer;
    begin
    {tous les compteurs à zéro}
    nbSymboles :=0;
    nbVariables :=0;
    {lecture de la ligne, caractères par caractères}
    for i:=1 to length(ligne) do
    {si le caractère est un symbole...}
    if (ligne[i] in ['(',')','{','}','[',']']) then
    begin
    {on augmente le compteur des symboles}
    inc(nbSymboles);
    {empilage du symbole}
    tabSymboles[nbSymboles] :=ligne[i];
    end
    {sinon...}
    else begin
    {incrémentation du compteur variables}
    inc(nbVariables);
    {empilage de la variable}
    tabVariables(nbVariables) :=ligne[i];
    end;
    {il ne reste plus qu'à vérifier les piles}
    {en fait, deux tableaux, un de symboles, et un de variables}
    {le reste est assez simple, je pense...}
    end;

    voilà, j'espère que ça t'aide un peu...
    sinon, tu peux toujours demander des explications en plus...

    lefrettchen@hotmail.com
    1
  2. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    Tu dois faire quoi comme pile?
    0
    1. hamza00 Messages postés 1 Statut Membre
       
      je dois faire 1 program pascal
      1_ on veut tester siune expression est b1equilibré en parenthése ouvrante et farmente
      (a(bc(d))) : ok
      (a(bcd)): non ok
      de meme pr [],{}
      0
  3. mbhk
     
    je voudrais qu'on me donne la commande s'il existe sur turbo pascal qui permet d'afficher le contenu de la pile
    urgent .... merci
    0
  4. mounir.bhk Messages postés 3 Statut Membre
     
    alors
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question