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 :

Pointeur sur un tableau de réels


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Stagaire en dev
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Stagaire en dev
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut Pointeur sur un tableau de réels
    Bonjour ,
    J'essaye de mettre dans un tableau de 6 valeurs les 6 premières valeurs d'un tableau de 402 valeurs, déterminer les maximums parmi les 6 premières valeurs puis effacer les 5 premières, mettre la sixième à la place de la première , et dans les 5 cases restantes la suite des valeurs du tableau de 402 valeurs , et ainsi de suite je travaille sur le petit tableau de 6 valeurs jusqu’à avoir parcouru le grand tableau de 402 valeurs réelles.


    Exemple pour un tableau de 26 valeurs entières on a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab1[26]={1,3,2,5,4,7,6,9,8,10,12,11,16,14,18,13,17,15,18,21,21,21,21,21,21,21};
    Pour le tableau de 6 valeurs il va varier comme cela:

    Nom : Capture1.JPG
Affichages : 116
Taille : 73,9 Ko

    et pour la détection des maximums elle se passe au court du temps dans le tableau et le résultat est :

    Nom : Capture2.JPG
Affichages : 112
Taille : 44,3 Ko

    Ce qui marche très bien avec un tableau d'entier.

    Maintenant on passe au tableau de 402 valeurs réelles :

    je dois passer maintenant mes définitions int en float

    Voici la fonction :
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    #define BUFFER_SIZE   6
     
    float tab1[402] = {25.11794,25.11794,25.11794,25.11794,25.11794,25.11794,25.138475,25.138475,25.138475,25.11794,25.138475,25.15901,25.138475,25.15901,25.15901,25.15901,25.15901,25.15901,25.138475,25.138475,25.097406,25.056338,25.015273,24.994741,24.974209,24.933147,24.912617,24.892087,24.892087,24.871557,24.953678,25.11794,25.220618,25.467092,25.836923,26.145226,26.412503,26.679856,26.988433,27.35886,27.750023,28.120747,28.491617,28.821401,29.213169,29.501944,29.646365,29.687632,29.708266,29.7289,29.7289,29.687632,29.646365,29.625732,29.605099,29.625732,29.605099,29.563836,29.543205,29.543205,29.522574,29.501944,29.501944,29.501944,29.501944,29.522574,29.522574,29.522574,29.522574,29.543205,29.563836,29.563836,29.605099,29.625732,29.625732,29.646365,29.666998,29.687632,29.708266,29.7289,29.770171,29.790807,29.811443,29.852718,29.873355,42.086786,66.499923,82.741841,89.988032,87.332831,83.025413,78.954317,75.419661,72.113602,69.248899,66.58571,64.079611,61.708062,59.491377,57.386017,55.306472,53.316045,51.371971,49.579326,47.895199,46.382023,44.976082,43.781615,42.609559,41.50162,40.457576,39.539764,38.914491,56.833861,75.4846,88.012396,96.359354,97.709523,94.657715,90.845392,87.047994,83.54915,80.410974,77.456471,74.640744,71.941048,69.334931,66.778758,64.357744,62.049545,59.938564,58.08729,56.430563,54.840256,53.337198,51.942105,50.675603,49.537186,48.526398,47.537705,46.634052,45.647318,44.640642,43.676908,42.797828,46.613047,65.985364,81.477683,91.87963,99.01721,104.265595,108.422037,111.854358,114.870373,117.51138,119.819619,121.928936,123.701542,125.317855,126.731461,127.964324,129.130116,129.198735,126.32085,122.973932,120.204855,118.121856,116.223846,114.284449,112.281436,110.21521,108.175732,106.073482,103.998044,102.305262,106.229877,111.831885,116.33672,119.796963,122.519449,124.611814,126.298043,127.71306,128.924288,129.610549,127.439027,124.88506,122.746664,120.81701,119.004326,117.127202,115.253667,113.293683,111.292696,109.206145,107.079314,104.979421,102.950845,104.510914,110.170341,115.253667,119.140161,122.110594,124.452456,126.229626,127.690221,128.947155,129.541902,127.210724,124.79397,122.769389,120.953097,119.162802,117.330572,115.456648,113.518769,111.517322,109.452709,107.302972,105.180279,103.195834,104.176403,109.878739,115.140918,119.208086,122.36043,124.79397,126.731461,128.284208,129.656317,128.329914,125.79643,123.656051,121.747311,119.932908,118.144473,116.268994,114.329507,112.326403,110.260082,108.108569,106.006464,103.975752,103.507726,108.690803,114.216865,118.574305,121.951641,124.543515,126.548946,128.215653,129.633433,128.352768,126.092807,124.452456,123.223987,122.178725,121.157262,120.04621,118.823242,117.533984,116.223846,114.757668,112.956151,110.933402,108.870021,106.788634,104.800916,103.418604,107.750444,113.248672,117.805265,121.293396,124.042795,126.184018,127.918635,129.404621,130.686656,131.832743,132.77353,133.46248,133.692237,133.738195,133.761175,133.761175,133.784155,133.784155,133.830117,133.830117,133.876081,133.899064,133.876081,133.899064,133.899064,133.876081,133.899064,133.899064,133.922048,133.922048,133.945032,133.968016,133.945032,133.968016,133.968016,133.968016,133.968016,133.968016,133.945032,134.013987,134.036973,133.991001,134.036973,134.05996,133.991001,134.082947,134.036973,134.036973,134.036973,134.013987,133.991001,134.05996,134.036973,134.082947,134.05996,134.05996,134.036973,134.05996,134.036973,134.082947,134.082947,134.128923,134.105935,134.128923,134.128923,134.105935,134.151912,134.105935,134.128923,134.128923,134.151912,134.128923,134.151912,134.128923,134.151912,134.151912,134.151912,134.151912,134.128923,134.151912,134.220882,134.220882,134.151912,134.197891,134.128923,134.197891,134.197891,134.220882,134.174901,134.197891,134.197891,134.220882,134.220882,134.220882,134.197891,134.243873,134.220882,134.220882,134.220882,134.220882,134.312849,134.266864,134.312849,134.243873,134.243873,134.243873,134.335842,134.289856,134.289856,134.289856,134.312849,134.335842,134.312849,134.312849,134.312849,134.312849,133.46248,131.374148,129.313111,126.959653,124.270363,121.792714,119.638384,117.601797,115.614552,113.653845,111.71953,109.789033,107.884726,106.028803,104.1987,102.171747,99.815985}; 	
    float *p ;
    *p = tab1;
    float tab[BUFFER_SIZE]={0};
    int x;
    int v; 
    int t; 
    //float Delta = 0.5;
    int somme;
     
     
     
    /******************************************************************
    // a chaque fois il stocke 6 valeurs efface les 5 premieres valeurs 
    // met la 6eme a la place de la premiere et stcoke dans les 5 place 
    // libres les 5 valeurs suivantes prelevees.
    ******************************************************************/
    unsigned char Clear_Buffer (void)
    {
    	int l ;
    	int n=0;
    	int k ;
     
    	for (n=0; n<81 ;n++)// la valeur de n depend de la taille du tableau.
    	{				    // elle doit etre proportionnelle.
    		l=n*(5);
    		for(k=0; k<6;k++)
    		{
    			tab[k]=p[k+l];
    			printf ("%f valeur numero %d du tableau \n" , tab[k] , k);
     
    			// Pour detecter le nombres de maximum inferieur à 114 à partir de 50
    			if ((tab[k]>(tab[k-1]/*+Delta*/))&&(tab[k]>(tab[k+1]/*+Delta*/))&&(k>0)&&(tab[k]>50)&&(tab[k]<114))
    			{
    				x=x+1;
    				somme = somme + tab[k];
    				//printf ("%f est un maximum \n" ,tab[k]);
    			}
     
    			// Pour detecter le nombres de maximum totals à partir de 50
    			if ((tab[k]>(tab[k-1]/*+Delta*/))&&(tab[k]>(tab[k+1]/*+Delta*/))&&(k>0)&&(tab[k]>50)&&(tab[k]<134))
    			{
    				t=t+1;
    				//printf ("%f est un maximum \n" ,tab[k]);
    			}
    		}
    		printf("\n\n");
    	}
    	//printf("%d: nombre de pics bas \n",x);
    	//printf("%d = Somme des pics bas  \n", somme);
    	//printf("%d: nombres de pics haut\n",t);
     
    }
     
     
    int main (void)
    {
    	Clear_Buffer ();
    	return 0;
    }
    Le résultat est un problème sur le pointeur que j'arrive pas a déterminer :

    Nom : Capture3.JPG
