Géométrie analytique niveau seconde générale

Contenu du snippet

Programme de géométire analytique de niveau de seconde.
Fais pour DEV-C++, non testé sur d'autres compilateurs

Source / Exemple :


#include <iostream>
  using namespace std;
#include <myconio.h>
  
//////////////////////////////////CLASSE POINT//////////////////////////////////
                                //////////////
class Point 
{
friend class Vecteur;
private:
        double x,y;
public:
       Point(double xx=0, double yy=0)
       {
               x=xx;
               y=yy;
       }    
          
       void demander_point()
       {
            cout<<"Entrez un x et un y separes par un espace: "<<flush;
            cin>>x>>y;
            cout<<endl;
       }
       
       void afficher_point()
       {
            cout<<"Coordonnes: ("<<x<<";"<<y<<")";
       }
       
       Point coor_milieu(Point &pt)
       {
             Point temp;
             temp.x=pt.x+x;
             temp.y=pt.y+y;
             temp.x=temp.x/2;
             temp.y=temp.y/2;
             return temp;
       }
       
       void equation(Point &pt1)
       {
                      double m=(pt1.y-y)/(pt1.x-x);
                      double p=y-m*y;
                      cout<<"Vos deux points forment une droite qui a pour equation y="<<m<<"x+"<<p<<endl;
       }
              
       void echange(Point &pt2)
       {

            x=pt2.x;
            y=pt2.y;
      }
};

/////////////////////////////////CLASSE VECTEUR/////////////////////////////////
                               ////////////////
class Vecteur 
{
friend class Point;
private:
        double x,y;
public:
       Vecteur(double xx=0, double yy=0)
       {
               x=xx;
               y=yy;
       }   
           
       void demander_vecteur()
       {
            cout<<"Entrez un x et un y separes par un espace: "<<flush;
            cin>>x>>y;
            cout<<endl;
       }
       
       void afficher_vecteur()
       {
            cout<<"Coordonnes: ("<<x<<";"<<y<<")"<<endl;
       }
       
       void calcul_vecteur_partir_deux_points()
       {
            cout<<"Calcul d'un vecteur a partir de deux points: "<<endl;
            Point pt1, pt2;
            cout<<"Point a: \n";
            pt1.demander_point();
            cout<<"Point b: \n";
            pt2.demander_point();
            x=pt2.x-pt1.x;
            y=pt2.y-pt1.y;
       }
       
       bool colineaire(Vecteur &vec)
       {
            if(x*vec.y==y*vec.x)
              return true;
            else
              return false;
       }
       
       double coeff_proportio(Vecteur &vec)
       {
            return x/vec.x;
       }
       
       bool ortho(Vecteur &vec1)
       {
            if(x*vec1.x==-(y)*-(vec1.y))
              return true;
            else
              return false;
       }
       
       Point coor_milieu_spe()
       {
            Point pt;
            pt.x=x/2;
            pt.y=y/2;
            return pt;
       }
               
       void calcul_vecteur(Point &pt, Point &pt1)
       {
            x=pt1.x-pt.x;
            y=pt1.y-pt.y;
       }
       
       friend Vecteur operator+(Vecteur &vec, Vecteur &vec1)
       {
               Vecteur vec2;
               vec2.x=vec.x+vec1.x;
               vec2.y=vec.y+vec1.y;
               return vec2;
       }
       
       friend Vecteur operator-(Vecteur &vec, Vecteur &vec1)
       {
               Vecteur vec2;
               vec2.x=vec.x-vec1.x;
               vec2.y=vec.y-vec1.y;
               return vec2;
       }
       
       friend Vecteur operator*(Vecteur &vec, Vecteur &vec1)
       {
               Vecteur vec2;
               vec2.x=vec.x*vec1.x;
               vec2.y=vec.y*vec1.y;
               return vec2;
       }
       
       friend Vecteur operator/(Vecteur &vec, Vecteur &vec1)
       {
               Vecteur vec2;
               vec2.x=vec.x/vec1.x;
               vec2.y=vec.y/vec1.y;
               return vec2;
       }
       
       void demander_vecteur_simple()
       {
            cout<<flush;
            cin>>x>>y;
       }
};

///////////////////////////////////FONCTIONS////////////////////////////////////
                                 ///////////
                                 
void lanceur_menu1()                            
{
     Vecteur vec;
     vec.calcul_vecteur_partir_deux_points();
     vec.afficher_vecteur();
     system("PAUSE>nul");
}
                                 
