9 juin 2020
Ce texte fait partie d’une petite collection de notes mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 France.
Ces exercices sont souvent proposés aux débutants dans les tutoriels, pour l’apprentissage des fonctions et des tableaux. Le problème, c’est qu’ils sont souvent très mal posés.
Voir par exemple celui d’OpenClassrooms, ex-Site du Zero. https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Dans une première partie, on rappelle le texte des exercices, en essayant de les poser correctement.
Dans une seconde partie, pour ceux que ça intéresse, on explique pourquoi et comment ils sont souvent mal posés.
Ils sont ici énoncés en C, il est facile de les transposer dans d’autres langages.
Contexte de l’exercice : le débutant
Les exercices sont là pour mettre en pratique les fonctions.
Écrivez une fonction nommée somme_tableau
qui retourne la somme des éléments d’un tableau.
Elle prend comme paramètre
double
),Par exemple le programme de tests
#include <stdio.h>
int main()
{"Tests somme\n");
printf(
double t1[] = {20.5, -3.0 , 4.5};
double r1 = somme_tableau(t1, 3);
"r1 = %f\n", r1);
printf(
double t2[] = {13.0, 7.5, 18, 12, 13.5, 9 };
double r2 = somme_tableau(t2, 6);
"r2 = %f\n, r2);
printf(
return 0;
}
complété par la fonction demandée, devrait afficher :
Tests somme:
r1 = 22.000000
r2 = 73.000000
En utilisant la fonction précédente, écrivez une fonction qui calcule la moyenne des éléments d’un tableau. Elle prend elle aussi comme paramètres
Avec l’exemple d’utilisation :
"Tests moyenne :\n");
printf(double m1 = moyenne_tableau(t1, 3);
"m1 = %f\n", m1); printf(
on s’attend à obtenir :
Tests moyenne :
m1 = 7.333333
Testez aussi sur l’autre exemple.
somme_tableau
déjà écrite. Le débutant s’imagine souvent que le but de l’exercice est d’écrire une variante du code existant (de la même façon qu’on pose des exercices de maths similaires, avec des coefficients différents).