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

  FORUM HardWare.fr
  Programmation
  C

  [C][NEW] Permutation de 2 variable (avec condition)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C][NEW] Permutation de 2 variable (avec condition)

n°1610743
zondervan
Posté le 11-09-2007 à 18:34:01  profilanswer
 

Bonjour tout le monde, je dois faire pour m'entrainer un petit programme qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres.
 
voici donc mon programme
 
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{float numerateur;
float denominateur;
 
 
printf("\nBonjour, veuillez saisir le numerateur de votre division\n" );
scanf("%d", &numerateur);
printf("\nBonjour, veuillez saisir le denominateur de votre division\n" );
scanf("%d", &denominateur);
 
 
 
printf("Quotient de votre division : %.0f", numerateur/denominateur);
printf("\nReste de votre division : %f\n", ???? );
printf("\nQuotient rationnel de votre division : %f\n", ???? );
 
 
 
system("pause" );
return 0;
}
 
Cependant je ne sais pas comment faire le reste de la division et le quotient rationnel de ma division.  
 
merci de votre aide :) :

Message cité 1 fois
Message édité par zondervan le 15-09-2007 à 19:53:19
mood
Publicité
Posté le 11-09-2007 à 18:34:01  profilanswer
 

n°1610744
kadreg
profil: Utilisateur
Posté le 11-09-2007 à 18:37:51  profilanswer
 

/ et %


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1610752
zondervan
Posté le 11-09-2007 à 19:03:19  profilanswer
 

C'est à dire? sous quel forme d'écriture?
merci
 
car pour le reste numerateur%denominateur ne marche pas? Sinon le quotient rationnel c'est juste la division avec les chiffres significatifs c'est à dire
 
printf("\nQuotient rationnel de votre division : %f\n", numerateur/denominateur);


Message édité par zondervan le 11-09-2007 à 19:20:38
n°1610773
Emmanuel D​elahaye
C is a sharp tool
Posté le 11-09-2007 à 20:51:53  profilanswer
 

zondervan a écrit :

Bonjour tout le monde, je dois faire pour m'entrainer un petit programme qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres.


Les nombres doivent être entiers et non réels.
Division entière  

Quotient : q = a / b
Reste : r = a % b


(on peut aussi utiliser idiv()...)
 
Division réelle (rationnelle, je suppose...)


Quotient : q = a / b


en forçant un des opérandes en réel avec un cast (double).


Message édité par Emmanuel Delahaye le 11-09-2007 à 20:56:00

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1611144
zondervan
Posté le 12-09-2007 à 18:09:14  profilanswer
 

Ok merci j'y suis arrivé, voici le resultat final, sa peut toujour interresser
 
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{int denominateur, numerateur, division, reste;
float rationnel;
 
 
printf("\nRentrez le numerateur de votre division\n" );
scanf("%d", &numerateur);
printf("\nRentrez le denominateur de votre division\n" );
scanf("%d", &denominateur);
 
division=numerateur/denominateur;
reste=numerateur % denominateur;
rationnel=(float)numerateur/denominateur;
 
printf("\nLe quotient de %d/%d est egale a %d", numerateur, denominateur, division);
printf("\nLe reste de %d/%d est egale a %d\n", numerateur, denominateur, reste);
printf("Le quotient rationnel de %d/%d est egale a %f", numerateur, denominateur, rationnel);
system("pause" );
return 0;
}
 

n°1611156
zondervan
Posté le 12-09-2007 à 18:38:48  profilanswer
 