void lanceur_menu2_1()
{
     Vecteur vec, vec1;
     vec.calcul_vecteur_partir_deux_points();
     vec1.calcul_vecteur_partir_deux_points();
     vec1.colineaire(vec);
     bool colineaire=vec1.colineaire(vec);           
     if(colineaire==true)
       cout<<"Vos trois points sont alignes"<<endl;
     else
       cout<<"Vos trois points ne sont pas alignes"<<endl;
     system("PAUSE>nul");
}

void lanceur_menu2_2()
{
     Point pt, pt1, pt2;
     cout<<"Premier point: ";
     pt.demander_point();
     cout<<"Deuxieme point: ";
     pt1.demander_point();
     cout<<"Troisieme point: ";
     pt2.demander_point();
     Vecteur vec, vec1;
     vec.calcul_vecteur(pt,pt1);
     pt1.echange(pt2);
     vec1.calcul_vecteur(pt,pt1);
     bool colineaire=vec1.colineaire(vec);           
     if(colineaire==true)
       cout<<"Vos trois points sont alignes"<<endl;
     else
       cout<<"Vos trois points ne sont pas alignes"<<endl;
     system("PAUSE>nul");
}

void lanceur_menu2()
{
     char choixmenu3;
     system("cls");
     cout<<"Trouver si trois points alignes: "<<endl;
     cout<<"  1-en entrant deux vecteurs formes par ces points"<<endl;
     cout<<"  2-en entrant trois points"<<endl;
     cin>>choixmenu3;
     cout<<endl;
     switch(choixmenu3)
     {
     case'1': { lanceur_menu2_1(); break; } 
     case'2': { lanceur_menu2_2(); break; } 
     }
}

void lanceur_menu3_1()
{
     Vecteur vec, vec1;
     cout<<"Vecteur a: "<<endl;
     vec.demander_vecteur();
     cout<<"Vecteur b: "<<endl;
     vec1.demander_vecteur();
     if(vec1.colineaire(vec1)==false)
     cout<<"Vos vecteurs ne sont pas colineaires, "<<endl<<"et ils doivent l'etre pour determiner le coefficient de proportionnalite"<<endl;
     else
     cout<<"Le coefficient de proportionnalite est "<<vec1.coeff_proportio(vec)<<endl;
     system("PAUSE>nul");
}

void lanceur_menu3_2()
{
     Vecteur vec, vec1;
     cout<<"Vecteur a: "<<endl;
     vec.calcul_vecteur_partir_deux_points();
     cout<<"Vecteur b: "<<endl;
     vec1.demander_vecteur();
     if(vec1.colineaire(vec1)==false)
     cout<<"Vos vecteurs ne sont pas colineaires, "<<endl<<"et ils doivent l'etre pour determiner le coefficient de proportionnalite"<<endl;
     else
     cout<<"Le coefficient de proportionnalite est "<<vec1.coeff_proportio(vec)<<endl;
     system("PAUSE>nul");
}

void lanceur_menu3_3()
{
     Vecteur vec, vec1;
     cout<<"Vecteur a: "<<endl;
     vec.calcul_vecteur_partir_deux_points();
     cout<<"Vecteur b: "<<endl;
     vec1.calcul_vecteur_partir_deux_points();
     if(vec1.colineaire(vec1)==false)
     cout<<"Vos vecteurs ne sont pas colineaires, "<<endl<<"et ils doivent l'etre pour determiner le coefficient de proportionnalite"<<endl;
     else
     cout<<"Le coefficient de proportionnalite est "<<vec1.coeff_proportio(vec)<<endl;
     system("PAUSE>nul");
}

void lanceur_menu3()
{
     char choixmenu;
     system("cls");
     cout<<"Trouver le coefficient de proportionnalite: "<<endl;
     cout<<"  1-en entrant deux vecteurs"<<endl;
     cout<<"  2-en entrant un vecteur et deux points qui en forment un autre"<<endl;
     cout<<"  3-en entrant quatre points qui forment deux vecteurs"<<endl;
     cout<<"Votre choix :"<<flush;
     cin>>choixmenu;
     cout<<endl;
     switch(choixmenu)
     {
     case'1': { lanceur_menu3_1(); break; } 
     case'2': { lanceur_menu3_2(); break; } 
     case'3': { lanceur_menu3_3(); break; } 
     }
}

void lanceur_menu4_1()
{
     Vecteur vec, vec1;
     cout<<"Vecteur a: "<<endl;
     vec.demander_vecteur();
     cout<<"Vecteur b: "<<endl;
     vec1.demander_vecteur();
     bool colineaire=vec1.colineaire(vec);           
     if(colineaire==true)
       cout<<"Vos deux droites sont paralleles"<<endl;
     else
       cout<<"Vos deux droites ne sont pas paralleles"<<endl;
     
     system("PAUSE>nul");
}

