Exercice 2

Exercice 2#

Rappelez la syntaxe et la sémantique de la boucle while :

BEGIN SOLUTION

Syntaxe:

while ( condition ) {
    bloc d instructions
}

Sémantique:

  1. évaluer la condition

  2. si la condition est vraie 2.1. exécuter le bloc d’instructions 2.2. recommencer en 1

END SOLUTION

Écrivez les lignes de code permettant d’afficher tous les nombres de 3 à 1789 inclus :

/// BEGIN SOLUTION
for (int i = 3; i <= 1789; i++ ) {
    cout << i << endl;
}
/// END SOLUTION

… De même pour tous les nombres de 3 à 1789 qui ne sont multiples ni de 7 ni de 13 :

/// BEGIN SOLUTION
for (int i = 3; i <= 1789; i++ )
    if ( i % 7 != 0 and i % 13 != 0 )
        cout << i << endl;
/// END SOLUTION

On suppose définie la fonction puissance documentée ci-dessous :

/** La fonction puissance
 *  @param x un nombre réel (double)
 *  @param k un nombre entier positif
 *  @return la k-ième puissance x^k de x
 **/

En utilisant la fonction puissance, définissez une fonction nommée sommePuissances qui prend en paramètres un réel \(x\) et un entier \(n\) et qui renvoie la somme des \(n\) premières puissances de \(x\). Par exemple, sommePuissances(3, 5) calcule : \(3^0 + 3^1 + 3^2 + 3^3 + 3^4\).

/// BEGIN SOLUTION
double sommePuissances(double x, int n) {
    double resultat = 0;
    for ( int k = 0; k < n; k++ )
        resultat += puissance(x, k);
    return resultat;
}
/// END SOLUTION

Donnez une définition récursive de la fonction puissance :

/// BEGIN SOLUTION
double puissanceRecursive(double x, int k) {
    if ( k == 0 )
        return 1;
    else
        return x * puissanceRecursive(x, k-1);
}
/// END SOLUTION