IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

travail avec matrices


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Par défaut travail avec matrices
    Bonjour,
    mon but est d' ouvrir théoriquement un fichier ppm qui est composé d'une matrice qui resprésente une photo! Mais pour commencer simple je donne moi meme les valeurs de la matrice au clavier et ensuite je veux faire afficher cette matrice à l'ecran pour controler si mon programme fonctionne coreectement jusque là pour lire les données! Pour lire cela fonctionne mais c'est lors de la lecture que le programme ne me donne à l'écran toujour que la dernière ligne! :-( Et je ne vois pas pourquoi! Car quand j'aurai résolu cela je vais pouvoircontinuer avec ma prochaine fonction qui fera le flip et pour terminer une fonction pour sauvegarder le tout en format .ppm! Si vous pourriez m'aider pour le premier problème se serait bien et si vous auriez une suggestion ou meme une fonction tout ce qu'il y a de plus simple je l'accepte volontiers pour voir car il ne me reste que peu de temps pour le terminer! Je vous en serait très reconnaissant! Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <stdio.h>
    #define LIG 10
    #define COL 9
     
    typedef int Matrice[LIG][COL];
     
    void lireMatrice(Matrice a, int r, int c) 
    {
    	int i, j;
    	for (i = 0; i < r; i++)
    		for (j = 0; j < c; j++)
    		{
    			printf("\nIntroduire l' element à ranger dans la case: [%d][%d]\n",i,j);
    			scanf("%d", &a[i][j]);
    		}
    }
     
    void ecrireMatrice(Matrice a, int r, int c) 
    {
    	int i, j;
    	for (i = 0; i < r; i++) 
    		{
    			for (j = 0; j < c; j++)
    			printf("%d ", a[i][j]);
    		printf("\r");
    		}
    	printf("\n");   
    }
     
    main() 
    {
    	Matrice A, B, Id;
    	int r;
    	int c;
    	printf("Nombres de lignes:");
    	scanf("%d",&r);
    	printf("Nombres de colonnes:");
    	scanf("%d",&c);
     
    	lireMatrice(A,r,c);
    	ecrireMatrice(A,r,c);
    }

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Il faudrait changer ton

    en

    Jc

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Par défaut bonjour
    Bonjour j'ai mtn réussi à faire le flip vertical d'une photo de format 4 lignes et 9 colonnes! Mais je n'arrive pas le flip horizontal! J'essaie par tous les moyens mais impossible de trouver! :-( Sauriez vous m'aider svp?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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*/

  4. #4
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Pour y voir plus clair :

    reposte ton code avec

    Et indente ton code stp.

Discussions similaires

  1. [Débutant] travailler avec une partie de matrice
    Par Nathaniel_etudiant dans le forum Simulink
    Réponses: 8
    Dernier message: 17/09/2010, 17h06
  2. Réponses: 3
    Dernier message: 16/06/2010, 11h06
  3. Ouvrir le poste de travail (avec ShellExecute) ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/08/2003, 11h09
  4. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16
  5. Travailler avec des bits
    Par Vulvulune dans le forum Langage
    Réponses: 5
    Dernier message: 02/03/2003, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo