Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/03/2007, à 16:40

laroche1

[resolu]comment créer un tableau de valeur sous c ou csh?

Bonjour, j'ai un petit souci , j'aimerais créer un tableau de valeurs (2colonnes et 7 valeurs)type :
x1 y1
x2 y2 ... dont x1 et y1 sont fixés et aprés je connais toutes les formules pour calculer mes points qui decoulent de x1 et y1 or je ne sais pas comment parametrer mon tableau (soit sous c ou csh)!si quelqu'un pouvait me donner un petit tuyau !
merci

Dernière modification par laroche1 (Le 19/03/2007, à 15:23)

Hors ligne

#2 Le 17/03/2007, à 17:04

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Salut

En C, tu peux faire

int t[2][7];


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 17/03/2007, à 17:25

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

et apres il pourra comprendre mes valeurs correspondant à x1 y1....?

Hors ligne

#4 Le 17/03/2007, à 17:27

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Euh, si tu lui explique aussi clairement que ta question, je doute qu'il comprenne... tu veux faire quoi?


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#5 Le 17/03/2007, à 17:35

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

je veux créer un fichier dans lequel j'ai un tableau de données
x1 y1
x2 y2
x3 y3...

pour chaque x et y j'ai des formules qui me permettent d'avoir une valeur
par ex
x1=174
x2=x1+pi/3...


donc le truc c'est que j'aurais voulu créer un code avec mes formules pour calculer mes points dans un fichier ,sans passer par la methode "calcul point par point  par la calculatrice", mais c'est peut etre pas réalisable?

Hors ligne

#6 Le 17/03/2007, à 17:39

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Si tu veux créer un fichier avec par exemple ta table de 2, ensuite, tu adaptes

#include <stdio.h>
#include <stdlib.h>

int main()
{
  FILE* file;
  int i;
  file = fopen("toto","w");
  for (i=0;i<10;i++) {
	fprintf(file,"%d %d\n",i,2*i);
  }
  fclose(file);
}

sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#7 Le 17/03/2007, à 17:46

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

attend ben je suis pas loin de ton code...

 
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>

#define M_PI   3.14159265358979323846
#define PI_180 (M_PI / 180.0)
#define rp 3393.5

 /*rajout dans le format lu readl1 de l'epaisseur du dipole*/



#define WRITEdipo "%7.3lf %7.3lf\n"


int main(int argc, char *argv[])

	{
	FILE  *fout;
	double lat;
	double lon;
	int i;
	double x1;
	double x2;
	double x3;
	double x4;
	double x5;
	double x6;
	double x7;
	double y1;
	double y2;
	double y3;
	double y4;
	double y5;
	double y6;
	double y7;

	double *x;
	double *y;

	int N_dipole;
	
		
printf("solve2k_mat.exe <fout>\n");
		  
fout = fopen(argv[1],"w");
		  x  = (double *)malloc(N_dipole*sizeof(double));
			y  = (double *)malloc(N_dipole*sizeof(double));
		    
		    y1 = -8.75;
		    x1 = 174.5;

		    x2 = x1;
		    y2 = y1 + (M_PI/2);

		    x3 = x1-(1/2);
		    y3 = y1 + ((2*M_PI)/3);

		    x4 = x1 - (1/2);
	            y4 = y1 - (M_PI/3);

		    x5 = x1;
		    y5 = y1 - (M_PI/2);	

		    x6 = x1 +(1/2);
		    y6 = x1 - ((2*M_PI)/3);

		    x7 = x1 + (1/2);
		    y7 = y1 + (M_PI/3);	
		
for(i=0; i<N_dipole; i++)
{
			fprintf(fout, WRITEdipo, x[i],y[i] );

	    }
	fclose(fout);

	  }

Hors ligne

#8 Le 17/03/2007, à 17:56

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

OK

Erreur 1:
Tu oublie de donner une valeur à N_dipole

Erreur 2:
Tu n'utilises pas les tableau x et y, mais des variables x1, x2, etc...
il faut que tu écrive, par exemple pour la première ligne
  y[0] = -8.75;
etc

Warning 3:
Tu utilises des mallocs sans free. Ici, ca ne sert à rien, mais mets les quand meme. C'est une bonne habitude.

