Polynome en langage C
hicham-dj
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici un programme qui permet d'afficher , calculer la somme,la multiplication ... de polynomes
#include<stdio.h>
#define n 5 /* le plus grand degre possible pour les polynomes c'est n-1 */
struct poly
{
int dx; /* plus grand degre de X */
int dy; /* plus grand degre de Y */
int coef[2*n][2*n]; /*le tableau des coefficients du polynome on declare avec le cas generale de 2*n
car on vas utiliser cette meme structure pour representer le poly de multiplication*/
};
/*______________________________________________________________*/
void constructeur( poly *P )
{ int i,j;
/* l'initialisation */
for(i=0;i<2*n;i++)
for(j=0;j<2*n;j++)
P->coef[i][j] = 0;
printf("le plus grand exposent de x : " ); scanf("%d",&P->dx);
printf("le plus grand exposent de y : " ); scanf("%d",&P->dy);
for(i=0;i<=P->dx;i++)
32. for(j=0;j<=P->dy;j++)
{
printf(" le coeficien du monome ( x^%d y^%d ) : ",i,j);
scanf("%d",&P->coef[i][j]);
}
}
/*______________________________________________________________*/
void addition( poly *A , poly *B , poly *P )
{
int i,j;
/*il faut determiner la dimention de la matrice avec la puisance du poly */
if(A->dx > B->dx) P->dx = A->dx; else P->dx = B->dx;
if(A->dy > B->dy) P->dy = A->dy; else P->dy = B->dy;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = A->coef[i][j] + B->coef[i][j];
}
/*_______________________________________________________________*/
void soustraction( poly *A , poly *B , poly *P )
{
int i,j;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = A->coef[i][j] - B->coef[i][j];
}
/*______________________________________________________________*/
void multiplication( poly *A , poly *B , poly *P )
{
int i,j,g,z;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = 0;
for(i=0;i<=A->dx;i++)
for(j=0;j<=A->dy;j++)
for(g=0;g<=B->dx;g++)
for(z=0;z<=B->dy;z++)
P->coef[i+g][j+z] += A->coef[i][j] * B->coef[g][z];
}
/*______________________________________________________________*/
void Affich_poly( poly *PP )
{
int i,j;
for(i=0;i<=PP->dx;i++)
for(j=0;j<=PP->dy;j++)
if(PP->coef[i][j] != 0)
printf(" +(%d) X%d Y%d",PP->coef[i][j],i,j);
}
/*______________________________________________________________*/
void ligne(void)
{ printf("\n\n ------------------------------------------\n\n" ); }
/*______________________________________________________________*/
int main()
{
poly P1 , P2 , P3 , P4 , P5;
constructeur(&P1);
printf("\nP1(X,Y) =" );
Affich_poly( &P1 );
ligne(); /*______________________________________________*/
constructeur( &P2 );
printf("\nP2(X,Y) =" );
Affich_poly( &P2 );
ligne(); /*______________________________________________*/
addition( &P1 , &P2 , &P3 );
printf("\nP1 + P2 =" );
Affich_poly( &P3 );
ligne(); /*______________________________________________*/
P4.dx = P3.dx;
P4.dy = P3.dy; /*la puissance du poly soustraction est egale a celle de l'addition*/
soustraction( &P1 , &P2 , &P4 );
printf("\nP1 - P2 =" );
Affich_poly( &P4 );
ligne(); /*______________________________________________*/
/* prevoir les dimentions (de X et de Y) pour la multiplication */
P5.dx = P1.dx + P2.dx;
P5.dy = P1.dy + P2.dy;
multiplication( &P1 , &P2 , &P5 );
printf("\nP1 * P2 =" );
Affich_poly( &P5 );
return 0;
}
quand j'ai compilé ce programme , code blocks me donne des erreurs :
Compiling: C:\Documents and Settings\Administrateur\Mes documents\Poly.c
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:15: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:37: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:51: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:61: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:77: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c: In function 'main':
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: 'poly' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: (Each undeclared identifier is reported only once
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: for each function it appears in.)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: expected ';' before 'P1'
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:99: error: 'P1' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:105: error: 'P2' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:110: error: 'P3' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:116: error: 'P4' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:124: error: 'P5' undeclared (first use in this function)
Quelqu'un trouve les erreurs et les corriger SVP
voici un programme qui permet d'afficher , calculer la somme,la multiplication ... de polynomes
#include<stdio.h>
#define n 5 /* le plus grand degre possible pour les polynomes c'est n-1 */
struct poly
{
int dx; /* plus grand degre de X */
int dy; /* plus grand degre de Y */
int coef[2*n][2*n]; /*le tableau des coefficients du polynome on declare avec le cas generale de 2*n
car on vas utiliser cette meme structure pour representer le poly de multiplication*/
};
/*______________________________________________________________*/
void constructeur( poly *P )
{ int i,j;
/* l'initialisation */
for(i=0;i<2*n;i++)
for(j=0;j<2*n;j++)
P->coef[i][j] = 0;
printf("le plus grand exposent de x : " ); scanf("%d",&P->dx);
printf("le plus grand exposent de y : " ); scanf("%d",&P->dy);
for(i=0;i<=P->dx;i++)
32. for(j=0;j<=P->dy;j++)
{
printf(" le coeficien du monome ( x^%d y^%d ) : ",i,j);
scanf("%d",&P->coef[i][j]);
}
}
/*______________________________________________________________*/
void addition( poly *A , poly *B , poly *P )
{
int i,j;
/*il faut determiner la dimention de la matrice avec la puisance du poly */
if(A->dx > B->dx) P->dx = A->dx; else P->dx = B->dx;
if(A->dy > B->dy) P->dy = A->dy; else P->dy = B->dy;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = A->coef[i][j] + B->coef[i][j];
}
/*_______________________________________________________________*/
void soustraction( poly *A , poly *B , poly *P )
{
int i,j;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = A->coef[i][j] - B->coef[i][j];
}
/*______________________________________________________________*/
void multiplication( poly *A , poly *B , poly *P )
{
int i,j,g,z;
for(i=0;i<=P->dx;i++)
for(j=0;j<=P->dy;j++)
P->coef[i][j] = 0;
for(i=0;i<=A->dx;i++)
for(j=0;j<=A->dy;j++)
for(g=0;g<=B->dx;g++)
for(z=0;z<=B->dy;z++)
P->coef[i+g][j+z] += A->coef[i][j] * B->coef[g][z];
}
/*______________________________________________________________*/
void Affich_poly( poly *PP )
{
int i,j;
for(i=0;i<=PP->dx;i++)
for(j=0;j<=PP->dy;j++)
if(PP->coef[i][j] != 0)
printf(" +(%d) X%d Y%d",PP->coef[i][j],i,j);
}
/*______________________________________________________________*/
void ligne(void)
{ printf("\n\n ------------------------------------------\n\n" ); }
/*______________________________________________________________*/
int main()
{
poly P1 , P2 , P3 , P4 , P5;
constructeur(&P1);
printf("\nP1(X,Y) =" );
Affich_poly( &P1 );
ligne(); /*______________________________________________*/
constructeur( &P2 );
printf("\nP2(X,Y) =" );
Affich_poly( &P2 );
ligne(); /*______________________________________________*/
addition( &P1 , &P2 , &P3 );
printf("\nP1 + P2 =" );
Affich_poly( &P3 );
ligne(); /*______________________________________________*/
P4.dx = P3.dx;
P4.dy = P3.dy; /*la puissance du poly soustraction est egale a celle de l'addition*/
soustraction( &P1 , &P2 , &P4 );
printf("\nP1 - P2 =" );
Affich_poly( &P4 );
ligne(); /*______________________________________________*/
/* prevoir les dimentions (de X et de Y) pour la multiplication */
P5.dx = P1.dx + P2.dx;
P5.dy = P1.dy + P2.dy;
multiplication( &P1 , &P2 , &P5 );
printf("\nP1 * P2 =" );
Affich_poly( &P5 );
return 0;
}
quand j'ai compilé ce programme , code blocks me donne des erreurs :
Compiling: C:\Documents and Settings\Administrateur\Mes documents\Poly.c
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:15: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:37: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:51: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:61: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:77: error: expected ')' before '*' token
C:\Documents and Settings\Administrateur\Mes documents\Poly.c: In function 'main':
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: 'poly' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: (Each undeclared identifier is reported only once
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: for each function it appears in.)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:97: error: expected ';' before 'P1'
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:99: error: 'P1' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:105: error: 'P2' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:110: error: 'P3' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:116: error: 'P4' undeclared (first use in this function)
C:\Documents and Settings\Administrateur\Mes documents\Poly.c:124: error: 'P5' undeclared (first use in this function)
Quelqu'un trouve les erreurs et les corriger SVP
A voir également:
- Polynome en langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
1 réponse
Bonjour,
Ajoutez "struct" devant les "poly" en paramètre des fonctions et dans le main() aussi comme ce n'est pas un typedef ou alors modifier la structure :
Ajoutez "struct" devant les "poly" en paramètre des fonctions et dans le main() aussi comme ce n'est pas un typedef ou alors modifier la structure :
typedef struct { int dx; /* plus grand degre de X */ int dy; /* plus grand degre de Y */ int coef[2*n][2*n]; /*le tableau des coefficients du polynome on declare avec le cas generale de 2*n car on vas utiliser cette meme structure pour representer le poly de multiplication*/ }poly;