Bonjour à tous, J'ai fait un petit programme qui me permet de calculer des suites de vecteur (vecteurs 3 dimensions). J'ai 3 questions à vous poser concernant mon programme :

1 - Pouvez vous m'aider à l'optimiser? C'est à dire j'ai crée des fonctions mais en fait je pense qu'il y a plus simple donc si vous voulez m'aider on peut en discuter ici !

2 - En fait comme je l'ai dit plus haut, mon programme calcule des suites de vecteurs et j'aimerais enregistrer ces vecteurs (mon soft en calcule 8 ici, le nombre d'itérations que j'ai choisi) dans un fichier .txt en sortie de mon programme. Comment je peux faire?

3 - Quand je run mon programme tout se passe bien mais je n'ai pas le temps de voir ce qu'il se passe dans la fenetre de commande car elle s'ouvre et se referme directement après, il n'y a pas moyen de la laisser ouverte pour voir les résultats défilé?

Voici mon programme (il est lourd mais je débute...) :
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
 
 
double eps(double x, double y, double z)  //Fonction epsilon
{
	double m;
	double eps0;
 
	eps0=8.85*pow(10,-12);
	m=(1+eps0*exp(-x)); 
	return m;
}
 
double grad_epsx(double x, double y, double z) //Composante 1 du Vecteur gradient de epsilon
{
	double a;
	double eps0;
 
	eps0=8.85*pow(10,-12);
	a=-eps0*exp(-x); 
	return a;
}
 
double grad_epsy(double x, double y, double z) //Composante 2 du Vecteur gradient de epsilon
{
	double b;
	double eps0;
 
	eps0=8.85*pow(10,-12);
	b=0; 
	return b;
}
 
double grad_epsz(double x, double y, double z) //Composante 3 du Vecteur gradient de epsilon
{
	double c;
	double eps0;
 
	eps0=8.85*pow(10,-12);
	c=-eps0*exp(-x); 
	return c;
}
 
 
void main(void)
{
	int N=8; // nombre d'itérations
	int i,j;
	double r[3];  //Vecteur rayon
	double t[3];  //Vecteur direction
	double temp[3];
	double dh=0.5;
 
	r[0]=0;
	r[1]=0;
	r[2]=0;
 
	t[0]=1;
	t[1]=0;
	t[2]=0;
 
	for (j=1;j<=N;j++)
	{
 
		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]);
 
		for (i=0;i<=2;i++)
		{
			printf("\nVecteur rayon (composante %d) : %lf \n",i+1,r[i]);
		}
		printf("\n iteration : %d \n",j);
 
 
	}
}