diff --git a/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf b/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9b7b5b2113bae1feeb6d67d6f6f62dcd34e583be Binary files /dev/null and b/Algorithmique/Cours/03-tableaux-statiques-et-chaines.pdf differ diff --git a/Programmation/Exercices/serie_04.md b/Programmation/Exercices/serie_04.md new file mode 100644 index 0000000000000000000000000000000000000000..40d2072c5a14993e7c91387e7dd9ee71c24b3f01 --- /dev/null +++ b/Programmation/Exercices/serie_04.md @@ -0,0 +1,60 @@ +--- +title: "Programmation séquentielle" +subtitle: "Série 4 - Les tableaux statiques unidimensionnels" +date: 04.10.2022 +--- + +# Buts + +- Utilisation de tableaux statiques unidimensionnels. +- Utilisation de fonctions. + +# Énoncé + +Une façon de déclarer un tableau d'entiers `tab`{.C} est la suivante: + +```C +int size = 10; +int tab[size]; +``` + +Écrire un programme qui réalise les tâches suivantes. + +1. Demander à l'utilisateur d'entrer la valeur de `size`{.C} pour la création du tableau. +2. Remplir le tableau `tab`{.C} de valeurs aléatoires plus petites qu'un entier + `val_max`{.C} qui est beaucoup plus petit que `size`{.C} (disons 10 à 100 + fois plus petit). Par exemple, remplir `tab`{.C} qui fait une taille de + `100` de valeurs de `0`{.C} à `10`{.C}. +3. Demande à l'utilisateur si il veut afficher le contenu du tableau. +4. Trouver le plus petit élément de `tab`{.C}. +5. Rechercher dans `tab`{.C} un élément entré au clavier par l'utilisateur et afficher l'indice de la première occurrence. +6. Calculer la moyenne des éléments de `tab`{.C}. +7. Calculer la variance des éléments de `tab`{.C}. La variance `var`{.C} des éléments de `tab`{.C} est définie par la formule: +$$ +\mathrm{var}=\frac{1}{\mathrm{size}}\sum_{i=0}^{\mathrm{size}-1}(\mathrm{tab}[i]-\mathrm{tab}_m)^2, +$$ +où $\mathrm{tab}_m$ désigne la moyenne des éléments de `tab`{.C} et $\mathrm{tab}[i]$ est le $i$-ème élément de `tab`{.C}. +8. Trier les éléments de `tab`{.C} par ordre croissant selon l'algorithme vu en cours (tri par sélection). +9. Trouver l'élément médian du tableau `tab`{.C}. Après avoir trié le tableau `tab`{.C}, l'élément médian est défini comme étant la valeur: + - `tab[(size-1)/2]`{.C} si `size`{.C} est impair + - `(tab[(size-1)/2] + tab[size/2])/2.0`{.C} si `size`{.C} est pair. + + + Exemple: + ++:--+:--+:--+:--+:--+:--+:--+:--+:--+:--+ +| 1 | 5 | 8 | 2 | 6 | 5 | 3 | 1 | 0 | 3 | ++:--+:--+:--+:--+:--+:--+:--+:--+:--+:--+ + +: L'élément médian de ce tableau vaut: 3. + +10. Écrire une fonction pour chacun des points précédents. +11. Vérifier que le générateur de nombres aléatoires +`rand()`{.C} est équitable. Pour cela, utiliser un +tableau d'entiers `histo`{.C} pour comptabiliser le +nombre de fois qu'une valeur est tirée. À noter que la +valeur tirée correspond à l'indice du tableau et que +c'est son contenu qui est incrémenté de 1. Utiliser les +notions précédentes (moyenne, écart-type, minimum/maximum) +pour dire si le générateur est équitable. +12. Visualiser le contenu du tableau `histo` verticalement et horizontalement dans le terminal. diff --git a/Programmation/Exercices/serie_04.pdf b/Programmation/Exercices/serie_04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c1a8b4a62b5e4723956e125e2c8f6b55713fcc8c Binary files /dev/null and b/Programmation/Exercices/serie_04.pdf differ