void lanceur_menu4_2()
{
     Vecteur vec, vec1;
     vec.calcul_vecteur_partir_deux_points();
     vec1.calcul_vecteur_partir_deux_points();
     bool colineaire=vec1.colineaire(vec);           
     if(colineaire==true)
       cout<<"Vos deux droites sont paralleles"<<endl;
     else
       cout<<"Vos deux droites ne sont pas paralleles"<<endl;
     system("PAUSE>nul");
}

void lanceur_menu4_3()
{
     Vecteur vec, vec1;
     cout<<"Vecteur a: "<<endl;
     vec.demander_vecteur();
     vec1.calcul_vecteur_partir_deux_points();
     bool colineaire=vec1.colineaire(vec);           
     if(colineaire==true)
       cout<<"Vos deux droites sont paralleles"<<endl;
     else
       cout<<"Vos deux droites ne sont pas paralleles"<<endl;
     system("PAUSE>nul");
}

void lanceur_menu4()
{
     char choixmenu;
     system("cls");
     cout<<"Trouver si deux droites paralleles: "<<endl;
     cout<<"  1-en entrant les coordonnes de deux vecteurs"<<endl;
     cout<<"  2-en entrant les coordonnes de quatre points formant deux vecteurs"<<endl;
     cout<<"  3-en entrant les coordonnes d\'un vecteur et de deux points points formant un "<<"     vecteur"<<endl;
     cout<<"Votre choix :"<<flush;
     cin>>choixmenu;
     cout<<endl;
     switch(choixmenu)
     {
     case'1': { lanceur_menu4_1(); break; } 
     case'2': { lanceur_menu4_2(); break; } 
     case'3': { lanceur_menu4_3(); break; }
     }
}

void lanceur_menu5_1()
{
     Vecteur vec;
     vec.demander_vecteur();
     Point milieu;
     milieu=vec.coor_milieu_spe();
     cout<<"Milieu, ";
     milieu.afficher_point();
     system("PAUSE>nul");
}

void lanceur_menu5_2()
{
     Point pt, pt1;
     pt.demander_point();
     pt1.demander_point();
     Point milieu;
     milieu=pt1.coor_milieu(pt);
     cout<<"Milieu, ";
     milieu.afficher_point();
     system("PAUSE>nul");
}

void lanceur_menu5()
{
     char choixmenu;
     system("cls");
     cout<<"Trouver le milieu d'un vecteur"<<endl;
     cout<<"  1-en entrant les coordonnes d'un vecteur"<<endl;
     cout<<"  2-en entrant les coordonnes de deux points formants un vecteur"<<endl;     
     cout<<"Votre choix :"<<flush;
     cin>>choixmenu;
     cout<<endl;
     switch(choixmenu)
     {
     case'1': { lanceur_menu5_1(); break; } 
     case'2': { lanceur_menu5_2(); break; } 
     }
}

void lanceur_menu6_1()
{
     Vecteur vec, vec1;
     cout<<"Vecteur 1: ";
     vec.demander_vecteur();
     cout<<"Vecteur 2: ";
     vec1.demander_vecteur();
     bool ortho=vec.ortho(vec1);
     if(ortho==true)
       cout<<endl<<"Vos droites formees par les deux vecteurs sont perpendiculaires"<<endl;
     else
       cout<<endl<<"Votre droites formees par les vecteurs ne sont pas perpendiculaires"<<endl;    
}

void lanceur_menu6_2()
{
     Vecteur vec, vec1;
     cout<<"Vecteur 1: ";
     vec.calcul_vecteur_partir_deux_points();
     cout<<"Vecteur 2: ";
     vec.calcul_vecteur_partir_deux_points();
     bool ortho=vec.ortho(vec1);
     if(ortho==true)
       cout<<endl<<"Vos droites formees par les deux vecteurs sont perpendiculaires"<<endl;
     else
       cout<<endl<<"Votre droites formees par les vecteurs ne sont pas perpendiculaires"<<endl;    
}

void lanceur_menu6_3()
{
     Vecteur vec, vec1;
     cout<<"Vecteur 1: ";
     vec.demander_vecteur();
     cout<<"Vecteur 2: ";
     vec.calcul_vecteur_partir_deux_points();
     bool ortho=vec.ortho(vec1);
     if(ortho==true)
       cout<<endl<<"Vos droites formees par les deux vecteurs sont perpendiculaires"<<endl;
     else
       cout<<endl<<"Votre droites formees par les vecteurs ne sont pas perpendiculaires"<<endl;    
}

