Les piles en pascal !!!!

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. 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
    1. 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
      1. Contributeur
        Tu dois faire quoi comme pile?
        0
        1. 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