Affichages : 114
Taille : 33,0 Ko

    Par contre lorsque je change les float par des int j'obtiens bien le tableau de 6 valeurs qui change en permanence correctement.
    Bien sur l'affichage nous avons que la partie entière, mais nous reconnaissons bien ici la fin du tableau de 402 valeurs:

    Nom : Capture.JPG
Affichages : 125
Taille : 55,9 Ko

    cependant la détection de maximum est affreuse et erronée du au faite que se sont des floats que j'ai défini comme des ints je pense.
    ce n'est pas un problème de %d ou %f j'ai fais attention quand même lors de l'affichage.

    Pourriez-vous m'aider à résoudre ce problème de pointeur sur un tableau de réelles car je ne comprend pas pourquoi cette fonction marcherai pour des entiers et non pour des réelles . Le problème viendrait-il de ma déclaration du pointeur? Si Oui comment faudrait-il le déclarer s.v.p.? Pour infos je travail sur Visual C++ mais je compile avec mon invite de commande.

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Le problème qui doit se poser tout autant quelque soit le type :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // NON
    *p = tab1;
    void function()
    {
     
    }
     
    // OUI
    void function()
    {
       *p = tab1;
    }

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Pourquoi en faire des variables globales?

  4. #4
    Membre averti
    Homme Profil pro
    Stagaire en dev
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Stagaire en dev
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Merci beaucoup transgohan et leternel ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    unsigned char Clear_Buffer (void)
    {
    	p = &tab1;
    }

    a donné:

    Nom : Capture4.JPG
