Skip to content
Snippets Groups Projects
user avatar
Joel Cavat authored
95563a71
History
Name Last commit Last update
src
.gitignore
README.md
pom.xml

Numeric

Ce repository contient l'énoncé du TP "numeric" et un squelette maven. Nous vous conseillons de vous abonner aux notifications (watch) pour ne pas manquer des annonces ou des changements.

Après avoir choisi votre binôme, vous devrez impérativement :

  • "Forker" ce repository dans votre namespace, le passer en privé et ajouter votre binôme (un seul repository par binôme).
  • Ajouter ce repository comme deuxième remote (différent de origin, nommé base par exemple : git remote add base ssh://git@ssh.hesge.ch:10572/steven.liatti/poo2019numeric.git).
  • Ajouter Joel Cavat (@joel.cavat), Jeremy Gobet (@jeremy.gobet) et Steven Liatti (@steven.liatti) en tant que Reporter de votre repository.
  • Lire attentivement l'énoncé.

Fonctionnalités à réaliser sur les vecteurs (itération 1)

Le projet contient déjà un ensemble de tests unitaires. Faites-en sorte que le projet compile et que les tests passsent.

Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un premier temps). Utilisez le package ch.hepia.numeric pour mettre vos classes.

Opération sur les vecteurs (méthodes d'instance), regardez les tests unitaires pour comprendre comment elles fonctionnent

  • add(), mul(), sub() pour les opérations de bases
  • norm() pour calculer la norme d'un vecteur
  • t() pour retourner la vesion transposée
  • get() pour retourner un élément
  • set() en tant que méthode non publique pour modifier une valeur
  • map() pour retourner une version transformée
  • removed() pour retourner une sans un des éléments
  • concat() pour concatener deux vecteurs
  • copy() pour copier un vecteur
  • slice(), sliceTo(), sliceFrom() pour les opérations de slicing
  • toString() et equals() pour une représentation et la comparaison de vecteur
  • ...

Opérations statiques (méthodes de classes), regardez les tests unitaires pour comprendre comment elles fonctionnent

  • of()
  • empty()
  • fill()
  • zeros()
  • ones()
  • linespace()
  • tabulate()
  • sum()
  • norms()

Fonctionnalités à réaliser sur les matrices (prochaine itération)

TBD

Maven

Maven est un gestionnaire de projets et d'automatisation de production pour l'écosystème Java.

Le fichier pom.xml décrit le projet avec ses dépendances.

Exécutez votre projet

  • compilation et téléchargement des dépendances. Produit un jar dans le dossier target.
mvn package
  • exécutez à l'aide de java et du classpath:
java -cp target/my-app-0.1.jar ch.hepia.my_app.App
  • ou, à l'aide du plugin exec-maven-plugin (plus simple):
mvn exec:java

Exécutez les tests uniquement

mvn test

Notes

Le plugin maven-assembly-plugin est configuré et permet d'embarquer les dépendances dans un seul jar.