Il y a actuellement 78 visiteurs
Mardi 23 Octobre 2018
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 1 , 2 / 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 17: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 10:09
 


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

Message le 13 Déc 2017 18: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).
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8922
Inscription: 13 Mai 2003 17:32
Localisation: A.H.P... et jamais loin d'une Debian
 

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

Message le 14 Déc 2017 05: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 10:09
 



Sujets similaires

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

Message pile cmos Acer Aspire 5630
Bonjour,j'ai un acer aspire 5630 et je voulai accedé au bios mais il ya un mot de passe ke j'ignore. Donc je voulais enlever la pile cmos pour le desactiver mais je ne le trouve (je ne le voi pas). aider moi à trouver où se trouve la pile cmos .
Réponses: 5

Message PC En Panne. Carte mère A8N-SLI Deluxe. À cause de la pile .
reg35 a écrit:pas de souris ni de clavier??? oula sa sent mauvais ton affaire... ta carte mere a du recevoir de l'electricité statique... et paf la carte mere... ta essayé en retirant tout les perifs usb, lecteurs cd/dvd... bref il doit te rester juste le minimum, soit le disque dur branché dans la ...
Réponses: 13


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


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