diff options
author | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-03 15:37:07 +0000 |
---|---|---|
committer | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-05-03 15:37:07 +0000 |
commit | eb270379f82ae0969892706ddb48d2d780e26460 (patch) | |
tree | d986dd24ecccc29bd92947e251de8d64d070eb14 | |
parent | 3d88d4979cc26e34acbeab6c6f2275295fcb0d9b (diff) | |
download | vhc-eb270379f82ae0969892706ddb48d2d780e26460.tar.gz vhc-eb270379f82ae0969892706ddb48d2d780e26460.tar.bz2 vhc-eb270379f82ae0969892706ddb48d2d780e26460.zip |
crée un nouveau dossier pour les exercices à rendre.
Il faudrait recréer un makefile dans ce dossier 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; +} |