FabienM | Bonjour a tous ... J'ai un fichier .c qui calcul des matrices une generé manuellement et l'autre par l'ordinateur...puis qui les additionnent... il se compose d'une fonction main, d'une fonction affichage des matrice et d'une fonction somme des matrices... A partir de ce fichier je doit creer ma bibliotheque...c-a-d que je doit creer un fichier matrice.h (regroupant toutes les declarations relative aux matrices) un autre matrice.c (regroupant les procedures ou fonction relative aux matrices) et un fichier principal.c regroupant ma fonction main et l'appel des 2 fonctions affiche-matrice et somme-matrice voici le code des 3 fichiers :
le fichier matrice.h
Code :
- #include<stdio.h>
- #include<stdlib.h>
- #define maxi 2
- typedef float matrice[maxi][maxi];
- matrice Mat;
- void afficheMat(matrice T);
- void sommeMat(matrice x, matrice y, matrice z);
|
le fichier matrice.c
Code :
- #include "matrice.h"
- void afficheMat(matrice T) //fonction affichage des matrices
- {
- int i,j;
- //-----------procedure d'affichage des matrices
- for (i=0;i<maxi;i++)
- {
- for (j=0;j<maxi;j++)
- {
- printf("%f ; ",T[i][j]); //affichage reel des matrices
- }
- }
- fflush(stdin);
- getchar();
- }
- void sommeMat(matrice x, matrice y, matrice z) //fonction somme des matrices
- {
- int i,j;
- //------------calcul de la somme Mat1 + Mat2
- for (i=0;i<maxi;i++)
- {
- for (j=0;j<maxi;j++)
- {
- z[i][j]=x[i][j]+y[i][j]; //somme matrices
- }
- }
- fflush(stdin);
- getchar();
- }
|
le fichier principal.c
[/cpp]
Code :
- #include "matrice.h"
- void main()
- {
- /* Mat1 est une matrice dont les valeurs seront lues au clavier
- */
- matrice Mat1 ;
- /* Mat2 est une matrice dont les valeurs seront g?n?r?es al?atoirement
- */
- matrice Mat2 ;
- /* MatS est la somme des matrices Mat1 + Mat2
- */
- matrice MatS ;
- /* i et j sont des entiers, indices des lignes et des colonnes des 2 matrices
- */
- int i, j ;
- //------------lecture des valeurs des coefficients de Mat1 au clavier
- printf("Donner les coefficients de la matrice :\n" ) ;
- for (i=0;i<maxi;i++) //for pour la 1ere dimension
- for (j=0;j<maxi;j++) //for pour la 2eme dimension
- {
- printf("\ndonner M(%d, %d) : ", i, j) ;
- scanf("%f", &Mat1[i][j]) ; //un indice par dimension
- }
- //------------g?n?ration al?atoire des valeurs des coefficients de Mat2
- randomize();
- for (i=0;i<maxi;i++)
- for (j=0;j<maxi;j++)
- {
- Mat2[i][j] = random(10001)-5000 ;
- }
- //------------affichages des deux matrices Mat1 et Mat2
- printf("\nMat1 : " ) ;
- afficheMat(Mat1) ;
- printf("\nMat2 : " ) ;
- afficheMat(Mat2) ;
- //------------affichage de la somme des matrices
- sommeMat(Mat1,Mat2,MatS) ;
- printf("\nMatS : " ) ;
- afficheMat(MatS) ;
- fflush(stdin) ;
- getchar() ;
- }
|
quand je comile les 3 fichier je n'obtient pas d'erreur...mais par contre des que j'execute le fichier principal.c j'obtient 2 erreurs qui sont: Linker error: undefined symbol _afficheMat in principal.c Linker error: undefined symbol _sommeMat in principal.c de quoi peuvent venir ces erreurs ??? Message édité par FabienM le 03-11-2002 à 13:58:42
|