Introduction à l'Informatique (INFO0205)


TP 7: Boucles imbriquées et matrices

Professeurs Patrick E. Meyer et Alejandro Silhanek

Version 2.0

  1. Qu'affiche le programme suivant quand on lui fournit au clavier :
    1. les valeurs $2$ et $4$
    2. les valeurs $8$ et $3$

     
    #include <iostream>
    using namespace std;
    
    int main(int argc, char* const argv[]){
        
          int m,n;
          cin >> m >> n;
          for (int i = 0; i < m; i++) {
              for (int j = 0; j < n; j++)
                  cout << "X";
              cout << endl;
          }
        return 0;
    }
    

  2. Qu'affiche le programme suivant quand on lui fournit au clavier :
    1. les valeurs $2$ et $4$
    2. les valeurs $8$ et $3$
    3. les valeurs $12$ et $2$

     
    #include <iostream>
    using namespace std;
    
    const int m=10,n=5;
    
    int main(int argc, char* const argv[]){
        
        int a,b,k,i,j;
    
        int matrice[m][n];
        k=1;
        for (i = 0; i < m; i++)
            for (j = 0; j < n; j++)
                 {
                 matrice[i][j]=k;
                 k++;
                 }
    
        cin>>a>>b;
        if (a<m and b<n)
              cout<<matrice[a][b];
    
        return 0;
    }
    

  3. Écrire un progamme qui lit sur input une valeur naturelle n et qui affiche ensuite à l'écran toutes les paires $(i,j)$ telles que $0\leq i\leq {\tt n}$ et $0\leq j\leq i$. Ces paires seront affichées sur n lignes de la façon suivante:

    \begin{displaymath}
\begin{array}{lllll}
(0, 0)\\
(1, 0)&(1, 1)\\
\vdots&\...
...)&({\tt n}, 1)&\cdots&\cdots&({\tt n},{\tt n})\\
\end{array} \end{displaymath}

  4. Écrire un extrait de code qui calcule la trace d'une matrice $A$ de dimension $n \times n$ :

    \begin{displaymath}{trace}(A) = \sum_{i=1}^n A_{ii} \end{displaymath}

  5. Écrire un extrait de code qui teste la symétrie d'une matrice carrée $A$ de taille $n \times n$.

    Rappel : une matrice $A_{ij}$ ($i$ de $1$ à $n$, $j$ de $1$ à $n$) est dite symétrique si elle est égale à sa transposée, c'est-à-dire si :


    \begin{displaymath}
\forall i,j : 1 \leq i,j \leq n : A_{ij}=A_{ji}
\end{displaymath}