Lecture
Résolu/Fermé
manutd1993
Messages postés
17
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 octobre 2014
-
21 sept. 2014 à 19:48
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 oct. 2014 à 18:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 oct. 2014 à 18:00
A voir également:
- Lecture
- Confirmation de lecture whatsapp - Guide
- Accusé de lecture gmail - Guide
- Lecture epub - Guide
- Accusé de lecture outlook - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
21 sept. 2014 à 23:27
21 sept. 2014 à 23:27
Bonjour,
Oui, tu as posé l'énoncé. Maintenant, faudrait que tu nous fasses part de ta réflexion ? Ou que tu nous dises ce que tu ne comprends pas ou ne parviens pas à faire ? N'hésite pas à nous montrer ce que tu as commencé à faire et dis-nous où tu bloques.
Petite réflexion au passage : l'exemple vient de l'énoncé où de toi ? Ca sera nécessairement des fractions ? Cela peut-être d'autres signes ?
Cdlt,
Oui, tu as posé l'énoncé. Maintenant, faudrait que tu nous fasses part de ta réflexion ? Ou que tu nous dises ce que tu ne comprends pas ou ne parviens pas à faire ? N'hésite pas à nous montrer ce que tu as commencé à faire et dis-nous où tu bloques.
Petite réflexion au passage : l'exemple vient de l'énoncé où de toi ? Ca sera nécessairement des fractions ? Cela peut-être d'autres signes ?
Cdlt,
manutd1993
Messages postés
17
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 octobre 2014
Modifié par manutd1993 le 22/09/2014 à 01:49
Modifié par manutd1993 le 22/09/2014 à 01:49
int main(){
int num1;
int den1;
int num2;
int den2;
char frac;
printf("Bienvenue\n");
printf("veuillez entrer la premiere fraction :\n");
scanf("%d%c%d", &num1,&frac,&den1);
printf("veuillez entrer la deuxieme fraction :\n");
scanf("%d%c%d", &num2,&frac,&den2);
/*Variables*/
int numero = 0;
int x;
int y;
/*Menu de séléction*/
printf("|****************************|\n");
printf("|************Menu************|\n");
printf("|****************************|\n");
printf("\n");
printf("1: Additionner les fractions\n");
printf("2: Soustraire les fractions\n");
printf("3: Multiplier les fractions\n");
printf("4: Diviser les fractions\n");
printf("\n");
printf("Veuillez saisir l operation souhaitee :");
scanf("%d",&numero);
while (numero > 4 || numero < 1){
printf("\nErreur\nEntrer un numero parmis les choix du menu : ");
scanf("%d",&numero);
}
printf("\n");
/*code*/
int div;
if (numero ==1){
x=(num1*den2)+(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==2){
x=(num1*den2)-(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==3){
x=(num1*num2);
y=(den1*den2);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==4){
x=(num1*den2);
y=(num2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}
}
}
}
system("PAUSE");
return 0;
}
int num1;
int den1;
int num2;
int den2;
char frac;
printf("Bienvenue\n");
printf("veuillez entrer la premiere fraction :\n");
scanf("%d%c%d", &num1,&frac,&den1);
printf("veuillez entrer la deuxieme fraction :\n");
scanf("%d%c%d", &num2,&frac,&den2);
/*Variables*/
int numero = 0;
int x;
int y;
/*Menu de séléction*/
printf("|****************************|\n");
printf("|************Menu************|\n");
printf("|****************************|\n");
printf("\n");
printf("1: Additionner les fractions\n");
printf("2: Soustraire les fractions\n");
printf("3: Multiplier les fractions\n");
printf("4: Diviser les fractions\n");
printf("\n");
printf("Veuillez saisir l operation souhaitee :");
scanf("%d",&numero);
while (numero > 4 || numero < 1){
printf("\nErreur\nEntrer un numero parmis les choix du menu : ");
scanf("%d",&numero);
}
printf("\n");
/*code*/
int div;
if (numero ==1){
x=(num1*den2)+(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==2){
x=(num1*den2)-(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==3){
x=(num1*num2);
y=(den1*den2);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}else{
if (numero ==4){
x=(num1*den2);
y=(num2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
printf("resultat: %d/%d", x,y);
}
}
}
}
system("PAUSE");
return 0;
}
manutd1993
Messages postés
17
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 octobre 2014
22 sept. 2014 à 01:55
22 sept. 2014 à 01:55
voila fiddy, ca c'est le code que j'ai pour l'instant.
un code simple qui demande à l'utilisateur d'entrer la première fraction puis la deuxième et de choisir l'opération à faire, de plus ca me donne le résultat simplifié
Mais ce que je veux moi, c'est que j'entre en une fois le calcul (ex: 3/2+4/2) et le programme doit pouvoir lire cette chaine de caractères et me donner le résultat que ce soit addition, soustraction, multiplication ou division
un code simple qui demande à l'utilisateur d'entrer la première fraction puis la deuxième et de choisir l'opération à faire, de plus ca me donne le résultat simplifié
Mais ce que je veux moi, c'est que j'entre en une fois le calcul (ex: 3/2+4/2) et le programme doit pouvoir lire cette chaine de caractères et me donner le résultat que ce soit addition, soustraction, multiplication ou division
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
Modifié par fiddy le 22/09/2014 à 11:41
Modifié par fiddy le 22/09/2014 à 11:41
Bien compliqué ce code et peu lisible. Je te conseille l'utilisation de fonctions : multiplication(), division(), addition(), soustraction() acceptant chacun les 4 nombres (2 numérateurs et 2 dénominateurs) et 1 couple numérateur/dénominateur pour le résultat que tu passes en pointeur.
Du coup, cela peut donner :
A noter qu'il ne faut pas d'espaces dans la saisie sinon cela ne fonctionnera pas.
Merci la prochaine fois d'utiliser la balise "<code c>".
Exemple d'utilisation :
<"code c">
ici tu mets ton code
<"/code">
(à mettre sans les guillemets)
Cdlt,
Du coup, cela peut donner :
#include... void addition(int ...) { ... } ... int main(void) { int num1, denum1; int num2, denum2; int num3, denum3; char op; int ret; ret=scanf("%d/%d%c%d/%d",&num1, &denum1,&op, ...); if (ret == 5) { switch(op) { case '+': addition(num1, ..., &num3, &denum3); break; case '-': ... ... } } printf("=%d/%d\n", ...); return 0; }
A noter qu'il ne faut pas d'espaces dans la saisie sinon cela ne fonctionnera pas.
Merci la prochaine fois d'utiliser la balise "<code c>".
Exemple d'utilisation :
<"code c">
ici tu mets ton code
<"/code">
(à mettre sans les guillemets)
Cdlt,
manutd1993
Messages postés
17
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 octobre 2014
23 sept. 2014 à 21:13
23 sept. 2014 à 21:13
salut fiddy, j'ai essayer comme tu me l'a expliqué mais j'ai des erreurs.
Pourrais-tu jeter un coup d'oeil ?
Pourrais-tu jeter un coup d'oeil ?
manutd1993
Messages postés
17
Date d'inscription
dimanche 21 septembre 2014
Statut
Membre
Dernière intervention
5 octobre 2014
23 sept. 2014 à 21:13
23 sept. 2014 à 21:13
void addition(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*den2)+(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void soustraction(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*den2)-(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void multiplication(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*num2);
y=(den1*den2);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void division(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*den2);
y=(num2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
int main(void) {
int num1, den1;
int num2, den2;
int num3, den3;
char op;
int ret;
int x, y;
printf("Veuillez entrer votre calcul: \n");
ret=scanf("%d/%d%c%d/%d",&num1, &den1,&op,&num2, &den2);
if (ret == 5) {
switch(op) {
case '+':
addition();
break;
case '-':
soustraction(num1, den1,op, num2, den2);
break;
case '*':
multiplication(num1, den1,op, num2, den2);
break;
case '/':
division(num1, den1,op, num2, den2);
break;
}
}
printf("=%d/%d\n",x,y);
return 0;
}
x=(num1*den2)+(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void soustraction(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*den2)-(den1*num2);
y=(den2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void multiplication(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*num2);
y=(den1*den2);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
void division(int den1,int den2,int num1,int num2,int y,int x ) {
x=(num1*den2);
y=(num2*den1);
for (div = 2; div <=x && div <=y; div++){
while((x % div == 0) && (y %div == 0)){
x = x/div;
y = y/div;
}
}
}
int main(void) {
int num1, den1;
int num2, den2;
int num3, den3;
char op;
int ret;
int x, y;
printf("Veuillez entrer votre calcul: \n");
ret=scanf("%d/%d%c%d/%d",&num1, &den1,&op,&num2, &den2);
if (ret == 5) {
switch(op) {
case '+':
addition();
break;
case '-':
soustraction(num1, den1,op, num2, den2);
break;
case '*':
multiplication(num1, den1,op, num2, den2);
break;
case '/':
division(num1, den1,op, num2, den2);
break;
}
}
printf("=%d/%d\n",x,y);
return 0;
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
23 sept. 2014 à 21:41
23 sept. 2014 à 21:41
Heureusement que j'ai précisé :
"Merci la prochaine fois d'utiliser la balise "<code c>".
Exemple d'utilisation :
<"code c">
ici tu mets ton code
<"/code">
(à mettre sans les guillemets)"...
void addition(int den1,int den2,int num1,int num2,int y,int x ) {
Tu as oublié de mettre les pointeurs (relis mon post).
Même remarque pour le)s autres fonctions.
Je te conseille également de faire une fonction pour la simplification de la fraction. Ca sera plus lisible et facilitera la maintenance (ça t'évitera de récrire ce bloc dans toutes les fonctions...).
"Merci la prochaine fois d'utiliser la balise "<code c>".
Exemple d'utilisation :
<"code c">
ici tu mets ton code
<"/code">
(à mettre sans les guillemets)"...
void addition(int den1,int den2,int num1,int num2,int y,int x ) {
Tu as oublié de mettre les pointeurs (relis mon post).
Même remarque pour le)s autres fonctions.
Je te conseille également de faire une fonction pour la simplification de la fraction. Ca sera plus lisible et facilitera la maintenance (ça t'évitera de récrire ce bloc dans toutes les fonctions...).