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 :

utilisation des fonctions


Sujet :

C

  1. #1
    Membre actif
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Par défaut utilisation des fonctions
    Bonsoir;

    j'utilise dans le même projet plusieurs fichiers sources, chaque fichier contient une fonctions et un autre fichier source qui représente le programme principale "main.c", l'appel de toutes les fonctions se fait au niveau du programme principale, mon but c'est d'importer un fichier, calculer et afficher la distance,
    je probleme c'est que l'execution du programme principale n'affiche rien


    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
    main.c
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
      int main(void) {
        int i;
        int j;
        int k;
        double f[150][4];
        double dis[150][150]={0};
     
     
        if(!readIris(f)) {
            puts("....");
            //readIris(f);
            computeDistance(dis,f);
            //printf("aaa");
            system("PAUSE");
            return(1);
     
        }
     
      //return 0;
    }
    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
    readIris.c
     
     
    #include <math.h>
    #include <stdio.h>
    #include <stdbool.h> 
     
    bool readIris(double f[][4]) {
        FILE *st;
        int i;
         int j;
         int k;
     
        st=fopen("ir.csv","r");
        if(!st)
            return(0);
     
        for(i=0;i<150;i++)
            for(j=0;j<4;j++)
                fscanf(st,"%lf;",&f[i][j]);
                //printf("f=%f",f[1][1]);
        fclose(st);
         for(i=0;i<150;i++, puts(""))
    		for(j=0;j<4;j++)
    			printf("%g ",f[i][j]);
        return(1);
        //system("PAUSE");	
    }

    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
    computeDistance.c
     
     
    #include <math.h>
    #include <stdio.h>
    #include <stdbool.h>
     
     
    void computeDistances(double dis[][150],double f[][4]) {
         int i;
         int j;
         int k;
        for(i=0;i<150;i++)
            for( j=0;j<150;j++) {
                double temp=0;
                for( k=0;k<4;k++)
                    temp+=sqrt(pow(f[i][k]-f[j][k],2));
                dis[i][j]=temp;
            }
            //system("PAUSE");	
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 749
    Par défaut
    Il te manque les fichiers .h qui contiennent les déclarations publiques des fonctions/ procédures, déclarations des structures et macros et les variables globales.

    et c'est le 3ième cours en C après les types et les fonctions.

  3. #3
    Membre actif
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Par défaut
    Bonsoir;

    JE bloque Toujours

    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
    //main.c
     
    #include <stdio.h>
    #include <stdlib.h>
    #include "calc_dis.h"
     
     
      int main(int argc, char* argv[]) {
        int i;
        int j;
        int k;
        double f[150][4];
        double dis[150][150]={0};
     
     
        if(!readIris(f)) 
            puts("....");
     
            //readIris(f);
            computeDistance(dis,f);
            //printf("aaa");
            //system("PAUSE");
            //return(1);
            system("PAUSE");
            return 1;
        /*#ifdef __WIN32__
            
    #endif*/
     
     
      //return 0;
    }
    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
    //calc_dis.h
     
    #ifndef DEF_CALC_DIS
    #define DEF_CALC_DIS
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    bool readIris(double f[][4]);
    void computeDistances(double dis[][150],double f[][4]);
     
     
     
    #endif
    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
    //calc_dis.c
     
    #include<stdlib.h>
    #include<stdio.h>
     
    #include "calc_dis.h"  
     
     
    /***********************************************/
    bool readIris(double f[][4]) {
        FILE *st;
        int i;
         int j;
         int k;
     
        st=fopen("ir.csv","r");
        if(!st)
            return(0);
     
        for(i=0;i<150;i++)
            for(j=0;j<4;j++)
                fscanf(st,"%lf;",&f[i][j]);
                //printf("f=%f",f[1][1]);
        fclose(st);
         for(i=0;i<150;i++, puts(""))
    		for(j=0;j<4;j++)
    			printf("%g ",f[i][j]);
        return(1);
        //system("PAUSE");	
    }
     
    /**************************************************/
    void computeDistances(double dis[][150],double f[][4]) {
         int i;
         int j;
         int k;
        for(i=0;i<150;i++)
            for( j=0;j<150;j++) {
                double temp=0;
                for( k=0;k<4;k++)
                    temp+=sqrt(pow(f[i][k]-f[j][k],2));
                dis[i][j]=temp;
            }
            //system("PAUSE");	
    }
     
    /***************************************************/
    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
    5.1;3.5;1.4;0.2
    4.9;3.0;1.4;0.2
    4.7;3.2;1.3;0.2
    4.6;3.1;1.5;0.2
    5.0;3.6;1.4;0.2
    5.4;3.9;1.7;0.4
    4.6;3.4;1.4;0.3
    5.0;3.4;1.5;0.2
    4.4;2.9;1.4;0.2
    4.9;3.1;1.5;0.1
    5.4;3.7;1.5;0.2
    4.8;3.4;1.6;0.2
    4.8;3.0;1.4;0.1
    4.3;3.0;1.1;0.1
    5.8;4.0;1.2;0.2
    5.7;4.4;1.5;0.4
    5.4;3.9;1.3;0.4
    5.1;3.5;1.4;0.3
    5.7;3.8;1.7;0.3
    5.1;3.8;1.5;0.3
    5.4;3.4;1.7;0.2
    erreur:

    5 C:\Dev-Cpp\calc_heritage\main.c In file included from main.c

    10 C:\Dev-Cpp\calc_heritage\calc_dis.h syntax error before "readIris"

    10 C:\Dev-Cpp\calc_heritage\calc_dis.h [Warning] data definition has no type or storage class

    C:\Dev-Cpp\calc_heritage\Makefile.win [Build Error] [main.o] Error 1

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 749
    Par défaut
    Le type bool n'existe pas (*) il faut lire tes cours - La valeur 0 est fausse, toute les autres valeurs entières (char, short, int, long, long long) sont vraies.
    Moi, j'utilise un type unsigned char

    Ensuite , en C, le passage des tableaux est dégradé en pointeur. Donc, tes passages [][X] sont susceptibles d'être 1 pointeur, avec la taille de ces tableaux à passer en paramètre en plus.
    Si c'est utile, tout mettre dans une structure array (ou autre nom) (données, nombre de colonnes, nombre de lignes, ...)


    Édit : Le type _Bool existe depuis la norme C99 (avec le compilateur gcc, gcc -std=c99) et il est dit qu'il existe un alias bool (<- surement un typedef)

Discussions similaires

  1. [VB.NET][Excel] utiliser des fonction Excel comme xlToRight
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2006, 12h10
  2. [Xml/XSl] utiliser des fonction vb
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/01/2006, 17h28
  3. [hibernate] utilisation des fonctions d'aggregation
    Par osopardo dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/08/2005, 09h41
  4. utilisation des fonctions d'une dll
    Par jackk dans le forum C++
    Réponses: 14
    Dernier message: 15/06/2005, 16h50
  5. Utiliser des fonctions Pascal
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/03/2004, 15h43

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