Introduction à l'Informatique (INFO0205)


TP 9: Fonction et passage par référence

Professeurs Patrick E. Meyer et Alejandro Silhanek

Version 2.0

  1. Que fait le programme suivant ? Quel autre nom pourriez-vous donner à fonction3 ? Qu'écrit-il sur output quand on lui fournit en input:
    1. les valeurs 1 et 1
    2. les valeurs 5 et 8

     
    #include<iostream>
    
    using namespace std;
    
    void fonction3(int &a, int &b)
    {
        a += b;
        b += a;
    }
    
    int main(int argc, char* const argv[])
    {
        int fn, fnn;
        cin >> fn >> fnn;
        fonction3(fn, fnn);
        cout << fn << " " << fnn;
        
        return 0;
    }
    

  2. Écrire la fonction swap qui effectue l'échange de ses deux paramètres entiers a et b.

  3. Deux suites ($x_i$) et ($y_i$) sont définies par

    \begin{eqnarray*}
y_0 & = & 2 \\
x_0 & = & 1 \\
y_{i+1} & = & \frac{y_i + x_i}{2}\\
x_{i+1} & = & \frac{2}{y_{i+1}}
\end{eqnarray*}


    Nous admettons que les suites convergent toutes les deux vers $\sqrt{2}$, avec de plus $x_i < \sqrt{2} < y_i$. Écrire une fonction rac2 qui calcule deux approximations supérieure et inférieure de $\sqrt{2}$, de différence inférieure à $\varepsilon$ (prévoyez aussi d'arrêter les calculs si le nombre d'étapes dépasse une borne fixée).

  4. Écrire une fonction gliss_1_g effectuant un glissement circulaire gauche d'une position sur un vecteur $v$ de taille $n$.

  5. Écrire une fonction qui effectue le produit de la matrice $A(l \times m)$ par la matrice $B(m \times n)$.