| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 
 | /*début de la section d'inclusion*/
#include <stdio.h> 
/*fin de la section d'inclusion*/
 
#define LIG 255
#define COL 255
 
typedef int Matrice[LIG][COL];
 
/*début: */
/*Programme qui lit les valeurs de la matrice entrée au clavier*/
void lireMatrice(Matrice a, int r, int c) 
{   int i, j;   /*définition des variables i et j de type entier*/
	for (i = 0; i < r; i++) /*on demande à l'utilisateur de donner les valeurs pour la matrice*/
		for (j = 0; j < c; j++)
		{   /*appel d'une fonction de la bibliothèque stdio qui permet 
		     d'afficher à l'écran le les entiers stoké dans les variables i et j. 
		     Il faut utiliser %d*/
			printf("\nIntroduire l'élément à ranger dans la case: [%d][%d]\n",i,j);
			scanf("%d", &a[i][j]);
		}
}
/*Programme qui affichage à l'ecran la matrice entée au clavier pour 
  savoir comment est la matrice avant de faire une transformation desus*/
void ecrireMatrice(Matrice a, int r, int c) 
{   /*texte entre "  " parait à l'écran*/
	printf( " voici la matrice avant la transformation finale \n" ); 
	int i, j;  /*déclaration de variables*/
	for (i = 0; i < r; i++) /* on remplit la matrice*/
		{
			for (j = 0; j < c; j++)
			printf("%d ", a[i][j]); /* affichage de la matrice*/
		printf("\n"); /* retour à la ligne*/
		}
	printf("\n");   
}
/*Programme qui réalise le flip vertical d'une matrice et affichage le résultat 
à l'écran ainsi que les sauvegardes sous fichier .ppm*/
void flip_vertical(Matrice a, int r)
{ /*texte entre "  " parait à l'écran*/
  printf( " voici la matrice après le flip vertical: \n" ); 
  FILE *fp;  
  int i;    /*déclaration de variables*/
  int j;
  int temp;
  int b;
  for (i=0; i<r; ++i)            
    { 
       for (j=0; j<6; ++j)       
         { 
	       if (j<3)
             {temp =a[i][j] ;     /*changement des positions*/
			 a[i][j]=a[i][j+6];
			 a[i][j+6]=temp;
			 }
		   else 
 			 {temp=a[i][j];       /*changement des positions*/
 			 a[i][j]=a[i][j+0];
 			 a[i][j+0]=temp;}
		 }
 
   for (j=0;j<9;++j)
      printf (" %d" ,a[i][j] );
    printf( "\n" );      
    }
 
        fp=fopen("flipvertical.ppm","w");
		fprintf(fp,"P3\n");
		fprintf(fp,"3 4\n");
		fprintf(fp,"255\n");
		for (i = 0; i < 4; i++)     /*on remplit la matrice*/
		{
			for (j = 0; j < 9; j++)
			fprintf(fp,"%d ", a[i][j]);
		 fprintf(fp,"\n");
 
		}
		fclose(fp); /*on ferme le fichier*/
}
/*fonction principale*/
/*début: main*/
main() 
{   Matrice A, B, Id;
	int r;   /*initialisations de variables*/
	int c;
	/*lecture de deux nombres entiers*/
	printf("Nombres de lignes:");
	scanf("%d",&r);
	printf("Nombres de colonnes:");
	scanf("%d",&c);
 
	lireMatrice(A,r,c);   /*appel de la fonction pour lire les valeurs données par l'utilisateur*/
	ecrireMatrice(A,r,c); /*appel de la fonction pour afficher la matrice à l'ecran avant le flip*/
	flip_vertical(A,r);   /*appel de la fonction pour afficher la matrice flipé à l'éran*/ 
}
/* fin: main*/ | 
Partager