Warning 4:
Pour info, tes include math et malloc sont inutiles (du moins pour cette portion de code)


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#9 Le 17/03/2007, à 18:13

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

ben ça devrait marcher et j'ai une erreur au niveau de la déclaration de x et y , ça se fait pas comme ça??

/* essai de creer emplacement des dipoles suivant hexagone*/

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>

#define M_PI   3.14159265358979323846
#define PI_180 (M_PI / 180.0)
#define rp 3393.5

 /*rajout dans le format lu readl1 de l'epaisseur du dipole*/



#define WRITEdipo "%7.3lf %7.3lf\n"


int main(int argc, char *argv[])

	{
	FILE  *fout;
	double lat;
	double lon;
	int i;
	double x[0];
	double x[1];
	double x[2];
	double x[3];
	double x[4];
	double x[5];
	double x[6];
	double y[0];
	double y[1];
	double y[2];
	double y[3];
	double y[4];
	double y[5];
	double y[6];

	double *x;
	double *y;

	int N_dipole;
	
		
printf("solve2k_mat.exe <fout>\n");
		  
fout = fopen(argv[1],"w");
		  /*x  = (double *)malloc(N_dipole*sizeof(double));*/
			/*y  = (double *)malloc(N_dipole*sizeof(double));*/
		    N_dipole = 7;
		    
		y[0] = -8.75;
		    x[0] = 174.5;

		    x[1] = x[0];
		    y[1] = y[0] + (M_PI/2);

		    x[2] = x[0]-(1/2);
		    y[2] = y[0] + ((2*M_PI)/3);

		    x[3] = x[0] - (1/2);
	            y[3] = y[0] - (M_PI/3);

		    x[4] = x[0];
		    y[4] = y[0] - (M_PI/2);	

		    x[5] = x[0] +(1/2);
		    y[5] = x[0] - ((2*M_PI)/3);

		    x[6] = x[0] + (1/2);
		    y[6] = y[0] + (M_PI/3);	

for(i=0; i<N_dipole; i++)
{
 
		 
		

			fprintf(fout, WRITEdipo, x[i],y[i] );

	    }
	fclose(fout);

	  }

Hors ligne

#10 Le 17/03/2007, à 18:15

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

non, c'est pas du tout comme ca...

Ta déclaration était bonne

 double *x;
x  = (double *)malloc(N_dipole*sizeof(double));

et pareil pour y
tout ce qui est

  double x[0];

tu vires.

Et attention à ton indentation. C'est pas très lisible.


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#11 Le 17/03/2007, à 18:15

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

ahhhh non j'ai trouvé , j'avais commenté mes tableaux!!!!! c 'est ça marche
Merci beaucoup

Hors ligne

#12 Le 17/03/2007, à 18:16

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Ah ben merci j'avais pas vu que tu m'avais répondu !
A bientot

Hors ligne

#13 Le 17/03/2007, à 18:17

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Pense à passer le sujet en résolu...


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#14 Le 17/03/2007, à 18:19

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Euh par contre il n'aime pas mon signe - , on ecrit bien 1/2 comme ça?

Hors ligne

#15 Le 17/03/2007, à 18:21

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Ben, euh, ou ca?

Il est préférable d'écrire 1/2 0.5, car 1/2 est une division entière et vaut donc 0.


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#16 Le 17/03/2007, à 18:23

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Effectivement il préfére le 0.5.
Merci beaucoup

Hors ligne

#17 Le 17/03/2007, à 18:28

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Ah j'avais une dernière question
Dans un programme csh , je lui dis de prendre en compte mon fichier dipole par echo mais c'etait que pour une ligne (x1 et y1), pour plusieurs lignes dois je faire une boucle sur N_dipole ?
   

#!bin/csh 

