REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEURE ET DE
POPULAIRE
RECHERCHE SCIENTIFIQUE
UNIVERSITÉ M’HAMMED BOUGARA BOUMERDES
Domaine : science et technologie
Filière : génie électrique
Spécialité : réseaux télécommunication
Mini projet de C++ sur les équations mathématiques
Réalisé par :
BOUKHETAIA SAMI
CHEKIANE MOHAMED AYOUB
DJEDDOU ZAHIA
I) Un programme pour résoudre des équations type a x 2+ bx+ c=0
Le program:
#include <iostream>
#include <math.h>
using namespace std;
int main ()
float a,b,c,x1,x2,x,delta;
cout<<"entrez la valeur de a : ";
cin>>a;
cout<<"entrez la valeur de b : ";
cin>>b;
cout<<"entrez la valeur de c : ";
cin>>c;
if (a==0)
if (b==0)
if (!(c==0))
cout<<"pas de solution"<<endl;
else
cout<<"infinity de solution"<<endl;
else
cout<<"on a une seule solution \n x="<<(-c/b)<<endl;
else
delta=(b*b)-(4*a*c) ;
if(delta == 0)
x =-b/(2*a);
cout<<"l'équation admet une solution double x= "<<x<<endl;
else if ( delta > 0 )
x1 =(-b+sqrt(delta))/(2*a);
x2 =(-b-sqrt(delta))/(2*a);
cout<<"l'équation admet deux solution : "<<endl;
cout<<"première solution : " << x1 <<endl;
cout<<"deuxième solution : " << x2 <<endl;
else
cout<<"y a pas de solution reel ";
return 0;
}
Excution :
II) un programme pour résoudre la suite numériqueun= avec n est un entier Natural,
définie par : u0=0,5 et u1=1 et le terme de récurrence est : un+1=0,5un+2un-1 :
#include <iostream>
using namespace std;
int main ()
Float u0=0.5 , u1=1 , un , i , n ;
cout<<"entrez N : ";
cin>>n;
for(i=1,i<n,i++)
un=(0.5*u1)+(2*u0) ;
u0=u1 ;
u1=un ;
cout<<"un+1= "<<un;
return 0;
}
Excution :
III) 1-un programme pour faire produit matriciel :
#include <iostream>
using namespace std;
int main()
{
int ligneB,colonneB;
int ligneA,colonneA;
int i,j;
cout <<"Donnez le nombre de lignes de cette matrice A:"<< endl ;
cin>>ligneA;
cout<<"Donnez le nombre de colonnes de cette matrice A:"<<endl;
cin>>colonneA;
cout<<"Donnez le nombre de lignes de cette matrice B: "<<endl;
cin>>ligneB;
cout<<"Donnez le nombre de colonnes de cette matrice B: "<<endl;
cin>>colonneB;
if (colonneA==ligneB)
{
int A[ligneA][colonneA];
for(i=0;i<ligneA;i++)
{
for(j=0;j<colonneA;j++)
{
cout<<"Saisisez la valeure de A["<<i+1<<","<<j+1<<"] =";
cin>>A[i][j];
}
}
cout<<endl;
cout<<endl;
int B[ligneB][colonneB];
for(i=0;i<ligneB;i++)
{
for(j=0;j<colonneB;j++)
{
cout<<"Saisisez la valeure de B["<<i+1<<","<<j+1<<"]= ";
cin>>B[i][j];
}
}
int p[colonneA][ligneB],k;
for(i=0;i<ligneA;i++)
{
for (j=0; j<colonneB;j++)
{
p[i][j]=0;
for(k=0;k<ligneB;k++)
p[i][j]+=A[i][k]*B[k][j];
}
}
cout<<"\n \n Le produit: "<<endl;
for(i=0;i<ligneA;i++)
{
for(j=0;j<colonneB;j++)
{
cout<<p[i][j];
cout<<" ";
}
cout<<endl;
}
else
cout<<" produit impossible parsque le nombre de ligne de A!# le nmbr de
colonne de B"<<endl;
}
Exécution :
2 – le calcule de déterminant matrice :
#include<iostream>
#include<math.h>
using namespace std;
int determinant( int matrix[10][10], int n) {
int det = 0;
int submatrix[10][10];
if (n == 2)
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
else {
for (int x = 0; x < n; x++) {
int subi = 0;
for (int i = 1; i< n; i++) {
int subj = 0;
for (int j = 0; j < n; j++) {
if (j == x)
continue;
submatrix[subi][subj] = matrix[i][j];
subj++;
}
subi++;
}
det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 ));
}
}
return det;
}
int main() {
int n, i, j;
int matrix[10][10];
cout<< "Enter the size of the matrix:\n";
cin>> n;
cout<< "Enter the elements of the matrix:\n";
for (i = 0; i< n; i++)
for (j = 0; j < n; j++)
cin>> matrix[i][j];
cout<<"The entered matrix is:"<<endl;
for (i = 0; i< n; i++) {
for (j = 0; j < n; j++)
cout << matrix[i][j] <<" ";
cout<<endl;
}
cout<<"Determinant of the matrix is "<< determinant(matrix, n);
return 0;
}
Exécution :
3-addition de matrice :
#include<iostream>
using namespace std;
int main()
{
int matx1[10][10], matx2[10][10], matx3[10][10];
int i,j,row,col;
cout<<"Combien de lignes et de colonnes il faut que la meme taille pour
les 2 matrices?\n";
cin>>row;
cin>>col;
cout<<"\nEntrez la première matrice:\n";
for(i=0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx1[i][j];
cout<<"\nEntrez la deuxième matrice:\n";
for(i = 0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx2[i][j];
cout<<"\nMatrice après l'addition:\n";
for(i = 0; i< row; ++i)
{
for(j=0; j < col; ++j)
{
matx3[i][j] = matx1[i][j] + matx2[i][j];
cout<<matx3[i][j];
cout<<" ";
}
cout<<"\n";
}
return 0;
}
Exécution :
4- la soustraction de matrice :
#include<iostream>
using namespace std;
int main()
{
int matx1[10][10], matx2[10][10], matx3[10][10];
int i,j,row,col;
cout<<"Combien de lignes et de colonnes il faut que la meme taille pour
les 2 matrices?\n";
cin>>row;
cin>>col;
cout<<"\nEntrez la première matrice:\n";
for(i=0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx1[i][j];
cout<<"\nEntrez la deuxième matrice:\n";
for(i = 0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx2[i][j];
cout<<"\nmatrice après soustraction :\n";
for(i = 0; i< row; ++i)
{
for(j=0; j < col; ++j)
{
matx3[i][j] = matx1[i][j] - matx2[i][j];
cout<<matx3[i][j];
cout<<" ";
}
cout<<"\n";
}
Eéxcution :
5- la division des matrices :
#include<iostream>
using namespace std;
int main()
int r,c,matrice1[10][10],matrice2[10][10],div[10][10];
cout << "entrez le nombre de lignes (entre 1 et 10 ) :" ;
cin>>r;
cout << "entrez le nombre de colonnes (entre 1 et 10 ) :";
cin>>c;
cout<< " \nentrez le numéro de la première matrice de l'élément : \n" ;
for (I nti=0;i<r; i++)
for (int k=0;k<c;k++)
cout << "entrez les valeurs du tableau dans la première matrice ["<<i<<"]["<<k<<"]= :";
cin>>matrice1[i][k];
}
}
cout<< " \nentrez le numéro de la 2eme matrice de l'élément : \n" ;
for (int i=0;i<r; i++)
for (int k=0;k<c;k++)
cout << "entrez les valeurs du tableau dans la 2eme matrice ["<<i<<"]["<<k<<"]= :";
cin>> matrice2[i][k];
for (inti=0;i<r;i++)
for(int k=0;k<c;k++)
div[i][k]=0;
for (inti=0;i<r;i++)
for(int k=0;k<c;k++)
div[i][k]=matrice1[i][k]/matrice2[i][k];
for (int i=0;i<r;i++)
for(int k=0;k<c;k++)
cout<<div[i][k]<<" ";
cout<<endl;
}
Excution :
6-inversion matrice via un algorithme d'elimination de gauss-jordan :
#include<iostream>
#include<iomanip>
#include<math.h>
#include<stdlib.h>
#define SIZE 10
using namespace std;
int main()
float a[SIZE][SIZE], x[SIZE], ratio;
inti,j,k,n;
cout<<"Entrez LE nombre de lignes et colonnes de votre matrice : ";
cin>>n;
cout<<"Entrez les elements de matrice: " <<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cout<<"a["<<i<<"]"<< j<<"]= ";
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
a[i][j+n] = 1;
else
a[i][j+n] = 0;
for(i=1;i<=n;i++)
if(a[i][i] == 0.0)
cout<<"erreurmathematique!";
exit(0);
for(j=1;j<=n;j++)
if(i!=j)
ratio = a[j][i]/a[i][i];
for(k=1;k<=2*n;k++)
a[j][k] = a[j][k] - ratio*a[i][k];
for(i=1;i<=n;i++)
for(j=n+1;j<=2*n;j++)
a[i][j] = a[i][j]/a[i][i];
cout<<endl<<"l'nverse de Matriceest:"<<endl;
for(i=1;i<=n;i++)
for(j=n+1;j<=2*n;j++)
cout<< a[i][j]<<"\t";
}
cout<<endl;
return(0);
}
Excution :