Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1990 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Exo sur changement de varaibles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exo sur changement de varaibles

n°1107633
HITm@n
jorgen
Posté le 03-06-2005 à 21:42:00  profilanswer
 

Slt all j'ai un exo c celui la:
 
Soit trois variables a,b et c (supposées de type entier). Ecrivez les instructions permutant les valeurs, de sorte que la valeur de a passe dans b, celle de b dans c et celle de c dans a. On utilisera une (et une seule) variable supplémentaire nommée d (de type entier)
 
Moi je propose ceci
d=a
a=c
c=b
b=d  
et selon les 3 solutions que l'on me propose c tt l'inverse!  :(  :??:  COmprend plus rien du tt svp aidez moi

mood
Publicité
Posté le 03-06-2005 à 21:42:00  profilanswer
 

n°1107636
Taz
bisounours-codeur
Posté le 03-06-2005 à 21:43:30  profilanswer
 

oui, c'est ça. le truc c'est faire des diagonales.

n°1107637
TotalRecal​l
Posté le 03-06-2005 à 21:44:38  profilanswer
 

c'est trivial comme algo :sarcastic:. Si tu réfléchis ce qui importe c'est le résultat final (chaque truc là où on veut qu'il soit), ensuite il y a plusieurs façons d'y parvenir (selon ce que tu mets dans d par exemple)...


---------------
Topic .Net - C# @ Prog
n°1107638
HITm@n
jorgen
Posté le 03-06-2005 à 21:46:20  profilanswer
 

J'ai bon??? Pourtant ds la solution de mon bouquin, il mette  
d=a
a=b
b=c
c=d
c pas la meme chose? C l'inverse de ce qui est demandé nan?

n°1107718
Elmoricq
Modérateur
Posté le 03-06-2005 à 23:10:01  profilanswer
 

Citation :

a passe dans b, celle de b dans c et celle de c dans a.


 

HITm@n a écrit :

J'ai bon??? Pourtant ds la solution de mon bouquin, il mette  
d=a
a=b
b=c
c=d
c pas la meme chose? C l'inverse de ce qui est demandé nan?


 
Si c'est la solution de ton bouquin, il y a une erreur ou dans l'énoncé, ou dans les solutions, car c'est effectivement l'inverse

n°1107750
HITm@n
jorgen
Posté le 03-06-2005 à 23:41:12  profilanswer
 

Merci c bien ce qui me semblait que c t moi qui avait raison et que la soluce du bouquin inversé par raport a l'énoncé! Merci!

n°1108549
Sve@r
Posté le 05-06-2005 à 11:00:36  profilanswer
 

On peut le faire sans avoir de variable "d"
 
a=a^b
b=a^b
a=a^b
Ici, on a interverti a et b donc la valeur de "a" est dans "b" et inversement
 
a=a^c
c=a^c
a=a^c
Ici, on a interverti a et c donc la valeur de "a" (qui était originellement dans "b" ) est dans "c" et inversement.
Donc, maintenant, la valeur d'origine de "a" se trouve dans "b", celle de "b" se trouve dans "c" et celle de "c" est dans "a"


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1108590
cricri_
Posté le 05-06-2005 à 12:13:07  profilanswer
 

Pas idiot ça, mais pas plus rapide je pense, non ?

n°1108632
Taz
bisounours-codeur
Posté le 05-06-2005 à 13:29:22  profilanswer
 

voire beaucoup plus lent.


Message édité par Taz le 05-06-2005 à 13:29:32
n°1109781
HITm@n
jorgen
Posté le 06-06-2005 à 15:08:52  profilanswer
 

Ué ms moi je commence juste a apprendre dc pas trop vite! Sinon merci pour vos réponses!
 
d'ailleur g rien compris au mess de Sve@r lol

mood
Publicité
Posté le 06-06-2005 à 15:08:52  profilanswer
 

n°1110098
Sve@r
Posté le 06-06-2005 à 18:03:06  profilanswer
 

HITm@n a écrit :

Ué ms moi je commence juste a apprendre dc pas trop vite! Sinon merci pour vos réponses!
 
d'ailleur g rien compris au mess de Sve@r lol


 
Pfff !!! C'est juste une propriété mathématique du "ou exclusif"
 
1) a=a^b => cela va mettre dans "a" le résultat d'un "ou exclusif" calculé sur chaque bit de "a" par rapport à chaque bit de "b"
2) b=a^b => idem mais si on regarde mieux, on a  maintenant dans "b" le résultat de "a^b^b". Or, b^b vaut 0 donc on a maintenant dans "b" la valeur qu'il y avait dans "a"
3) a=a^b encore une fois va mettre dans "a" le calcul de "a^b". Or, dans "a" il y a "a^b" (première opération) et dans "b" il y a "a" (seconde opération). Donc, on a "a=a^b^a". Comme "a^a" vaut 0, on a dans "a" la valeur qu'il y avait dans "b".
Ainsi, au bout des 3 opérations on a interverti "a" et "b" sans utiliser de variable supplémentaire.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Exo sur changement de varaibles

 

Sujets relatifs
changement automatique de champs dans un formulairemusique coupée changement de page
[PHP] PB copie avec changement de nom[c#] empecher le changement de tabPage
Surveiller tout changement sur le disque dur ?Changement de couleur de fond de la barre menu d'une application mfc
[MySQL]Changement d'un schéma relationnel[Résolu]Changement de style, cookie, path
changement de typeEasy php 1.6 changement de port ? urgent!!!!!!
Plus de sujets relatifs à : Exo sur changement de varaibles


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR