La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez,

Présentations similaires


Présentation au sujet: "ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez,"— Transcription de la présentation:

1 ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez, Mohamad Eid

2 Objectifs Matrices Exemple Ex1: Calcul du refroidissement éolien
Ex2: Matrice transposée Si vous êtes vraiment en avance… Ex3: Multiplication de matrices

3 Matrices Une matrice est un tableau rectangulaire, à deux dimensions:
Les dimensions de la matrice sont ses nombres de lignes et de colonnes (3x3 dans l’exemple ci-haut). On peut faire référence à un élément de la matrice M en indiquant sa rangée et sa colonne, dans cet ordre. En mathématiques: les rangées et colonnes débutent à 1, à partir du coin supérieur gauche: Avec une notation mathématique, M1,2 = 2 Pour les algorithmes (et pour Java), nous utiliserons des indices débutant à 0, comme pour les tableaux. Avec une notation algorithmique, M[0][1]  2

4 Traitement des éléments d’une matrice
Pour visiter tous les éléments d’un tableau, nous avions besoin d’une boucle. Pour visiter tous les éléments d’une matrice, nous aurons besoin de deux boucles imbriquées: Boucle extérieure: parcourt les rangées Boucle intérieure: parcourt les colonnes pour une rangée donnée. La récursivité pourrait aussi être utilisée à la place de chacune des boucles.

5 ligne_index <= col_index
Exemple de matrice Écrivez un algorithme qui trouve la somme des éléments du triangle supérieur d’une matrice carrée (i.e., sa diagonale et au-dessus). Comment déterminer si un élément est sur la diagonale ou au-dessus? M = 1 2 3 4 ligne_index <= col_index

6 Exemple de matrice - suite
DONNÉES: M (matrice carrée de nombres) N (taille de M) RÉSULTAT: Somme (somme des éléments dans le triangle supérieur) INTERMÉDIAIRES: L (index pour lignes) C (index pour colonnes) EN-TÊTE: Somme  CalculeTriangleSup(M, N)

7 Exemple de matrice - suite
MODULE: Somme  0 L  0 faux L < N ? vrai C  0 C < N ? vrai faux L  C ? vrai faux Somme  Somme + M[L][C] C  C + 1 L  L + 1

8 Exercice de matrice #1: objectifs
Concevez un algorithme qui créera une matrice de refroidissement éolien (wind chill) pour des ensembles de températures et de vitesses de vent donnés. Les températures seront emmagasinées dans un tableau Les vitesses de vent seront emmagasinées dans un second tableau. Un algorithme pour le calcul du facteur vent en fonction de la température et de la vitesse du vent vous sera fourni. Commencez avec le fichier Word, Lab9Ex1.doc – il contient les algorithmes principal et FacteurVent. Implémentez votre algorithme en Java. Commencez avec le fichier FacteurVent.java, il contient les méthodes main et facteurVent déjà complétés. Si c’est votre premier hiver à Ottawa, ceci pourra vous être utile!

9 Algorithme pour le calcul du refroidissement éolien (souvent appelé facteur vent)
Vous disposez de l’algorithme suivant: TempVent  FacteurVent( Température, VitesseVent ) qui calcule le facteur vent pour une température donnée (en °C), et une vitesse de vent (en km/h). Restrictions: VitesseVent  5 km/h Température doit être entre -50.0°C et +5.0°C. Info:

10 Matrice de facteurs vent
Concevez cet algorithme DONNÉES: TabTemp (tableau de températures en °C) NT (nombre de températures, taille de TabTemp) TabVitesse (tableau de vitesses de vent en km/hr) NV (nombre de vitesses, taille de TabVitesse) RÉSULTATS: MatFacVent (matrice de facteurs vents, avec NT lignes et NV colonnes) INTERMÉDIAIRES (à déterminer…) EN-TÊTE: MatFacVent  MatFacteurVent(TabTemp,NT,TabVitesse,NV)

11 Implémentation en Java
Utilisez le fichier FacteurVent.java (site Web du cours) qui contient: Une méthode main( ) La méthode matFacteurVent à compléter Une implémentation de la méthode: facteurVent( température, vitesseVent ) Une classe librairie offre la méthode: public static void printTable( double[] tabTemp, double[] tabVitesse, double[][] matFacVent ) permettant d’afficher une matrice de facteurs vents avec, tabTemp comme en-tête de lignes et tabVitesse comme en-tête de colonnes.

12 Exemple de sortie Plus basse température de l’hiver 2003 à
ITI1520 (A-2010), Lab 10 Nom: James Bond, #Etudiant: Affiche une matrice de facteurs vent. Veuillez entrer un tableau de températures: Entrez des vitesses de vent >= 5.0: Matrice de Facteurs Vent Vitesse: Temp. | 5.0 | 0.0 | -5.0 | -10.0 | -15.0 | -20.0 | -25.0 | -30.0 | -35.0 | -40.0 | Plus basse température de l’hiver 2003 à Ottawa (10e hiver le plus froid dans les 56 dernières années) Janvier 1994: Observé à Ottawa (hiver le plus froid depuis 1948)!

13 Exercice 2: Matrice transposée
Écrivez un algorithme qui prendra en entrée une matrice d’entiers A et transposera cette matrice afin de produire une nouvelle matrice AT. Pour transposer une matrice, il faut que chaque élément alc de la matrice originale devienne l’élément aTcl dans la matrice transposée. Le nombre de lignes dans A devient alors le nombre de colonnes dans AT, et le nombre de colonnes dans A le nombre de lignes dans AT. Commencez avec le fichier Word Labo9Ex2.doc. Par exemple:

14 Matrice transposée en Java
Traduisez votre algorithme en Java. Commencez avec le fichier Transpose.java. La méthode main vous êtes fournie. Le fichier suivant est disponible sur la page des laboratoires: MatriceLib.java. Cette classe librairie contient des méthodes utilisé par main: Lecture d’une matrice d’entiers: public static int[][] readIntMatrix ( int numRows, int numCols ) Affichage (formatté!) d’une matrice: public static void printMatrix( int[][] matrix )

15 Exercice 3: Multiplication de matrice
Supposons que A soit une matrice m × n et que B soit une matrice n × p. L’élément à la ligne i et à la colonne j de A est dénoté par aij. Soit C = A × B. Ainsi, C sera une matrice m × p, et pour 0 ≤ i < m, et 0 ≤ j < p : Écrivez un algorithme qui multiplie deux matrices A et B de dimensions compatibles. Commencez avec le fichier Word Lab9Ex3.doc  

16 Traduction vers Java Commencez avec Produit.java
La méthode main utilise les méthodes de MatriceLib.java pour lire et afficher les matrices.


Télécharger ppt "ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez,"

Présentations similaires


Annonces Google