En même temps je rencontre un problème sur un programme qui permute et affiches 3 variable ABC de types entier au clavier tel que A devient B, B devient et C devient A : Attention c'est le contenu des variables qui doit etre modifié et cette ligne doit rester identique avant et aprés le changement : printf("\nA=%d,B=%d,C=%d\n", A,B,C);
 
 
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{int A;
int B;
int C;
 
 
 
 
printf("\nVeuillez saisir votre variable A : \n" );
scanf("%d", &A);
printf("\nVeuillez saisir votre variable B :\n" );
scanf("%d", &B);
printf("\nVeuillez saisir votre variable C :\n" );
scanf("%d", &C);
printf("\nA=%d,B=%d,C=%d\n", A,B,C);
 
A=C;
B=C;
C=A;
 
 
 
 
printf("\nA=%d,B=%d,C=%d\n", A,B,C);
 
 
 
 
system("pause" );
return 0;
}
 
 
donc voila sa serait sympa de m'aider car j'arrive pas a faire que C devient A puisqu'il est déja associé à B
merci

n°1611170
Emmanuel D​elahaye
C is a sharp tool
Posté le 12-09-2007 à 19:12:44  profilanswer
 

Il faut une variable intermédiaire...

 

Et STP, relis les règles du forum et apprend à utiliser les balises code...

 


Message édité par Emmanuel Delahaye le 12-09-2007 à 19:13:17

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1611176
zondervan
Posté le 12-09-2007 à 19:30:57  profilanswer
 

ok désolé pour les balises je voulais pas recréer un message, sinon qu'entends tu par variable intermediaire
merci

n°1611178
Emmanuel D​elahaye
C is a sharp tool
Posté le 12-09-2007 à 19:42:38  profilanswer
 

zondervan a écrit :

ok désolé pour les balises je voulais pas recréer un message, sinon qu'entends tu par variable intermediaire
merci



temp := a
a := b
b := c
c := temp...


Tu fais ça 3 fois et tu retrouves les emplacements initiaux...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1611184
zondervan
Posté le 12-09-2007 à 19:58:51  profilanswer
 

ok merci beaucoup

mood
Publicité
Posté le 12-09-2007 à 19:58:51  profilanswer
 

n°1611197
Sve@r
Posté le 12-09-2007 à 21:38:19  profilanswer
 

zondervan a écrit :

ok désolé pour les balises je voulais pas recréer un message, sinon qu'entends tu par variable intermediaire
merci


C'est évident => si tu écrits "A=C" ben tu perds le A initial. Comment tu fais pour le retrouver ensuite ???
 
Sinon la magie du Xor permet de permuter 2 variables sans passer par une variable intermédiaire. C'est amusant à lire mais sans plus

int a=10;
int b=7;
 
a=a^b;
b=a^b;
a=a^b;
 
// => a=7 et b=10


 
C'est pas compliqué à démontrer mais ça n'offre aucun intérêt particulier (ni de rapidité ni de codage)


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1611238
Joel F
Real men use unique_ptr
Posté le 13-09-2007 à 09:25:43  profilanswer
 

et surtout ça fait genre astuce de ha><><0Rz ... ie truc inutile et illsisible pour les colélgues ou par toi même dans 10 ans.

n°1611544
Sve@r
Posté le 14-09-2007 à 00:26:49  profilanswer
 

Joel F a écrit :

truc inutile et illsisible pour les colélgues ou par toi même dans 10 ans.


J'ai déjà dit que cela n'avait aucun intérêt hormis la curiosité. Mais d'où sors-tu que ce soit illisible ? A ce moment là on peut appliquer ce qualificatif à la plupart des codes non commentés !!!

// Permutation de variables via xor bit à bit
a=a^b;
b=a^b;
a=a^b;


Un petit commentaire dans le code et ta critique tombe à l'eau. Non. en fait, la seule remarque intelligente que tu aurais pu faire, c'est de préciser que ça ne marche pas si on applique l'algo pour permuter une variable avec elle-même

int a=10;
a=a^a;
a=a^a;
a=a^a;
// => a=0

Message cité 1 fois
Message édité par Sve@r le 14-09-2007 à 00:36:26

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1611744
Joel F
Real men use unique_ptr
Posté le 14-09-2007 à 17:52:57  profilanswer
 

Sve@r a écrit :