void lanceur_menu6()
{
     char choixmenu;
     system("cls");
     cout<<"Trouver si deux droites sont perpendiculaires"<<endl;
     cout<<"  1-en entrant les coordonnes de deux vecteurs"<<endl;
     cout<<"  2-en entrant les coordonnes de quatre points formant deux vecteurs"<<endl;
     cout<<"  3-en entrant les coordonnes d\'un vecteur et deux deux points en formant un"<<endl;    
     cout<<"Votre choix :"<<flush;
     cin>>choixmenu;
     cout<<endl;
     switch(choixmenu)
     {
     case'1': { lanceur_menu6_1(); break; } 
     case'2': { lanceur_menu6_2(); break; } 
     case'3': { lanceur_menu6_3(); break; } 
     }
     system("PAUSE>nul");
}

void lanceur_menu7()
{
     Point pt, pt1;
     pt.demander_point();
     pt1.demander_point();
     pt.equation(pt1);
     system("PAUSE>nul");
}

void lanceur_menu8()
{
               system("cls");
               Vecteur vec, vec1, resul;
               char operateur=0;
               cout<<"Reportez-vous au menu \"informations\" si vous n'avez jamais utilise cet espace"<<endl;
               cout<<endl<<endl<<"Entrez votre calcul: "<<flush;
               vec.demander_vecteur_simple();
               cout<<flush;
               cin>>operateur;
               vec1.demander_vecteur_simple();
               switch(operateur)
               {
               case'+': { resul=vec+vec1; cout<<"Resultat: "; resul.afficher_vecteur(); break; }
               case'-': { resul=vec-vec1; cout<<"Resultat: "; resul.afficher_vecteur(); break; }
               case'*': { resul=vec*vec1; cout<<"Resultat: "; resul.afficher_vecteur(); break; }
               case'/': { resul=vec/vec1; cout<<"Resultat: "; resul.afficher_vecteur(); break;}
               }
               system("PAUSE>nul");
}

void lanceur_menu9()
{
     cout<<endl<<"-Lorsque vous entrez deux points pour "<<endl<<"calculer un vecteur, si on appelle a le premier point";
     cout<<endl<<"et b le second, c'est le vecteur ab qui est calcule a chaque fois"<<endl;
     cout<<"-Pour l'espace de calcul, tapez le x d'un vecteur, un espace, "<<endl;
     cout<<"  le y du meme vecteur, votre signe (+,-,*,/), le x du second vecteur,"<<endl;
     cout<<"  un espace et enfin le y du second vecteur."<<endl;
     cout<<"    Exemple: \"45 50+45 50\" donnera pour resultat un vecteur "<<endl<<"  de coordonnees (90;100) "<<endl;
     cout<<"-Auteur: Raish, addresse email: raishoux@hotmail.com"<<endl;
     cout<<"-Niveau aborde: seconde generale"<<endl;
     system("PAUSE>nul");
}

//////////////////////////////FONCTION  PRINCIPALE//////////////////////////////
                            //////////////////////
int main()
{
int choixmenuprincipal=0;
do 
{    
     system("cls");
     textcolor(12);
     cout<<"Menu du programme de geometrie analytique en 2D:"<<endl;
     cout<<"  1-Calculer les coordonnees d\'un vecteur"<<endl;
     cout<<"  2-Trouver si trois points sont alignes"<<endl;
     cout<<"  3-Trouver le coefficient de proportionnalite qui existe entre deux vecteurs"<<endl;
     cout<<"  4-Trouver si deux droites sont paralleles"<<endl;
     cout<<"  5-Trouver le milieu d'un vecteur"<<endl;
     cout<<"  6-Trouver si deux droites sont perpendiculaires"<<endl;
     cout<<"  7-Trouver l'equation reduite d'une droite"<<endl;
     cout<<"  8-Espace de calculs (+,-,*,/) sur les vecteurs"<<endl;
     cout<<"  9-Information(s) sur l'utilisation"<<endl;
     cout<<"  10-Sortir"<<endl;
     textcolor(9);
     cout<<"Votre choix :"<<flush;
     cin>>choixmenuprincipal;
     cout<<endl;
     textcolor(15);
     switch(choixmenuprincipal)
     {
     case 1: { lanceur_menu1(); break; } 
     case 2: { lanceur_menu2(); break; } 
     case 3: { lanceur_menu3(); break; }
     case 4: { lanceur_menu4(); break; }
     case 5: { lanceur_menu5(); break; }
     case 6: { lanceur_menu6(); break; }
     case 7: { lanceur_menu7(); break; }
     case 8: { lanceur_menu8(); break; }
     case 9: { lanceur_menu9(); break; }
     }
}
while(choixmenuprincipal!=10);
return 0;
}

Conclusion :


Bon, ok, c'est p't'être pas génial, mais c'était parce que je m'ennuyait... Donnez votre avis s'il-vous-plaît ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.