Les piles en pascal !!!!
hamza
-
imaria2 -
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
-
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 -
Tu dois faire quoi comme pile?
-
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 -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -