« Utilisateur:Zulul/Wikimodule:langage C++ niveau1:Etudiant zulul » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 2 300 :
 
=== Semaine 12 ===
<pre>
//9.1 calcule (A+B)/(D-E*F)
//-------------------------
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
struct FRACTION {
int a, b;
};
 
int PGCD(int a, int b) {
return ((a%b==0)?b:PGCD(b,a%b));
}
bool NORMALIZE(int &a, int &b, bool chk=0) {
bool ok=true;int pgcd=0;
(chk)?ok:((b<1)?ok=0:ok);
pgcd=PGCD(a,b);
if(pgcd) {
a/=pgcd;b/=pgcd;
}
return ok;
}
void SAISIR(FRACTION &x) {
bool ok=0;
while(!ok) {
cout<<"numerateur : ";cin>>x.a;
cout<<"denominateur : ";cin>>x.b;
ok=NORMALIZE(x.a,x.b);
}
 
}
 
void AFFICHE(FRACTION x) {
 
cout<<x.a<<"/"<<x.b<<endl;
 
}
FRACTION SOMME(FRACTION x1, FRACTION x2) {
 
FRACTION x;
x.a=x1.a*x2.b+x2.a*x1.b;
x.b=x1.b*x2.b;
NORMALIZE(x.a,x.b);
return x;
 
}
FRACTION DIFFERENCE(FRACTION x1, FRACTION x2) {
 
FRACTION x;
x.a=x1.a*x2.b-x2.a*x1.b;
x.b=x1.b*x2.b;
NORMALIZE(x.a,x.b);
return x;
}
FRACTION DIVISE(FRACTION x1, FRACTION x2) {
 
FRACTION x;
x.a=x1.a*x2.b;
x.b=x1.b*x2.a;
NORMALIZE(x.a,x.b);
return x;
}
FRACTION MULTIPLIE(FRACTION x1, FRACTION x2) {
 
FRACTION x;
x.a=x1.a*x2.a;
x.b=x1.b*x2.b;
NORMALIZE(x.a,x.b);
return x;
 
}
int main(int argc, char *argv[]) {
 
FRACTION A,B,D,E,F,RES;
 
cout<<"A ?"<<endl;SAISIR(A);
cout<<"B ?"<<endl;SAISIR(B);
cout<<"D ?"<<endl;SAISIR(D);
cout<<"E ?"<<endl;SAISIR(E);
cout<<"F ?"<<endl;SAISIR(F);
cout<<"(A+B)/(D-E*F)"<<endl;
RES=DIVISE(SOMME(A,B),DIFFERENCE(D,MULTIPLIE(E,F)));
NORMALIZE(RES.a,RES.b,1);
AFFICHE(RES);
 
system("PAUSE");
return 0;
 
}
</pre>
 
=== Semaine 13 ===
=== Semaine 14 ===