summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--reponses.lyx134
-rwxr-xr-xtestr.sh1
3 files changed, 131 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 266461d..7328cf7 100644
--- a/Makefile
+++ b/Makefile
@@ -29,9 +29,9 @@ export BINDIR = $(BASEDIR)/bin
# LDFLAGS += -pg # pour profiler
# CXXFLAGS += -O2 # pour optimiser la vitesse
-.PHONY: all checkdirs build clean doc
+.PHONY: all checkdirs build test-build doc test clean
-all: checkdirs build test-build
+all: checkdirs build test-build doc test
# Compile les fichiers source principales
build: checkdirs
diff --git a/reponses.lyx b/reponses.lyx
index 77e56df..d0f531f 100644
--- a/reponses.lyx
+++ b/reponses.lyx
@@ -3,6 +3,9 @@
\begin_document
\begin_header
\textclass article
+\begin_preamble
+\usepackage{color}
+\end_preamble
\use_default_options true
\language french
\inputencoding auto
@@ -136,19 +139,18 @@ Question P3.3
\end_layout
\begin_layout Subsection*
-a)
+a
\end_layout
\begin_layout Standard
En ajoutant un constructeur par coordonnées sphériques, les attributs de
la classe ne devraient pas forcémant être changées.
Il serait toute à fait envisageable, de garder les coordonnées carthésiennes
- comme attributs et d'assigner leurs valeurs equilvalentes en coordonnées
- sphériques par le nouveau constructeur.
+ comme attributs et de convertir les coordonnées sphériques avec le constructeur.
\end_layout
\begin_layout Subsection*
-b)
+b
\end_layout
\begin_layout Standard
@@ -162,7 +164,15 @@ La surcharge serait une difficulté majeur pour créer un constructeur par
\begin_layout Standard
Néanmoins, une solution alternative serait d'implémenter une méthode statique
- qui prendrait comme paramètres des coordonnées sphériques et qui renverait
+ (
+\begin_inset Quotes eld
+\end_inset
+
+factory method
+\begin_inset Quotes erd
+\end_inset
+
+) qui prendrait comme paramètres des coordonnées sphériques et qui renverait
un vecteur ayant des coordonnées carthésiennes équivalentes (par exemple
\family typewriter
@@ -181,5 +191,119 @@ La méthode `affiche()' d'un vecteur a été implémenté sous forme de l'opéra
La méthode `compare' est équivalent à l'opérateur `=='.
\end_layout
+\begin_layout Section*
+Question P5.1
+\end_layout
+
+\begin_layout Standard
+
+\emph on
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+color{red}{Réponse incohérente! La question conçernant l'énergie me perturbe...}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Les membres d'une particule representant le facteur gamma
+\begin_inset Formula $\gamma$
+\end_inset
+
+ et l'énergie
+\begin_inset Formula $E$
+\end_inset
+
+ peuvent être implémentés soit sous forme d'attributs soit sous forme de
+ méthodes.
+ Il y a des avantages et inconvénients pour chaque forme.
+\end_layout
+
+\begin_layout Standard
+L'avantage d'un attribut est que son accès est trés rapide et ne prend (presque)
+ pas de temps de calcul.
+ Par contre, si la valeur d'un attribut est relié logiquement à la valeur
+ d'un autre attribut et que ce dernier est modifié, il faudra manuellement
+ changer le premier.
+ Par exemple, le facteur gamma étant défini par:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\gamma=\frac{1}{\sqrt{1-\left(\frac{v}{c}\right)^{2}}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+si il est défini comme variable, il faudrait le mettre à jour à chaque fois
+ que la vitesse change.
+\end_layout
+
+\begin_layout Standard
+Contrairement à un attribut, une méthode est évaluée à chaque fois que l'on
+ l'appelle.
+ Ceci a l'avantage que si le résultat d'une méthode dépend d'une variable,
+ la variable pourra être modifiée sans considération de la méthode.
+ Ainsi, si le facteur gamma est une méthode, une mise à jour de la vitesse
+ pourra être effectuée directement sans explicitement changer
+\begin_inset Formula $\gamma$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Dans le cas de notre projet, nous avons décidés d'implémenter l'énergie
+ sous forme d'attribut et le facteur gamma sous forme de méthode.
+ Ceci pour plusieurs raisons:
+\end_layout
+
+\begin_layout Enumerate
+Au cours de la simulation, la vitesse sera changée très fréquemment, beaucoup
+ plus que les appelles à gamma.
+ Une implémentation de gamma sous forme de méthode améliore donc la performance.
+\end_layout
+
+\begin_layout Enumerate
+Le premier argument pourrait s'appliquer également à l'énergie, or il faut
+ remarquer que l'énergie est une grandeur spécifiée durant la création d'une
+ particule et que en fait la vitesse dépend de l'énergie
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+Complément mathématique:
+\begin_inset Quotes eld
+\end_inset
+
+Aux énergies atteintes dans un accélérateur, les particules sont tellement
+ proches de la vitesse de la lumière qu'il faudrait garder au moins 7 décimales
+ pour que la vitesse permette de connaître l'énergie de façon assez précise.
+ On caractérise donc plutôt une particule en termes d'énergie totale que
+ de vitesse.
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+ On pourrait alors penser à définir la vitesse comme méthode mais d'après
+ l'argument 1, ce serait complètement absurde au niveau de la performance.
+\end_layout
+
\end_body
\end_document
diff --git a/testr.sh b/testr.sh
index 6ddbdc0..3fcc360 100755
--- a/testr.sh
+++ b/testr.sh
@@ -48,6 +48,5 @@ if [ $FAILED -eq 0 ];then
else
echo "[${red}error${nc}] Some tests FAILED."
fi
-tput sgr0