home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * CH09_11.C Tableaux crΘΘs dynamiquement:*
- * *
- * Addition de deux matrices [ m, n] en utilisant des pointeurs *
- *********************************************************************/
-
- #include<stdio.h>
- #include<alloc.h> /* pour pouvoir utiliser la fonction malloc() */
-
- void LitInt( int*);
- void Initialise( int*, int, int);
- void Affiche( int*, int, int);
- void Addition( int*, int*, int*, int, int);
-
- main( void)
- {
- int m= 2, n= 3, /* m, n: dimensions des matrices */
- *tab0, *tab1, *tab2;
-
- tab0= ( int*) malloc( m* n* sizeof(int));
- tab1= ( int*) malloc( m* n* sizeof (int));
- tab2= ( int*) malloc( m* n* sizeof(int));
-
- Initialise( tab1, m, n);
- Initialise( tab2, m, n);
-
- Addition( tab0, tab1, tab2, m, n);
-
- Affiche( tab0, m, n);
-
- free( tab0); /* libΘration de la mΘmoire allouΘe */
- free( tab1);
- free( tab2);
- }
-
- void Addition( int *ptr0, int *ptr1, int *ptr2, int p, int q)
- {
- int i, j;
-
- for( i= 0; i< p; i++)
- {
- for( j= 0; j< q; j++)
- {
- *ptr0++= *ptr1++ + *ptr2++;
- }
- }
- }
-
- void Initialise( int *ptr, int p, int q)
- {
- int i, j;
-
- printf("\n Initialisation d'une matrice [%d][%d]\n", p, q);
-
- for( i= 0; i< p; i++)
- {
- for( j= 0; j< q; j++)
- {
- printf(" tab[%d][%d]= ", i, j);
- LitInt( ptr++);
- }
- }
- }
-
- void Affiche( int *ptr, int p, int q)
- {
- int i, j;
-
- for( i= 0; i< p; i++)
- {
- for( j= 0; j< q; j++)
- {
- printf("\n tab[%d][%d]= %d", i, j, *ptr++);
- }
- }
- }
-
- void LitInt( int *entier)
- {
- double dble;
- do
- {
- while( scanf("%lf", &dble)!= 1)
- while( getchar() != '\n');
- while( getchar() != '\n');
- }
- while( dble< -32768.0 || dble> 32767.0);
- *entier= (int) dble;
- }
-
- /*
- Initialisation d'une matrice [2][3]
- tab[0][0]= 0
- tab[0][1]= 1
- tab[0][2]= 2
- tab[1][0]= 3
- tab[1][1]= 4
- tab[1][2]= 5
-
- Initialisation d'une matrice [2][3]
- tab[0][0]= 5
- tab[0][1]= 4
- tab[0][2]= 3
- tab[1][0]= 2
- tab[1][1]= 1
- tab[1][2]= 0
-
- tab[0][0]= 5
- tab[0][1]= 5
- tab[0][2]= 5
- tab[1][0]= 5
- tab[1][1]= 5
- tab[1][2]= 5 */
-
-
-
-
-