Exercices corrigés sur les matrices en Python, Java et langage C - TD 2

Do you have difficulties understanding French courses? visit our English version Click here

Exercices corrigés sur les matrices en Python, Java et langage C - TD 2

C'est la deuxième série d'exercices corrigés sur les matrices, nous continuons à effectuer des opérations intéressantes de calcul matriciel

Tous les exercices sont résolus en utilisant la programmation Python, Java et C

Exercice 1

Écrivez un programme pour lire les éléments d'une matrice et vérifiez s'il s'agit d'une matrice triangulaire supérieure ou non.

Une matrice triangulaire supérieure est une matrice carrée spéciale dont tous les éléments en dessous de la diagonale principale sont nuls, ce qui signifie que \(a_{i,j}=0, \hspace{0.2cm}\forall i \ge j \)

Exemple : 

$$ A= \begin{pmatrix} 1 & 2 & 3 \\ 0 & 3 & -1 \\ 0 & 0 & 9 \end{pmatrix} $$

Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int A[][];
        int M = 2, N = 2, i, j;
        boolean estTriang;

        // intialiser la taille de A
        A = new int[M][N];

        // Saisir les éléments de la matrice A
        for (i = 0; i < M; i++) {
            for (j = 0; j < N; j++) {
                System.out.print("A[" + i + "][" + j + "] : ");
                A[i][j] = clavier.nextInt();
            }

        }

        // Nous supposons que c'est une matrice triangulaire supérieure */
        estTriang = true;
        for (i = 0; i < M; i++) {
            for (j = 0; j < i; j++) {
                /*
                 * Si les éléments en dessous de la diagonale principale ne sont pas égaux à
                 * zéro, alors cette matrice n'est pas une matrice triangulaire supérieure
                 */
                if (A[i][j] != 0) {
                    estTriang = false;
                    break;
                }
            }
        }

        if (estTriang == true) {
            System.out.println("\nLa matrice est une matrice triangulaire supérieure.\n");
        } else {
            System.out.println("\nLa matrice n'est pas une matrice triangulaire supérieure.");
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define LIGNES 3 // Nombre de lignes
#define COLS 3 // Nombre de colonnes

int main()
{
    int A[LIGNES][COLS];
    int i, i, estTriang;

    /* Saisir les éléments de la matrice A */
    printf("Saisir les éléments de la matrice A de taille (%d,%d) \n",LIGNES, COLS);
    for(i=0; i<LIGNES; i++)
    {
        for(j=0; j<COLS; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }
    
    /* Nous supposons que c'est une matrice triangulaire supérieure */
    estTriang = 1;
    for(i=0; i<LIGNES; i++)
    {
        for(j=0; j<i; j++)
        {
            /*
             * Si les éléments en dessous de la diagonale principale ne sont pas égaux à zéro, 
             * alors cette matrice n'est pas une matrice triangulaire supérieure
             */
            if(A[i][j]!=0)
            {
                estTriang = 0;
                break;
            }
        }
    }
    
    if(estTriang == 1)
    {
        printf("\nLa matrice est une matrice triangulaire supérieure.\n");
    }
    else
    {
        printf("\nLa matrice n'est pas une matrice triangulaire supérieure.");
    }

    return 0;
}
                                        
# Taille de la matrice
M = 2
N = 2

# intialiser la taille des matrices
A = [[0 for i in range(N)] for j in range(M)]

# Saisir les éléments de A
for i in range(M):
    for j in range(N):
        A[i][j] = int(input("Saisir l'élement A[{0}][{1}] : ".format(i, j)))

# Nous supposons que c'est une matrice triangulaire supérieure */
estTriang = True

for i in range(M):
    for j in range(i):
        if(A[i][j] != 0):
            estTriang = False
            break

if(estTriang == True):
    print("\nLa matrice est une matrice triangulaire supérieure.")
else:
    print("\nLa matrice n'est pas une matrice triangulaire supérieure.")

                                        

Exercice 2

Écrivez un programme pour lire les éléments d'une matrice et trouver la somme de la matrice triangulaire supérieure.

$$ \forall i,j : S=\sum a_{i,j}, \hspace{0.3cm}avec \hspace{0.1cm}j \gt i $$

Exemple : 

$$ A= \begin{pmatrix} 1 & 2 & 3 \\ 4 & 3 & -1 \\ 4 & 7 & 9 \end{pmatrix} \hspace{1cm} S = 2 + 3 + (-1) = 4 $$

Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int A[][];
        int M = 3, N = 3, i, j, somme;

        // intialiser la taille de A
        A = new int[M][N];

        // Saisir les éléments de la matrice A
        for (i = 0; i < M; i++) {
            for (j = 0; j < N; j++) {
                System.out.print("A[" + i + "][" + j + "] : ");
                A[i][j] = clavier.nextInt();
            }

        }

        somme = 0;
        for (i = 0; i < M; i++) {
            for (j = i + 1; j < N; j++) {
                somme += A[i][j];
            }
        }

        System.out.println("La somme est " + somme);

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define LIGNES 3 // Nombre de lignes
#define COLS 3 // Nombre de colonnes

int main()
{
    int A[LIGNES][COLS];
    int i, i, somme;

    /* Saisir les éléments de la matrice A */
    printf("Saisir les éléments de la matrice A de taille (%d,%d) \n",LIGNES, COLS);
    for(i=0; i<LIGNES; i++)
    {
        for(j=0; j<COLS; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }
    
    somme = 0;
    for(i=0; i<LIGNES; i++)
    {
        for(j=i+1; j<COLS; j++)
        {
            somme+=A[i][j];
        }
    }
    
    printf("\nLa somme est %d. \n",somme);

    return 0;
}
                                        
# Taille de la matrice
M = 3
N = 3

# intialiser la taille des matrices
A = [[0 for i in range(N)] for j in range(M)]

# Saisir les éléments de A
for i in range(M):
    for j in range(N):
        A[i][j] = int(input("Saisir l'élement A[{0}][{1}] : ".format(i, j)))

somme = 0
for i in range(M):
    for j in range(i+1, N):
        somme += A[i][j]

print("La somme est ", somme)

                                        

Exercice 3

Écrivez un programme pour lire les éléments d'une matrice et trouver sa matrice transposée.

En mathématiques, la matrice transposée d'une matrice A de taille (m,n) est une matrice notée \(A^t\) de taille (n,m), obtenue en échangeant les lignes et les colonnes de A.
Si on note B la matrice transposée de A, on a \(b_{i,j}=a_{j,i}\)

Exemple : 

$$ A= \begin{pmatrix} 1 & 2 & 3 \\ 4 & 3 & -1 \end{pmatrix} $$ $$ A^t= \begin{pmatrix} 1 & 4 \\ 2 & 3 \\ 3 & -1 \end{pmatrix} $$

Corrigé
import java.util.Scanner;

public class Test {
    public static void main(String[] variables) {
        Scanner clavier = new Scanner(System.in);

        int A[][], B[][];
        int M = 3, N = 2, i, j;

        // intialiser la taille de A et B
        A = new int[M][N];
        B = new int[N][M];

        // Saisir les éléments de la matrice A
        for (i = 0; i < M; i++) {
            for (j = 0; j < N; j++) {
                System.out.print("A[" + i + "][" + j + "] : ");
                A[i][j] = clavier.nextInt();
            }

        }

        for (i = 0; i < N; i++) {
            for (j = 0; j < M; j++) {
                B[i][j] = A[j][i];
            }
        }

        // Afficher la matrice transposée
        for (i = 0; i < N; i++) {
            for (j = 0; j < M; j++) {
                System.out.print(B[i][j] + " , ");
            }
            System.out.println();
        }

        // fermer les ressources
        clavier.close();
    }
}

                                        
#include <stdio.h>
#define LIGNES 3 // Nombre de lignes
#define COLS 3 // Nombre de colonnes

int main()
{
    int A[LIGNES][COLS];  // matrice originale
    int B[COLS][LIGNES];  // matrice transposée

    int i, j;

    /* Saisir les éléments de la matrice A */
    printf("Saisir les éléments de la matrice A de taille (%d,%d) \n",LIGNES, COLS);
    for(i=0; i<LIGNES; i++)
    {
        for(j=0; j<COLS; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    /*
     * Trouver la matrice transposée
     */
    for(i=0; i<COLS; i++)
    {
        for(j=0; j<LIGNES; j++)
        {
            B[i][j] = A[j][i];
        }
    }
    
    /* Afficher la matrice transposée */
    for(i=0; i<COLS; i++)
    {
        for(j=0; j<LIGNES; j++)
        {
            printf("%d ", B[i][j]);
        }
        printf("\n");
    }


    return 0;
}
                                        
# Taille de la matrice
M = 3
N = 2

# intialiser la taille des matrices
A = [[0 for i in range(N)] for j in range(M)]
B = [[0 for i in range(M)] for j in range(N)]

# Saisir les éléments de A
for i in range(M):
    for j in range(N):
        A[i][j] = int(input("Saisir l'élement A[{0}][{1}] : ".format(i, j)))

for i in range(N):
    for j in range(M):
        B[i][j] = A[j][i]

# Afficher la matrice transposée
for i in range(N):
    for j in range(M):
        print(B[i][j], end=", ")
    print()

                                        

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Many people realize their hearts desires late in life. Continue learning, never stop striving and keep your curiosity sharp, and you will never become too old to appreciate life.

0 Commentaire(s)

Pour laisser un commentaire vous devez avoir un compte Inscription, ou Se connecter