Lecture
Résolu
manutd1993
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà pour un exercice de cours, je dois réussir à trouver l'opération à faire à partir d'un calcul en chaîne de caractères. Ex: quand j'écris 7/2 - 3/5 , le programme doit reconnaître le signe - et me sortir le résultat : 29/10
Voilà pour un exercice de cours, je dois réussir à trouver l'opération à faire à partir d'un calcul en chaîne de caractères. Ex: quand j'écris 7/2 - 3/5 , le programme doit reconnaître le signe - et me sortir le résultat : 29/10
A voir également:
- Lecture
- Lecture epub sur pc - Guide
- Confirmation de lecture whatsapp - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Accusé de lecture gmail - Guide
- Lecture gratuite - Télécharger - Vie quotidienne
2 réponses
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,
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;
}
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
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,
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;
}
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...).