@ inc = 90
while ($inc >= 0)
@ dec = 0
while ($dec < 360)
echo 1 10 >! dip_{$inc}_{$dec}   
echo 0 0 40 40 5 $inc $dec >> dip_{$inc}_{$dec}  (les 0 0 corespondent qu'a x1 et y1 dans ce cas)

@ dec = $dec + 30
end
@ inc = $inc - 15
end


.

Hors ligne

#18 Le 17/03/2007, à 18:31

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Ben, euh, je suppose, mais je ne connais pas csh... tu peux faire un programme c pour ca... la, je pourrais t'aider


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#19 Le 17/03/2007, à 18:35

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Ben comme j'ai dejà un programme pour une seule ligne ... mais c'est pas grave je vais chercher comment je pourrais construire ma boucle.
Merci quand meme!
A bientot

Hors ligne

#20 Le 19/03/2007, à 14:05

laroche1

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Rebonjour,
Voila apres le fonctionnement parfait de mon petit code ci dessus, j'aurais aimer rentrer mes paramètres x[0] et y[0], pareil que quand je définis le fichier de sortie or ça ne marche pas , j'ai fait un x[0]=atof(argv[1]) et y[0]=atof(argv[2] et j'ai une erreur de segmentation , je ne vois pas pourquoi il m'aime pas!

//* essai de creer emplacement des dipoles suivant hexagone*/

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <malloc.h>

#define M_PI   3.14159265358979323846
#define PI_180 (M_PI / 180.0)
#define rp 3393.5

 /*rajout dans le format lu readl1 de l'epaisseur du dipole*/



#define WRITEdipo "%7.3lf %7.3lf\n"


int main(int argc, char *argv[])

	{
	FILE  *fout;
	
	int i;
	
	
	double *x;
	double *y;

	int N_dipole;
	
		
printf("solve2k_mat.exe <x[0]> <y[0]> <fout>\n");


		x[0] = atof(argv[1]);
	  	y[0] = atof(argv[2]);
fout = fopen(argv[3],"w");
		  x  = (double *)malloc(N_dipole*sizeof(double));
	       	  y  = (double *)malloc(N_dipole*sizeof(double));
  

N_dipole = 7;
		    
		

for(i=0; i<N_dipole; i++)
	{
 
		  x[0] ;
		    y[0];

		    x[1] = x[0];
		    y[1] = y[0] + (M_PI/2);

		    x[2] = x[0]-(0.5);
		    y[2] = y[0] + ((2*M_PI)/3);

		    x[3] = x[0]-(0.5);
	            y[3] = y[0] - (M_PI/3);

		    x[4] = x[0];
		    y[4] = y[0] - (M_PI/2);	

		    x[5] = x[0] +(0.5);
		    y[5] = y[0] - ((2*M_PI)/3);

		    x[6] = x[0] + (0.5);
		    y[6] = y[0] + (M_PI/3);	
		 
		

			fprintf(fout, WRITEdipo, x[i],y[i] );

	    }
	fclose(fout);

	  }

Hors ligne

#21 Le 19/03/2007, à 15:06

qqun

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

ben ya quand meme une logique a respecter quand on programme smile

   
    double *x;
    double *y;

    int N_dipole;
...

    x[0] = atof(argv[1]);
    y[0] = atof(argv[2]);
...
    x  = (double *)malloc(N_dipole*sizeof(double));
    y  = (double *)malloc(N_dipole*sizeof(double));
    N_dipole = 7;

tu assignes des valeurs a x[0] et y[0] , et tu alloue la memoire apres pour x,y  , tu declares N_dipole apres t'en etre servi ... enfin bref c'est vraiment pas bon !

relis ton code , reflechis a ce que tu ecris et a ce que tu veux faire et sois logique .
sinon des cours d'algo et de programmation ne serait pas de trop je crois .

   
    double *x;
    double *y;

    int N_dipole;
...
    N_dipole = 7;

    x  = (double *)malloc(N_dipole*sizeof(double));
    y  = (double *)malloc(N_dipole*sizeof(double));
...
    x[0] = atof(argv[1]);
    y[0] = atof(argv[2]);
...

#22 Le 19/03/2007, à 18:13

best_friend_fr

Re : [resolu]comment créer un tableau de valeur sous c ou csh?

Salut,

Pas mieux...
Un ordi est bête, il ne sait pas ce qu'il doit faire si tu ne lui dis pas. Tu fais des fautes de conceptions, ce qui est le plus grave dans un programme.
Ecris ton algorithmes sur un papier avant de le programmer, ca t'aidera.

Et si tu veux être agréable à lire, fais attention à l'indentation !!!
Tu trouveras tes erreurs plus vite...


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne