Les piles en pascal !!!!

Fermé
hamza - 6 oct. 2005 à 04:49
 imaria2 - 30 avril 2008 à 18:30
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
A voir également:

5 réponses

LeFrettchen Messages postés 23 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 17 octobre 2005 12
12 oct. 2005 à 06:39
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
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
6 oct. 2005 à 08:50
Tu dois faire quoi comme pile?
0
hamza00 Messages postés 1 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 6 octobre 2005
6 oct. 2005 à 16:52
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
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
mounir.bhk Messages postés 3 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 23 janvier 2008
23 janv. 2008 à 17:04
alors
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
il a demander un cours
0