Un petit commentaire dans le code et ta critique tombe à l'eau.  


 
Enfin bon, o_O , le clarity of intent, ca passe largement au dessus de tout ça.
C'ets illisible dans le sens ou ca te distrait du vrai profit de la lecture de code aka
savoir ce qu'il se passe fonctionellement dans ton code. Ca plus le fait que sur 100
codeux, y en a pas mal qui savent même pas que ^ == xor ... tu vas donc les voir  
passer x temps à se gratter la tete sur ce snippet.  Remarque, effet de bord non négligeable,
ca te permet de trier les bons des mauvais :o
 
Et j'en rajoute uen couche, :o, l'interet est nul, on me souffle dans mon oreillette que à part
si tu fais du dev sur DSP ou autre truc à contrainte forte, se toucher le mulot poru pondre ça, ca merite le kick ban sodo gravier. Je milite donc pour l'arret du montrage de swap avec ^ :o

n°1611944
zondervan
Posté le 15-09-2007 à 19:59:11  profilanswer
 

vous pouvez m'expliquer comment cela fonctionne Permutation de variables via xor bit à bit
a=a^b;
b=a^b;
a=a^b;
 
car j'en avais besoin pour un programme en permutant 2 variable mais sans variable intermédiaire
merci

n°1611946
0x90
Posté le 15-09-2007 à 20:18:31  profilanswer
 

En numérotant les variables au fur et à mesure qu'elles s'écrasent ça devient plus évident, mais y'a rien de magique, essaye sur un bout de papier avec des nombres de 4-5 bits tu verras vite ce qu'il se passe :
a2 = a^b;
b2 = a2^b = a^b^b = a;
a3=  a2^b2 = a^b^a = b;


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1611947
zondervan
Posté le 15-09-2007 à 20:27:52  profilanswer
 

ok merci ^^et sinon y'a aucune autre méthode pour permuter 2 variable mais sans variable intermédiaire

n°1611948
Emmanuel D​elahaye
C is a sharp tool
Posté le 15-09-2007 à 20:36:54  profilanswer
 

zondervan a écrit :

ok merci ^^et sinon y'a aucune autre méthode pour permuter 2 variable mais sans variable intermédiaire


Peut être, mais
- C'est une problème de math ou d'algorithme
- Quel intérêt ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1611950
zondervan
Posté le 15-09-2007 à 20:38:37  profilanswer
 

d'algorithme et c'est juste demander en langage C^^

n°1611957
dap++
Script kiddie
Posté le 15-09-2007 à 21:23:12  profilanswer
 

Code :
  1. a = a + b;
  2. b = a - b;
  3. a = a - b;

n°1611960
zondervan
Posté le 15-09-2007 à 21:36:47  profilanswer
 

OK merci beaucoup,  
je préfère cette méthode, plus simple à comprendre!!!

n°1611965
Joel F
Real men use unique_ptr
Posté le 15-09-2007 à 21:43:00  profilanswer
 

et qui ne marche pas avec tout les types \o/

n°1611972
zondervan
Posté le 15-09-2007 à 23:01:31  profilanswer
 

merci du renseignements mais dans mon énoncé il précise bien deux variables de type int donc là sa passe!
merci quand même

n°1612042
Sve@r
Posté le 16-09-2007 à 15:03:02  profilanswer
 

zondervan a écrit :

OK merci beaucoup,  
je préfère cette méthode, plus simple à comprendre!!!


Question d'habitude...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le   profilanswer
 


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

  [C][NEW] Permutation de 2 variable (avec condition)

 

Sujets relatifs
[ Résolu ] Variable perl > phpProblème de condition
variable array se limitevariable procédure et module
href avec variablerecuperation du resultat d'une commande dans une variable
javascript et importation de variableComment effectuer une condition sous Excel en VBA?
Enregistrer le contenu d'une page dans une variabledirective php pour ecrire variable dans chaine sans guillemets
Plus de sujets relatifs à : [C][NEW] Permutation de 2 variable (avec condition)


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