Il y a actuellement 363 visiteurs
Samedi 27 Avril 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

incrémentation, décrémentation et pile

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

incrémentation, décrémentation et pile

Message le 13 Déc 2017 16:30

Bonjour,
On trouve dans mon cours ce code pour obtenir une pile fonctionnelle :

OBJET espace[MAXPILE];
int nombreElements = 0;


– opération empiler la valeur de x " :


if (nombreElements >= MAXPILE)
erreur("tentative d’empilement dans une pile pleine");
espace[nombreElements++] = x;


– opération dépiler une valeur et la ranger dans x " :


if (nombreElements <= 0)
erreur("tentative de depilement d’une pile vide");
x = espace[--nombreElements];



Et bien je ne le comprend pas. Pour empiler j'aurai mis espace[++nombreElements] = x et pour dépiler x = espace[nombreElements--].

Il est dit dans le cours juste avant que:

L’affectation y = x++; équivaut à y = x; x = x + 1;
De meme y = ++x; équivaut à x = x + 1; y = x;




donc le code me fait penser que pour empiler il faut placer la valeur de x dans la valeur max de la pile avant incrémentation, or ce n'est pas logique car cet emplacement est déjà occupé par une autre valeur! Pareil pour le dépilage, le code fait décrémenter avant d'avoir mis la valeur du sommet de pile dans x. Donc c'est l'avant-dernière valeur de la pile qui est placée dans x. Pouvez-vous m'aider s'il-vous-plait?
bonux
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 19
Inscription: 11 Déc 2017 09:09
 


Re: incrémentation, décrémentation et pile

Message le 13 Déc 2017 17:16

1 - de quel langage parle-t-on ? c'est une question quand même essentielle

2 - le fait que espace[++x] ou espace [x++] soient la même chose s'explique, je pense, par le fait que l'incrémentation "++" soit forcément prioritaire sur le code de l'adressage tableau [].
Donc ici que tu fasses ++x ou x++ c'est pareil. Idem pour --x et x--
Ce qui fait qu'au final tu peux écrire ton code pour empiler indifféremment avec espace[--x] ou espace [++x] et pareil pour dépiler espace[--x] ou espace[x--]

3 - le code y=x++ est différent de y=++x peut-être dans la manière dont c'est traité par la machine.. mais au final c'est pareil dans les deux cas on a la valeur de y = x +1.
Donc faut peut-être pas se tordre le cerveau avec ça. (et perso je préfère l'écriture de X++ dans tous les cas).
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9041
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: incrémentation, décrémentation et pile

Message le 14 Déc 2017 04:50

Bonjour,
il s'agit d'un cours sur le langage c. Dans mon cours il est dit que pour ++x l'expression est incrémentée avant d'etre évaluée, et que pour x++, c'est l'inverse, ce qui fait que la valeur à prendre en compte dans le code est celle de x et pas x+1 car l'incrémentation se fait ensuite. C'est la meme logique avec --x et x--.
Pour le code ma compréhension du problème a évolué depuis hier... Je cherchai un code pour un tableau numéroté de 1 à n alors qu'il faut tenir compte du décalage de numérotation du tableau, soit de 0 à n-1.
bonux
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 19
Inscription: 11 Déc 2017 09:09
 



Sujets similaires

Message Problème de DD après changement de pile
Bonjour,Ayant des soucis de démarrage, j'ai changé la pile de mon ordinateur de plus de 10 ans.Suite à cette opération, je n'arrive plus a accéder à mon disque de sauvegarde (qui était l'ancien disque principal qui a été remplacé par un SSD).Sur le gestionnaire de disques il apparait en 3 partitions ...
Réponses: 1

Message [Réglé] Acer aspire 5315 - pile bios à changer
Saluttout est dans le titrecomment change t'on cette pile sachant que les extrémités des bornes sont comme soudéesy a t'il un moyen de la remplacer en soitc'est quoi le modèle de la pile aussi ?et autre questionest ce que le portable veut fonctionner si pas cette batterieje sais que si absente : pas ...
Réponses: 14

Message Pile CMOS HS
Bonjour,Un ordinateur de ma flotte a été "piraté" par l'ajout d'un MDP sur le BIOS.Je l'ai fait sauter grâce au cavalier que j'ai déplacé mais avant, j'avais essayé de retirer la pile de la carte mère. Cela n'a pas fonctionné.Lorsque j'ai remis la pile, l'ordinateur m'a informé que celle-c ...
Réponses: 3

Message Pin connecteur pour pile cassé
Bonjour,J'ai cassé les 2 pins qui accueil la pile du Bios par câble , du coup je voudrais savoir si il est possible de faire quelque chose pour ca ?J'ai toujours les 2 broches avec moi , je pensais brancher la pile sur un autre connecteur mais je sait si c'est fait pour ca ?Ma carte-mère est une Gyg ...
Réponses: 1

Message Pile bios changée, ports usb non reconnus, pas d'accès au bi
Bonjour ! J'ai récupéré à Noel un Asus All-In-One ET2220INTI qui fonctionnait très bien.... trop bien....Après avoir planté sur la page de démarrage du bios "press f2 pour setup bios", puis après 2 ou 3 redémarrage, sur la page American Megatrends, j'ai donc décidé de changer la pile du bi ...
Réponses: 12

Message changement pile
Bonjour à tous,Je possède un PC portable asus Vivobook 551SLmais je ne trouve pas la pile bios , en effet l'horloge ne se met plus à l'heure automatiquement.Merci de votre aide
Réponses: 1

Message [Résolu] Emplacement pile BIOS Fujitsu Siemens Amilo M1437G
Hello Juste une précision, je pense que c'est bien la pile mais je voulais juste avoir confirmation (en bas à gauche) Je vais la changer, cela se trouve en grande surface ou il faut aller dans des magasins spécialisés ?!
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


.: Nous contacter :: Flux RSS :: Données personnelles :.
cron