Tp3_Tableaux

Buts:

Énoncé:

Définir un tableau comme suit

const SIZE : usize = 10;
let tab = [0; SIZE];

Écrire un programme qui réalise les tâches suivantes:

  1. Remplir de valeurs aléatoires le tableau tab.

  2. Trouver le plus petit élément de tab.

  3. Placer le plus grand élément de tab en fin de tableau en procédant à un échange de place.

  4. Rechercher dans tab un élément entré au clavier par l’utilisateur.

  5. Calculer la moyenne des éléments de tab et afficher le résultat avec deux chiffres significatifs.

  6. Calculer la variance des éléments de tab et afficher le résultat avec deux chiffres significatifs.

    La variance \(v\) des élément d’un vecteur \(\vec x\) se calcule comme \[ v = \frac{1}{N}\sum_{i=1}^N (x_i - \bar x)^2, \]\(N\) est la longueur du vecteur \(\vec x\), \(\bar x\) la moyenne des élément de \(\vec x\), et \(x_i\) est le \(i\)-ème élément de \(\vec x\).

  7. Trouver l’élément médian du tableau tab. L’élément médian s’il existe est défini comme étant la valeur pour laquelle on trouve autant d’éléments strictement inférieurs que supérieurs dans le tableau.

    Exemple: L’élément médian du tableau \(\vec x = (1, 5, 8, 2, 6, 5, 3, 1, 0, 3)\) est \(3\).

  8. Écrire une fonction pour chacun des points précédents.

  9. Mettre toutes les fonctions dans un module.

  10. Vérifier que le générateur de nombres aléatoires est équitable. Pour ce faire utiliser un tableau d’entiers non signés pour comptabiliser le nombre de fois où un nombre est tiré. L’indice du tableau correspond à l’indice du tableau, et le numéro correspondant à l’élément est incrémenté de un lorsque l’indice est tiré. Utiliser les notions précédentes pour dire si le générateur est équitable.

  11. Utiliser la fonction plot_barchart_svg de rust_hepia_lib afin d’afficher un histogramme afin de sauver l’histogramme sous la forme d’un ficher au format svg.

Remarque

Afin d’utiliser plot_barchart_svg il faut également télécharger la librairie plotlib que vous trouverez sur cyberlearn. Il faut extraire l’archive au même niveau que rust_hepia_lib (n’oubliez pas de télécharger la dernière version sur https://githepia.hesge.ch/orestis.malaspin/rust_hepia_lib) pour que cela fonctionne directement. Sinon il vous faudra modifier le fichier Cargo.toml de rust_hepia_lib.