1 2 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