Affichages : 103
Taille : 70,3 Ko

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Content que ca marche.

    Sinon, juste parce que ça m'a fait sourire deux minutes, quand j'ai mal lu le sujet:

    Citation Envoyé par le sujet
    Pointeur sur un tableau réel
    Citation Envoyé par réponse
    tu as essayé &Joconde

  6. #6
    Membre averti
    Homme Profil pro
    Stagaire en dev
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Stagaire en dev
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    L.O.L

    La je bosse sur la détection de maximums les comptabiliser en faire la moyenne etc ...

    Merci.

  7. #7
    Membre averti
    Homme Profil pro
    Stagaire en dev
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Stagaire en dev
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Bonjour,

    Je reviens vers vous car je n'arrive pas a détecter les maximums que je souhaite, ma fonction cherche les maximums dans le tableau de 6 valeurs, que je vous ai présenté précédemment, mais elle en détecte beaucoup plus que prévue. Ceci est du au faite que c'est un petit tableau qui parcours un grand tableau de 402 valeurs, et parmi les valeurs il y en n'as qui sont des maximums accidentel on va dire il ne sont pas vraiment des maximums d'ou mon idée de mettre un delta qui ajuste cela, ces petites fluctuations de températures (les valeurs sont des températures) , cependant malgré cela je trouve toujours des maximums faux.

    Vous trouverez ici le fichier.ods dont je parle

    La courbe que j'étudie actuellement est en bleue et les valeurs dans la colonne jaune et les maximums sont en rouge.

    Pièce jointe 150397

    Le code reste le même:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    #define BUFFER_SIZE   6
     
    float tab1[402] = {25.11794,25.11794,25.11794,25.11794,25.11794,25.11794,25.138475,25.138475,25.138475,25.11794,25.138475,25.15901,25.138475,25.15901,25.15901,25.15901,25.15901,25.15901,25.138475,25.138475,25.097406,25.056338,25.015273,24.994741,24.974209,24.933147,24.912617,24.892087,24.892087,24.871557,24.953678,25.11794,25.220618,25.467092,25.836923,26.145226,26.412503,26.679856,26.988433,27.35886,27.750023,28.120747,28.491617,28.821401,29.213169,29.501944,29.646365,29.687632,29.708266,29.7289,29.7289,29.687632,29.646365,29.625732,29.605099,29.625732,29.605099,29.563836,29.543205,29.543205,29.522574,29.501944,29.501944,29.501944,29.501944,29.522574,29.522574,29.522574,29.522574,29.543205,29.563836,29.563836,29.605099,29.625732,29.625732,29.646365,29.666998,29.687632,29.708266,29.7289,29.770171,29.790807,29.811443,29.852718,29.873355,42.086786,66.499923,82.741841,89.988032,87.332831,83.025413,78.954317,75.419661,72.113602,69.248899,66.58571,64.079611,61.708062,59.491377,57.386017,55.306472,53.316045,51.371971,49.579326,47.895199,46.382023,44.976082,43.781615,42.609559,41.50162,40.457576,39.539764,38.914491,56.833861,75.4846,88.012396,96.359354,97.709523,94.657715,90.845392,87.047994,83.54915,80.410974,77.456471,74.640744,71.941048,69.334931,66.778758,64.357744,62.049545,59.938564,58.08729,56.430563,54.840256,53.337198,51.942105,50.675603,49.537186,48.526398,47.537705,46.634052,45.647318,44.640642,43.676908,42.797828,46.613047,65.985364,81.477683,91.87963,99.01721,104.265595,108.422037,111.854358,114.870373,117.51138,119.819619,121.928936,123.701542,125.317855,126.731461,127.964324,129.130116,129.198735,126.32085,122.973932,120.204855,118.121856,116.223846,114.284449,112.281436,110.21521,108.175732,106.073482,103.998044,102.305262,106.229877,111.831885,116.33672,119.796963,122.519449,124.611814,126.298043,127.71306,128.924288,129.610549,127.439027,124.88506,122.746664,120.81701,119.004326,117.127202,115.253667,113.293683,111.292696,109.206145,107.079314,104.979421,102.950845,104.510914,110.170341,115.253667,119.140161,122.110594,124.452456,126.229626,127.690221,128.947155,129.541902,127.210724,124.79397,122.769389,120.953097,119.162802,117.330572,115.456648,113.518769,111.517322,109.452709,107.302972,105.180279,103.195834,104.176403,109.878739,115.140918,119.208086,122.36043,124.79397,126.731461,128.284208,129.656317,128.329914,125.79643,123.656051,121.747311,119.932908,118.144473,116.268994,114.329507,112.326403,110.260082,108.108569,106.006464,103.975752,103.507726,108.690803,114.216865,118.574305,121.951641,124.543515,126.548946,128.215653,129.633433,128.352768,126.092807,124.452456,123.223987,122.178725,121.157262,120.04621,118.823242,117.533984,116.223846,114.757668,112.956151,110.933402,108.870021,106.788634,104.800916,103.418604,107.750444,113.248672,117.805265,121.293396,124.042795,126.184018,127.918635,129.404621,130.686656,131.832743,132.77353,133.46248,133.692237,133.738195,133.761175,133.761175,133.784155,133.784155,133.830117,133.830117,133.876081,133.899064,133.876081,133.899064,133.899064,133.876081,133.899064,133.899064,133.922048,133.922048,133.945032,133.968016,133.945032,133.968016,133.968016,133.968016,133.968016,133.968016,133.945032,134.013987,134.036973,133.991001,134.036973,134.05996,133.991001,134.082947,134.036973,134.036973,134.036973,134.013987,133.991001,134.05996,134.036973,134.082947,134.05996,134.05996,134.036973,134.05996,134.036973,134.082947,134.082947,134.128923,134.105935,134.128923,134.128923,134.105935,134.151912,134.105935,134.128923,134.128923,134.151912,134.128923,134.151912,134.128923,134.151912,134.151912,134.151912,134.151912,134.128923,134.151912,134.220882,134.220882,134.151912,134.197891,134.128923,134.197891,134.197891,134.220882,134.174901,134.197891,134.197891,134.220882,134.220882,134.220882,134.197891,134.243873,134.220882,134.220882,134.220882,134.220882,134.312849,134.266864,134.312849,134.243873,134.243873,134.243873,134.335842,134.289856,134.289856,134.289856,134.312849,134.335842,134.312849,134.312849,134.312849,134.312849,133.46248,131.374148,129.313111,126.959653,124.270363,121.792714,119.638384,117.601797,115.614552,113.653845,111.71953,109.789033,107.884726,106.028803,104.1987,102.171747,99.815985}; 	
    float *p ; 
    float tab[BUFFER_SIZE]={0}; 
    int x; 
    int t; 
    float somme; 
     
    /***************************************************************
    Determine le maximum d'un tableau 
    ****************************************************************/
    float max(float *tab, int n)  
    {
        int x;
        float nmax;
        nmax = 0;
        for(x=0; x<n; x++)
                     if(tab[x]>nmax) nmax=tab[x];
        return nmax;
    }
     
     
    /******************************************************************
    // a chaque fois il stocke 6 valeurs efface les 5 premieres valeurs 
    // met la 6eme a la place de la premiere et stcoke dans les 5 place 
    // libres les 5 valeurs suivantes prelevees.
    ******************************************************************/
    unsigned char Clear_Buffer (void)
    {
    	p = &tab1;
    	int l ;
    	int n=0;
    	int k ;
    	float delta = 0,5;
    	for (n=0; n<81 ;n++)// la valeur de n depend de la taille du tableau.
    	{				    // elle doit etre proportionnelle.
    		l=n*(5);
    		for(k=0; k<6;k++)
    		{
    			tab[k]=p[k+l];
     
    			//printf ("%f valeur numero %d du tableau \n" , tab[k] , k);
    			// Pour detecter le nombres de maximum inferieur à 114 à partir de 50
    			if (((tab[k]+delta)<tab[k+1])&&(tab[k+1]>(tab[k+2]+delta))&&(tab[k]>50)&&(tab[k+1]<114)&&(tab[k+1]!=0))
    			{
    				x=x+1;
    				somme = somme + tab[k+1];
    				printf ("%f est un maximum \n" ,tab[k+1]);
    			}
     
    			// Pour detecter le nombres de maximum totals à partir de 50
    			if (((tab[k]+delta)>tab[k+1])&&(tab[k+1]>(tab[k+2]+delta))&&(tab[k]>114)&&(tab[k+1]<134)&&(tab[k+1]!=0))
    			{
    				t=t+1;
    				//printf ("%f est un maximum \n" ,tab[k]);
    			}
    		}
    		//printf("\n\n");
    	}
    	//printf("%d: nombre de pics bas \n",x);
    	//printf("%f = Somme des pics bas  \n", somme);
    	//printf("%d: nombres de pics haut\n",t);
     
    }
     
     
    int main (void)
    {
       Clear_Buffer ();
       return 0;
    }
    Une partie des résultats:

    Pièce jointe 150402

    Je me dis que cela pourrai provenir de mon if ma façon de déterminer mes maximums serait fausse(les conditions dans le if) , mais j'ai déjà fait un code au par-avant utilisant les mêmes conditions dans le if ,par contre c'est sur le grand tableau que j'ai faite la détection directement, et ce code m'as donner exactement les maximums dont j'ai besoin.

    Voilà la fonction :

    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
    /******************************************************************************
    Pour Determiner le nombres de pics Totals
    *******************************************************************************/
     
    unsigned char WiScanSonde_Processing_Peaks_Numbers(void)
    {
    	for (nDataLoggingRecord=0; nDataLoggingRecord<nDataLoggingRecordMax; nDataLoggingRecord=nDataLoggingRecord+1)
    		{
     
    			if (((tab1[nDataLoggingRecord]+delta)<tab1[nDataLoggingRecord+1])&&(tab1[nDataLoggingRecord+1]>(tab1[nDataLoggingRecord+2]+delta))&&(tab1[nDataLoggingRecord]<133)&&(tab1[nDataLoggingRecord]>Temp_Logging_Start))
    			{   
    				l=l+1;
    				k=k+1; 
    				printf("%d est Le numero de l'echantillon au quelle on repere le maximum %f\n", nDataLoggingRecord, tab1[nDataLoggingRecord+1]);
    			}
    		}
    		kmax=k; 
    		return kmax;
    }
    Et le résultat:

    Pièce jointe 150405


    Ce qui est correcte, j'ai décider de travailler sur un petit tableau, pour juste pouvoir traiter mes résultats au cours de l'acquisition au lieu d'attendre la fin de l'acquisition des toutes les données de température pour procéder au traitement.

  8. #8
    Membre averti
    Homme Profil pro
    Stagaire en dev
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Stagaire en dev
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Solution ,

    Vu que je n'ai besoin que de mon 3 valeurs à chaque fois pour déterminer mon maximum.
    j'enlève le pointeur , je supprime le tableau de 6 valeurs. j'en prend un de trois valeurs avec un décalage à gauche.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float x = tab1[n];
     
    		tab[0] = tab[1];
    		tab[1] = tab[2];
    		tab[2] = x;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Paramètre : pointeur sur un tableau
    Par _Michel dans le forum Débuter
    Réponses: 2
    Dernier message: 15/02/2009, 16h08
  2. Réponses: 5
    Dernier message: 21/09/2008, 09h45
  3. Réponses: 8
    Dernier message: 17/09/2008, 12h11
  4. Réponses: 1
    Dernier message: 09/07/2006, 23h39
  5. Références et pointeurs sur un tableau
    Par smag dans le forum C++
    Réponses: 2
    Dernier message: 01/03/2005, 20h29

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