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
| // Contenu de matrice
typedef struct
{
double temps;
double res;
} t_res_1;
// Contenu de tableau
typedef struct
{
double temps;
t_res_1* pres;
int tailleMatrice;
} t_res_2;
static int get_matrice(t_res_1** matrice, int* tailleMatrice)
{
*tailleMatrice = 2000;
*matrice = new t_res_1 [*tailleMatrice];
// Pas assez de mémoire si NULL, retourne une erreur
if (NULL == *matrice)
return 0;
// Remplissage de la matrice
for (int i=0; i<*tailleMatrice; i++)
{
// Mettre un temps valide ici
(*matrice)[i].temps = i;
// Mettre un résultat valide ici
(*matrice)[i].res = 0;
}
// Succès
return 1;
}
int main(int argc, char *argv[])
{
double tempsMinteresse = 10;
// Définition du tableau
int tailleTableau = 30000;
t_res_2 tableau[tailleTableau];
// Remplissage du tableau
for (int i=0; i<tailleTableau; i++)
{
// Ici mettre un temps valide
tableau[i].temps = i;
// Création de la matrice
int tailleMatrice = 0;
t_res_1* matrice = NULL;
if (get_matrice(&matrice, &tailleMatrice) != 0)
{
tableau[i].pres = matrice;
tableau[i].tailleMatrice = tailleMatrice;
}
}
// Recherche des temps
for (int i=0; i<tailleTableau; i++)
{
t_res_2* ptableau = &tableau[i];
// Recherche des temps dans matrice
for (int j=0; j<ptableau->tailleMatrice - 1; j++)
{
if ((tempsMinteresse >= ptableau->pres[j].temps) && (tempsMinteresse <= ptableau->pres[j+1].temps))
{
if (ptableau->pres[j].temps == tempsMinteresse)
{
// fprintf(fidVTK,'%g\n',ptableau->pres[j].res)
}
else
{
// Ici tester le résultat le plus proche
// fprintf(fidVTK,'%g\n',ptableau->pres[j].res)
// ou
// fprintf(fidVTK,'%g\n',ptableau->pres[j+1].res)
}
}
}
}
system("PAUSE");
return EXIT_SUCCESS;
} |
Partager