Programme triangle rectangle ou non

Résolu
Phil974m Messages postés 2 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 30 janvier 2009 - 30 janv. 2009 à 07:52
Phil974m Messages postés 2 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 30 janvier 2009 - 30 janv. 2009 à 18:24
j'ai un petit soucis avec mon programme qui ne gère pas correctement les données saisie
j'ai fait un petit programme demandé dans mon bts iris qui cherche à connaitre si
un triangle est rectangle ou non ou si ce n'est pas un triangle
je pense que le soucis vient du calcul si qq à une petite idée merci d'avance
Phil.

voici le code source c++:

/* Programme devoir n°2 BTS IRIS*/
/*Dev-C++ 4.9.9.2                      */

#include
using namespace std;

//prototype de la fonction triangle
int triangle(int, int, int);

//prototype de la fonction triangleR
int triangleR(int, int, int);

main()
{
// Variables de retour 1 ou 0
int non_rectangle,rectangle;
//Variables de saisie de données des segments AB, AC, AB
int AB,AC,BC;
//initialisation des variables
AB=0;
AC=0;
BC=0;

// saisie des données AB AC BC    
cout << "Veuillez entrer la valeur du segment AB" << endl;
cin >> AB;
cout << "Veuillez entrer la valeur du segment AC" << endl;
cin >> AC;
cout << "Veuillez entrer la valeur du segment BC" << endl;
cin >> BC;

//variable de récupération non_rectangle de valeur 1 ou 0
non_rectangle = triangle(AB,AC,BC);
//variable de récupération rectangle de valeur 1 ou 0
rectangle = triangleR(AB,AC,BC);

// test pour voir les valeurs de retour des variables
cout << "res1  " << triangle(AB,AC,BC) << endl;   
cout << "res2  " << triangleR(AB,AC,BC) << endl;

// condition si les valeurs de retour correspondent à un triangle non rectangle
if (non_rectangle==1 && rectangle == 0)
{
    cout << "Les valeurs correspondent à un triangle non rectangle" << endl;          
}
// condition si les valeurs de retour correspondent à  pas un triangle
else if (non_rectangle==0 && rectangle==0)
{
    cout << "Les valeurs ne correspondent pas à un triangle" << endl;
}
// condition si les valeurs de retour correspondent à un triangle rectangle
else if (non_rectangle==1 && rectangle==1)
{
     cout << "Les valeurs correspondent à un triangle rectangle" << endl;    

       
system("PAUSE");     
return(0);     

}

//fonction triangle qui analyse si les données saisies sont celles d'un triangle
int triangle(int a1,int a2,int a3)
{
int res1;
// condition qui compare les segments "AB, AC et BC"
if (a1 < a2 + a3  &&  a2 < a1 + a3  &&  a3 < a1 + a2)
   {
// si oui res1=1
   res1=1;
   return res1;
   }
//si non res1=0
else
   {    
   res1=0;
   return res1; 
    }
}
//fonction triangleR qui analyse si les données saisies sont celles d'un triangle
//rectangle
int triangleR(int b1,int b2, int b3)
{
int res2; 
// calcul qui permet de savoir si le triangle est rectangle   if (b1^2 b2^2 + b3^2 || b2^2 b1^2 + b3^2 || b3^2 == b1^2 + b2^2)
// si oui res2=1
   {
    res2=1;
    return res2;
   }
//si non res2=0
else
    {
    res2=0;
    return res2;
    }
}     

2 réponses

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
30 janv. 2009 à 16:52
Bonjour,

L'opérateur '^' effectue un « ou exclusif » bit à bit sur ses arguments (bitwise xor).

Pour élever un entier b au carré, le plus simple et le plus rapide est sûrement de le multiplier par lui-même : b * b.

Bonne continuation dans ton étude de la programmation.
3
Phil974m Messages postés 2 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 30 janvier 2009
30 janv. 2009 à 18:24
Merci chouchou
c'est effectivement ça, je multiplie les entiers par eux même b*b au lieu de b^2 et ça fonctionne
merci encore
0
Rejoignez-nous