diff options
Diffstat (limited to 'exercice')
-rw-r--r-- | exercice/Makefile | 42 | ||||
-rw-r--r-- | exercice/exerciceP10.cc | 78 |
2 files changed, 120 insertions, 0 deletions
diff --git a/exercice/Makefile b/exercice/Makefile new file mode 100644 index 0000000..14f4487 --- /dev/null +++ b/exercice/Makefile @@ -0,0 +1,42 @@ +######################################################################### +# Makefile recursif # +#=======================================================================# +# Les variables suivantes sont definis dans un makefile plus haut. # +# BASEDIR repertoire de base du projet # +# SRCDIR repertoire contenant le code source # +# BINDIR repertoire ou sont places toutes objets compiles # +#=======================================================================# +# ==> indique des champs modifiables aisement # +#=======================================================================# +# Comme tous les tests dependent du projet principal, les references au # +# dossier `main' sont autorisees. # +######################################################################### + +# Nom du repertoire contenant ce makefile +LOCALDIR = exercice + +# Tout les fichiers commencant par 'exerciceP' sont consideres comme +# etant un exercice contenant une fonction main. Ces fichiers seront compiles +# a un executable. +EXERCICES = $(shell find exerciceP*) + +# ==> Si un objet X necessite une compilation non-standard (i.e. pas de regle du style X: X.cc X.h), rajouter cet objet +# en fin de BINS ne suffit pas. Il faut de plus creer une nouvelle regle. +LOCALBINS = $(patsubst %.cc,%,$(EXERCICES)) +BINS=$(addprefix $(BINDIR)/$(LOCALDIR)/,$(LOCALBINS)) + +# Inclure les headers de main (source principale) +CXXFLAGS += -I $(SRCDIR)/main/ + +all: checkdirs $(BINS) + +# Verifie l'existance du repertoire de sortie +checkdirs: $(BINDIR)/$(LOCALDIR) + +# Cree le repertoire de sortie +$(BINDIR)/$(LOCALDIR): + @mkdir -p $@ + +# Regle implicite pour les fichiers sans extension (i.e. pour les executables) +$(BINDIR)/$(LOCALDIR)/%: %.cc + $(CXX) $(CXXFLAGS) $< -static -L$(BINDIR)/main -lvhc -o $@ diff --git a/exercice/exerciceP10.cc b/exercice/exerciceP10.cc new file mode 100644 index 0000000..cc18ec3 --- /dev/null +++ b/exercice/exerciceP10.cc @@ -0,0 +1,78 @@ +/* + * exerciceP10.cc + * + * Created on: 20 avr. 2011 + * Author: christian + */ +#include "Accelerator.h" +#include "Dipole.h" +#include "StraightElement.h" +#include "Quadrupole.h" +#include "FODO.h" +#include <iostream> +#include <string> +#include <vector> + +using namespace std; +using namespace vhc; + +//TODO erreur sur l'affichage de p1 ===> "NAN" <======== +/** Affiche la réponse de l'exercice P.10 de l'étape 5 (semaine 6) du projet.*/ +int main() { + + Accelerator a; + + Dipole* d = new Dipole( + Vector3D(1,0,0), + Vector3D(0,-1,0), + 0.1, + 1, + Vector3D(0,0,7), + NULL); + + StraightElement* s = new StraightElement( + Vector3D(0,-1,0), + Vector3D(-1,-1,0), + 0.1); + + Quadrupole* q = new Quadrupole( + Vector3D(-1,-1,0), + Vector3D(-1,-2,0), + 0.1, + 1.2); + + FODO* f = new FODO( + Vector3D(-1,-2,0), + Vector3D(-1,0,0), + 0.1, + 1, + 1.2); + + Particle* p1 = new Particle( + Vector3D( 1.00984,-0.191837,0 ), + 0.938272, + 1.60217653e-19, + 2, + Vector3D(-210200,-2.64754e+08,0)); + + Particle* p2 = new Particle( + Vector3D(0.99016,-0.191837,0), + 0.938272, + 1.60217653e-19, + 2, + Vector3D(210200,-2.64754e+08,0)); + + a.add(*d); + a.add(*s); + a.add(*q); + a.add(*f); + a.add(*p1); + a.add(*p2); + + //TODO a.close(); + + cout << a << endl; + a.clear(); + + return 0; +} |