Problème de tableau et pointeurs...
Dernière réponse : dans Programmation
Bonjour a tous,
Je suis désolée mais j'ai encore un problème avec mon programme...
J'ai une fonction avec laquelle je dois calculer des valeurs de y en fonction de lambda...
Mes problèmes sont:
=>Je me sais pas exactement comment déclarer ma variable lambda (tableau?)
=> Ma variable lambda doit s'incrémenter d'un certain pas défini par l'utilisateur de mon programme, or je ne sais incrémenter que de un en un
=>Je ne sais pas me servir de pointeur (j'ai lu les tutoriaux mais y'a rien a faire, j'arrive pas a comprendre la logique) donc je n'arrive pas à creér un tableau de résultats me permettant de stocker mes différentes valeurs de lambda et de y
Si vous pouviez me donner des pistes pour tout ca, ca me ferait très plaisir parce que là, je m'arrache les cheveux...
Merci d'avance
Je suis désolée mais j'ai encore un problème avec mon programme...
J'ai une fonction avec laquelle je dois calculer des valeurs de y en fonction de lambda...
Mes problèmes sont:
=>Je me sais pas exactement comment déclarer ma variable lambda (tableau?)
=> Ma variable lambda doit s'incrémenter d'un certain pas défini par l'utilisateur de mon programme, or je ne sais incrémenter que de un en un
=>Je ne sais pas me servir de pointeur (j'ai lu les tutoriaux mais y'a rien a faire, j'arrive pas a comprendre la logique) donc je n'arrive pas à creér un tableau de résultats me permettant de stocker mes différentes valeurs de lambda et de y
Si vous pouviez me donner des pistes pour tout ca, ca me ferait très plaisir parce que là, je m'arrache les cheveux...
Merci d'avance
Autres pages sur : probleme tableau pointeurs
Lassé par la pub ? Créez un compte
Citation :
J'ai une fonction avec laquelle je dois calculer des valeurs de y en fonction de lambda...
Mes problèmes sont:
=>Je me sais pas exactement comment déclarer ma variable lambda (tableau?)
Ben ca on peut pas le savoir a ta place... Pourquoi tu veux faire un tableau???? Tu peux pas déclarer lambda en float ou en double, et parcourir "toutes " les valeurs de lambda avec une boucle for?
Citation :
=> Ma variable lambda doit s'incrémenter d'un certain pas défini par l'utilisateur de mon programme, or je ne sais incrémenter que de un en unC'est du C? si oui, une incrémentation ca peut se faire du style a++; ou ++a; OU a=a+1;
Donc pour incrémenter a avec une variable b il suffit de faire a=a+b;
Citation :
=>Je ne sais pas me servir de pointeur (j'ai lu les tutoriaux mais y'a rien a faire, j'arrive pas a comprendre la logique) donc je n'arrive pas à creér un tableau de résultats me permettant de stocker mes différentes valeurs de lambda et de y
Alors la c'est un peu gènant quand même... un tableau ca se déclare ainsi: tab[nombre_cases]; ensuite tu t'en sert avec indice allant de 0 a nombre_cases -1 de cette facon: tab[indice]
Mais tu es obligé de faire un tableau pour ca? Donne plus d'infos sur ton sujet...
Voilà mon programme...
Et j'arrive pas a afficher un tableau me donnant les valeurs calculees de eb en fonction de celles de lambda... Si tu pouvais me dire comment faire parce que la, je suis perdue...
const int C1 = 59552137;
const double C2 = 14387.752;
const double pi = 3.14159;
const double C3 = 2897.8;
const double sigma = 0.0000000567;
const int intervalle = 10;
// Calcul des différentes valeurs de eb
double eb(double lambda,double T)
{
return((2*pi*C1)/(pow(lambda,5)*(exp(C2/(lambda*T))-1)));
}
// Allocation de memoire pour le tableau de resultats
double *aloc(int N)
{
double *t;
t=(double*) calloc(sizeof(double),N);
return (t);
}
// Saisie des differentes temperatures
double SaisieTemp(double *T,int N)
{
int i;
for (i=0;i<N;i++)
{
printf("Entrez la temperature numero %d :\n", i+1);
scanf ("%lf",&T);
}
}
// Saisie de la valeur de lambda initial
double SaisieLambda (double *T,int N)
{
int i, intervalle;
printf("Veuillez entrer la valeur initiale de lambda :\n");
scanf("%lf",&T[0]);
for (i=1;i<N;i++)
{
T=T[i-1]+intervalle;
}
}
// Remplissage du tableau de resultats
double **resultat(int N,int nblambda,double *temp,double *tablambda) //=> Déclaration du tableau de resultats a double entree
{
int i,j;
double ** tab;
tab= (double**) calloc(sizeof(double*),N);
for(i=0;i<N;i++)
tab=(double*) calloc(sizeof(double), nblambda);
for(i=0;i<N;i++)
for(j=0;j<nblambda;j++)
{
tab[j]=eb(tablambda[j],temp);
printf( "%lf, %lf\n" ,tab, tab[j]);
}
return tab;
}
// Programme principal
int main()
{
double *T,lambda,*L,**tab;
int N,i,j, intervalle, nblambda;
printf("Veuillez entrer le nombre de temperatures que vous souhaitez etudier \n");
scanf("%d",&N);
T=aloc(N);
SaisieTemp(T,N);
nblambda=100; //=> Je suis partie sur une base de 100 valeurs de Lambda mais on peut le changer
L=aloc(nblambda);
SaisieLambda(L,nblambda);
tab=resultat(N,nblambda,T,L);
system("PAUSE");
return(0);
}
Et j'arrive pas a afficher un tableau me donnant les valeurs calculees de eb en fonction de celles de lambda... Si tu pouvais me dire comment faire parce que la, je suis perdue...
const int C1 = 59552137;
const double C2 = 14387.752;
const double pi = 3.14159;
const double C3 = 2897.8;
const double sigma = 0.0000000567;
const int intervalle = 10;
// Calcul des différentes valeurs de eb
double eb(double lambda,double T)
{
return((2*pi*C1)/(pow(lambda,5)*(exp(C2/(lambda*T))-1)));
}
// Allocation de memoire pour le tableau de resultats
double *aloc(int N)
{
double *t;
t=(double*) calloc(sizeof(double),N);
return (t);
}
// Saisie des differentes temperatures
double SaisieTemp(double *T,int N)
{
int i;
for (i=0;i<N;i++)
{
printf("Entrez la temperature numero %d :\n", i+1);
scanf ("%lf",&T);
}
}
// Saisie de la valeur de lambda initial
double SaisieLambda (double *T,int N)
{
int i, intervalle;
printf("Veuillez entrer la valeur initiale de lambda :\n");
scanf("%lf",&T[0]);
for (i=1;i<N;i++)
{
T=T[i-1]+intervalle;
}
}
// Remplissage du tableau de resultats
double **resultat(int N,int nblambda,double *temp,double *tablambda) //=> Déclaration du tableau de resultats a double entree
{
int i,j;
double ** tab;
tab= (double**) calloc(sizeof(double*),N);
for(i=0;i<N;i++)
tab=(double*) calloc(sizeof(double), nblambda);
for(i=0;i<N;i++)
for(j=0;j<nblambda;j++)
{
tab[j]=eb(tablambda[j],temp);
printf( "%lf, %lf\n" ,tab, tab[j]);
}
return tab;
}
// Programme principal
int main()
{
double *T,lambda,*L,**tab;
int N,i,j, intervalle, nblambda;
printf("Veuillez entrer le nombre de temperatures que vous souhaitez etudier \n");
scanf("%d",&N);
T=aloc(N);
SaisieTemp(T,N);
nblambda=100; //=> Je suis partie sur une base de 100 valeurs de Lambda mais on peut le changer
L=aloc(nblambda);
SaisieLambda(L,nblambda);
tab=resultat(N,nblambda,T,L);
system("PAUSE");
return(0);
}
Argh... J'ai mal a la tête...
Jpréfère supposer que tout le code est bon sauf l'affichage :-D
Je sais pas ce que tu essaies de faire la... Afficher une case du tableau? dans ce cas il faudrait faire printf("%lf ",tab[j]); par exemple... Ou ptet que jme trompe...
Bon pour résumer je peux surtout te conseiller de bosser les pointeurs et les tableaux (surtout que tu en utilise plein! et des allocations dynamiques en pagaille!)... Je comprends d'ailleurs pas comment t'a pu faire un code comme ca en comprenant pas comment les utiliser :-D
Jpréfère supposer que tout le code est bon sauf l'affichage :-D
for(i=0;i<N;i++) for(j=0;j<nblambda;j++) tab[i][j]=eb(tablambda[j],temp[i]); printf( "%lf, %lf\n" ,tab[i], tab[j]);
Je sais pas ce que tu essaies de faire la... Afficher une case du tableau? dans ce cas il faudrait faire printf("%lf ",tab[j]); par exemple... Ou ptet que jme trompe...
Bon pour résumer je peux surtout te conseiller de bosser les pointeurs et les tableaux (surtout que tu en utilise plein! et des allocations dynamiques en pagaille!)... Je comprends d'ailleurs pas comment t'a pu faire un code comme ca en comprenant pas comment les utiliser :-D
La mémoire d'un ordinateur est linéaire octet par octet. Chaque octet en mémoire est numéroté de 0 à un certain nombre. Ce nombre est l'adresse mémoire.
Un pointeur est une adresse mémoire.
Voilà y a rien de plus à ajouter :-D
Si peut-être préciser que toutes les variables se trouvent quelque part en mémoire
Un pointeur est une adresse mémoire.
Voilà y a rien de plus à ajouter :-D
Si peut-être préciser que toutes les variables se trouvent quelque part en mémoire
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumProblème d'inportation donnée d'un excel dans un tableau
- Forum[C/C++]Est-ce qu'un pointeur peut pointer sur un tableau?
- SolutionsProbleme de débutant en langage c (pointeur)
- ForumFonction tableau pointeur
- ForumProblème de bordure de tableau sous FIREFOX
- Forum[HTML/CSS]Menu en tableau, problème avec IE
- Forumprobleme d'alignement vertical dans un tableau dreamweaver
- Forum[Résolu] Probleme de tableau imbriqué.
- ForumProbleme de tableau de bord sur scooter
- Voir plus