Question
Exercice 1: Boucle tant que..., pour et répéter. __ (10 pts) On veut calculer a"pour un nombre réel a et un entier naturel n. 1. Ecrire la fonction Puissance(), utilisant la boucle pour __ afin de calculer a^n 2. Reprendre la fonction Puissance() en utilisant la boucle tant que.... puis __ répéter __ 3. Ecrire un algorithme SommePuissance() qui utilise la fonction Puissance0 pour calculer sum _(i=0)^na^i 4. Evaluer en fonction denle nombre de tour de boucle nécessaire pour calculer sum _(i=0)^na^i 5. Ecrire une deuxième version de l'algorithme permettant de calculer sum _(i=0)^na^i en cherchant cette fois-ci a minimiser le nombre de tour de boucle. Exercice 2 : Utilisation et manipulation des tableaux (3+4+3)=10pts Soit Tab, un tableau de taille 150 et disposant de n(1leqslant nleqslant 150) nombres réels. 1. Ecrire une fonction Moyenne() qui prend en entrées Tab et n puis renvoie la moyenne des éléments de Tab. 2. Ecrire une fonction Variance() qui prend aussi Tab et n en entrées et renvoie l'écart type des éléments du tableau On rappelle que la variance est la moyenne des carrés des écarts a la moyenne Var(X)=sum _(n=1)^infty (x,-bar (X))^2 avec bar (X)=(1)/(n)sum _(i=1)^nx_(i) qui est la moyenne de la série X.Par exemple pour Tab=10,4,6,7,8 on a bar (x)=(1)/(5)(10+4+6+7-8)=7et forr(Dart)=((10-7)^2+(4-7)^2+(6-7)^2+(7-7)^2+(8-7)^2)/(5)=4 3. Définir une procédure Supprime Val( ) qui supprime l'élément situé a une position k(1leqslant kleqslant N) du tableau Tab.
Solution
4
(236 Votes)
Gustavo
Master · Tutor for 5 years
Answer
## Exercice 1: Boucle tant que...pour...et répéter. (10 pts)**1. Fonction Puissance() avec boucle pour:**```cppdouble Puissance(double a, int n) { double resultat = 1.0; for (int i = 0; i 0) { // Gérer le cas où n = 0 do { resultat *= a; i++; } while (i 0) { // Gérer le cas où n = 0 repeat { resultat *= a; i++; } until (i == n); } return resultat;}```**3. Algorithme SommePuissance():**```cppdouble SommePuissance(double a, int n) { double somme = 0.0; for (int i = 0; i = 1 && k <= n) { for (int i = k - 1; i < n - 1; i++) { Tab[i] = Tab[i + 1]; } n--; // Décrémenter la taille effective du tableau } else { // Gérer l'erreur : k hors limites std::cerr << "Erreur: indice k hors limites." << std::endl; }}```Notez l'utilisation de `int &n` pour passer `n` par référence, ce qui permet de modifier la valeur de `n` dans la fonction appelante et ainsi refléter la suppression de l'élément dans le tableau. L'ajout d'un message d'erreur permet de gérer les cas où `k` est hors des limites du tableau.