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 :

affichage de mon tableau


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut affichage de mon tableau
    bonjour,
    comme ca fait 2heures que je recherche mon erreur qui doit etre stupide je viens ici.
    je veux afficher deux tableaux voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include "verif1.h"
     
      long N=0;
      N=10;
     
      double *X=NULL, *Y=NULL;
      X = (double *)malloc(N*sizeof(double));
      Y = (double *)malloc(N*sizeof(double));
     
      onentrelesvaleursdansXetY(N,X,Y);
     
      verif1(N,X,Y); //affiche les valeurs de X et Y

    voici le detail de verif1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void verif1(long N, double X[], double Y[])
    {
        long j=0;
        for ( j=0 ; j<N ; j++)
        {
            printf( "(%lf , %lf)",X[j],Y[j] );
            getchar();
        }
     
    }
    codeblock me repond:
    error conflicting types for 'verif1'

    Je vois pas pourquoi il y a une erreur de types. Quand je met le code directement sans passer par verif1.h il n'y a pas de probleme.
    Merci.

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    onentrelesvaleursdansXetY connais pas !

    Y a pas de fonction main ?

    voici le detail de verif1:
    verif1 ? .h ou .c

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut
    Si bien sur,
    j'ai une fonction main et une dizaine de fichier.h dont verif1.h, et je peux pas mettre tous les fichier sur mon site car le reseau de l'universite bloque mon ftp filezilla. Si tu connais un ftp qui contourne ce genre de truc (skype et msn fonctionne) je veux bien. je te met onentrelesvaleursdans XetY mais j'esperais que l'erreur soit plus flagrante et a priori celui marche bien.
    il s'appelle move.h



    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
     
    // Fait bouger les particules d'un pas de discretisation
    void move(double X[], double Y[], double Vx[], double Vy[],double Ux[], double Uy[], double dt, long N, double f1, double f2)
    {
        long j=0,k=0,l=0;
     
        for (j=0; j<N; j++)   
        {
    	X[j] = ( X[j]+dt*Vx[j] ) - floor( X[j]+dt*Vx[j] ) ;
    	Y[j] = ( Y[j]+dt*Vy[j] ) - floor( Y[j]+dt*Vy[j] ) ;
        }
     
     
        for (k=0 ; k<N ; k++ )
        {
    	//// left strip
    	if (X[k]<0.5)
    	{
    	    if (Y[k]<0.5)
    	    {
    		// down cell
    		Ux[k] = Y[k]-0.25;
    		Uy[k] = X[k]-0.25;
    	    }
    	    else
    	    {
    		// up cell
    		Ux[k] = 0.75-Y[k];
    		Uy[k] = X[k]-0.25;
    	    }
    	}
    	else
    	{
    	    if (Y[k]<0.5)
    	    {
    		// down cell
    		Ux[k] = Y[k]-0.25;
    		Uy[k] = 0.75-X[k];
    	    }
    	    else
    	    {
    		// up cell
    		Ux[k] = 0.75-Y[k];
    		Uy[k] = 0.75-X[k];
    	    }
    	}
     
        }
        for (l=0; l<N; l++)
        {
    	Vx[l] = f1*Vx[l]+f2*Ux[l];
    	Vy[l] = f1*Vy[l]+f2*Uy[l];
        }
     
        /* verifications
        for (j=0; j<N; j++)
    	printf("X[%ld]=%lf et Y[%ld]=%lf \n",j,X[j],j,Y[j]);
    	getchar(); */
    }

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut
    Oui, effectivement en essayant d'isoler le probleme j'ai vu que le probleme ne vient pas de verif.h tant pis je m'en passerais.
    Merci

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Tu n'as pas répondu à ma derniere question !
    Mais j'ai comme l'impression que tu mets des définitions de fonctions dans les fichier entête .h

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Par défaut
    Je n'utilise que des fichier.h. Mon programme n'etant pas immense je me suis dit que c'etait pas la peine de faire des fichier.c. Pour etre plus explicite voici un exemple:

    mon fichier principale main.c
    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
     
    int main()
    {
        long N=0,i=0, j=0;
        N=5;
        double *X=NULL, *Y=NULL;
        X = (double *)malloc(N*sizeof(double));
        Y = (double *)malloc(N*sizeof(double));
     
        for( i=0; i<N; i++)
        {
            X[i] = i;
            Y[i] = 2*i;
        }
     
        //verification sans utiliser un fichier.h
        for ( j=0 ; j<N ; j++)
        {
            printf( "(%lf , %lf)",X[j],Y[j] );
            getchar();
        }
     
        //verification en utilisant un fichier.h
     
        verification(N,X,Y);
     
        return 0;
    }

    mon fichier secondaire verification.h:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void verification(long N, double X[], double Y[])
    {
        printf
        ("interieur de verification");
        long j=0;
        for ( j=0 ; j<N ; j++)
        {
            printf( "(%lf , %lf)",X[j],Y[j] );
            getchar();
        }
     
    }
    J'ai egalement des fichiers.h qui appellent des fichiers.h Est ce que cela pose un probleme ( a codeblock en particulier)? Je perds un peut de temps a recompiler le tout a chaque fois mais cela me parait negligeable pour une dizaine de page de programmes?

  7. #7
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par kharg Voir le message
    Je n'utilise que des fichier.h. Mon programme n'etant pas immense je me suis dit que c'etait pas la peine de faire des fichier.c.
    Que le projet soit important ou non, c'est une mauvaise pratique de mettre du code dans les fichiers d'entête. Outre le fait que ce ne soit pas idiomatique et donc peu lisible, ce n'est pas aisément réutilisable et tu t'exposes à des problèmes de multiples déclarations dès que le projet va grossir et que tu vas rajouter d'autre fichiers source.

    Eventuellement, si le projet est peu important, on peut envisager de tout mettre dans le même fichier .c (même si je ne recommande pas cette pratique sauf cas particulier) mais certainement pas de mettre du code dans des .h

    Citation Envoyé par kharg Voir le message
    J'ai egalement des fichiers.h qui appellent des fichiers.h Est ce que cela pose un probleme ( a codeblock en particulier)? Je perds un peut de temps a recompiler le tout a chaque fois mais cela me parait negligeable pour une dizaine de page de programmes?
    Si un même fichier .h se retrouve inclus deux fois, oui ça va poser problème (d'autant que tu n'as pas utiliser de garde anti-réinclusion).

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kharg Voir le message
    Je n'utilise que des fichier.h. Mon programme n'etant pas immense je me suis dit que c'etait pas la peine de faire des fichier.c.
    Quelque soit la taille du projet, il faut absolument respecter les principes de Bonne Programmation.

    Voici expliqué comment créer correctement les 3 fichiers sous Code::Blocks (20 Mo, mettre le son)

    http://delahaye.emmanuel.free.fr/video/modulaire.avi

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/03/2014, 06h02
  2. Réponses: 1
    Dernier message: 28/11/2013, 13h43
  3. Réponses: 4
    Dernier message: 20/08/2011, 13h06
  4. Réponses: 2
    Dernier message: 26/12/2006, 12h49
  5. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46

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