home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / alb_c10 / chap_09 / ch09_10.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-08  |  1.9 KB  |  111 lines

  1. /*********************************************************************
  2. *  CH09_10.C                                            Tableaux  *
  3. *            Addition de deux matrices en utilisant des pointeurs *
  4. *********************************************************************/
  5.  
  6. #include<stdio.h>
  7.  
  8. #define dim1 2
  9. #define dim2 3
  10.  
  11. void LitInt( int*);
  12. void Initialise( int*);
  13. void Affiche( int*);
  14. void Addition( int*, int*, int*);
  15.  
  16. main( void)
  17. {
  18.     int tab0[dim1][dim2], tab1[dim1][dim2], tab2[dim1][dim2];
  19.  
  20.     Initialise( tab1);
  21.     Initialise( tab2);       
  22.  
  23.     Addition( tab0, tab1, tab2);   
  24.  
  25.     Affiche( tab0);
  26. }
  27.  
  28. void Addition( int *ptr0, int *ptr1, int *ptr2)
  29. {
  30.       int i, j;
  31.  
  32.       for( i= 0; i< dim1; i++)
  33.       {
  34.           for( j= 0; j< dim2; j++)
  35.       {
  36.          *ptr0++=  *ptr1++ + *ptr2++;
  37.       }
  38.       }
  39. }
  40.  
  41. void Initialise( int *ptr)
  42. {
  43.       int i, j;
  44.  
  45.       printf("\n Initialisation d'une matrice [%d][%d]\n",
  46.                                      dim1, dim2);
  47.  
  48.       for( i= 0; i< dim1; i++)
  49.       {
  50.           for( j= 0; j< dim2; j++)
  51.       {
  52.          printf(" tab[%d][%d]=  ", i, j);
  53.          LitInt( ptr++);
  54.       }
  55.       }
  56. }
  57.  
  58. void Affiche( int *ptr)
  59. {
  60.       int i, j;
  61.  
  62.       for( i= 0; i< dim1; i++)
  63.       {
  64.           for( j= 0; j< dim2; j++)
  65.       {
  66.          printf("\n tab[%d][%d]=  %d", i, j, *ptr++);
  67.       }
  68.       }
  69. }
  70.  
  71. void LitInt( int *entier)
  72. {
  73.     double dble;
  74.     do
  75.         {
  76.        while( scanf("%lf", &dble)!= 1)
  77.         while( getchar() != '\n');
  78.        while( getchar() != '\n');
  79.     }
  80.     while( dble< -32768.0 || dble> 32767.0);
  81.         *entier= (int) dble;
  82. }
  83.  
  84. /*
  85.  Initialisation d'une matrice [2][3]
  86.  tab[0][0]=  0
  87.  tab[0][1]=  1
  88.  tab[0][2]=  2
  89.  tab[1][0]=  3
  90.  tab[1][1]=  4
  91.  tab[1][2]=  5
  92.  
  93.  Initialisation d'une matrice [2][3]
  94.  tab[0][0]=  5
  95.  tab[0][1]=  4
  96.  tab[0][2]=  3
  97.  tab[1][0]=  2
  98.  tab[1][1]=  1
  99.  tab[1][2]=  0
  100.  
  101.  tab[0][0]=  5
  102.  tab[0][1]=  5
  103.  tab[0][2]=  5
  104.  tab[1][0]=  5
  105.  tab[1][1]=  5
  106.  tab[1][2]=  5                               */
  107.  
  108.  
  109.  
  110.  
  111.