Bonjour à tous,

J'ai un programme en C qui me renvoie comme résultats des vecteurs (3 composantes), et j'aimerais enregistrer tous ces vecteurs (lors de la compilation/execution du programme) dans un fichier rayon.txt ou seront affichées seulements les coordonnées de ces vecteurs la.

Je n'ai aucune idée de comment procéder car je débute en C, j'aimerais de l'aide SVP !

Voici mon programme :

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define eps0 8.85E-12
 
 
 
 
double eps(double x, double y, double z)  //Fonction epsilon
{
	double m;
 
	m=x*x+exp(-y)-z; 
	return m;
}
 
double grad_epsx(double x, double y, double z) //Composante 1 du Vecteur gradient de epsilon
{
	double a;
 
	a=2*x; 
	return a;
}
 
double grad_epsy(double x, double y, double z) //Composante 2 du Vecteur gradient de epsilon
{
	double b;
 
	b=-exp(-y); 
	return b;
}
 
double grad_epsz(double x, double y, double z) //Composante 3 du Vecteur gradient de epsilon
{
	double c;
 
	c=-1; 
	return c;
}
 
 
void main(void)
{
	// int N=8; // nombre d'itérations
	int i;
	int j=1;
	double r[3];  //Vecteur rayon
	double t[3];  //Vecteur tangent
	double temp[3];
	double l=0;
	double dh=0.05;
	double norme;
 
	r[0]=0; //Rayon de départ
	r[1]=0;
	r[2]=0;
 
	t[0]=1; //Vecteur tangent de départ (normalisé)
	t[1]=0;
	t[2]=0;
 
	while ((fabs(r[0])<10) && (fabs(r[1])<10) && (fabs(r[2])<10) )
	{
 
		for (i=0;i<=2;i++) {temp[i]=r[i];}
 
		r[0]=r[0]+dh*t[0];
		r[1]=r[1]+dh*t[1];
		r[2]=r[2]+dh*t[2];
 
 
		t[0]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[0]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsx(temp[0],temp[1],temp[2]);
		t[1]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[1]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsy(temp[0],temp[1],temp[2]);
		t[2]=(sqrt(eps(temp[0],temp[1],temp[2]))/sqrt(eps(r[0],r[1],r[2])))*t[2]+(dh/sqrt(eps(r[0],r[1],r[2])))*grad_epsz(temp[0],temp[1],temp[2]);
 
		norme = (sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]));
 
		t[0]=t[0]/norme; // On normalise le vecteur tangent
		t[1]=t[1]/norme;
		t[2]=t[2]/norme;
 
		l=l+dh*(sqrt(eps(temp[0],temp[1],temp[2])));
 
		/*printf("\n iteration : %d \n",j);
 
		for (i=0;i<=2;i++)
		{
		printf("\nVecteur rayon (composante %d) : %lf \n",i+1,r[i]);
		}
		// J'aimerais afficher dans le fichier .txt chaque vecteur r obtenu a chaque itération
		system("pause");*/
		j++;
	}
	printf("\n iteration : %d \n",j);
	printf("\nLe temps de propagation est de : %lf\n",l);
	for (i=0;i<=2;i++)
		{
		printf("\nVecteur rayon (composante %d) : %lf \n",i+1,r[i]);
		}
	system("pause");
}