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

Slides:



Advertisements
Présentations similaires
Eléments d'algèbre linéaire
Advertisements

Premier programme en C :
Les matrices.
Fonctions & procédures
C++ 6ème cours Patrick Reuter maître de conférences
Calculs de complexité d'algorithmes
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Les Structures. Introduction : Imaginons que lon veuille afficher les notes dune classe délèves par ordre croissant avec les noms et prénoms de chaque.
Approfondissement du langage
(Classes prédéfinies – API Java)
C.
créer un cadre de texte Zoomez à 100% (ce zoom vous sera utile…retenez le!). Clickez sur l'outil cadre de texte et créez depuis l'angle supérieur.
Exercices page JSP.
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
le nom du logiciel et le nom du fichier s’appelle la barre des titres
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Introduction à la programmation (420-PK2-SL) cours 17 Gestion des applications Technologie de linformation (LEA.BW)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Tableau croisé dynamique sous Excel (TCD).
Rappel... Sous-espaces de Rn: Définition;
Cours DÉTERMINANT. Au dernier cours nous avons vus Linverse dune matrice. Quelques théorèmes qui encadrent son existence. Les matrices élémentaires.
Les éléments de base de l’algorithmique
ASI 3 Méthodes numériques pour l’ingénieur
Methode de Tri efficace
Rappel... Solution itérative de systèmes linéaires (suite et fin).
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
FICHIERS : Définition : Algorithme général:
Introduction aux matrices : exemples en dynamique de population
Une nouvelle structure de données : les tableaux
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Daniel Amyot et Alan Williams
Chapitre 1 Le Sens des nombres
6.1 LE LANGAGE MATRICIEL Cours 16. Aujourdhui, nous allons voir La définition dune matrice Plusieurs définitions de matrice particulière La somme de matrices.
Contrôle « rapide » Indiquer votre série GAUCHE ou DROITE
ITI1520 Lab #6 – Les tableaux Traduit et adapté de versions antérieures créées par Sylvia Boyd, Romelia Plesa, Alan Williams, et Daniel Amyot.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
La librairie assert.h.
Le langage C Structures de données
La décomposition en valeurs singulières: un outil fort utile
Cours de mathématiques économiques
ITI1520 Lab #8: Récursivité Gilbert Arbez, Mohamad Eid, Daniel Amyot, Sylvia Boyd, Diana Inkpen et Alan Williams.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Strings et Tableaux en Java
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Fonctions avancées et graphiques
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Cours LCS N°4 Présenté par Mr: LALLALI
TICE 2 ième Semestre TD6 - Récapitulatif. Mars 2006TICE 2ième Semestre - Révisions2 Evaluation La semaine prochaine Deux demi groupes, minutes d’examen.
ITI Lab # 11 Adapté de versions antérieures créées par: Daniel Amyot et Alan Williams.
La Récursivité.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
1 ITI 1520 Lab #2 - Introduction au Java G. Arbez, M. Eid, Romelia Plesa, Alan Williams, Sylvia Boyd, Daniel Amyot et Diana Inkpen.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Introduction à la programmation (420-PK2-SL) cours 22 Gestion des applications Technologie de l’information (LEA.BW)
Introduction à la programmation (420-PK2-SL) cours 18 Gestion des applications Technologie de l’information (LEA.BW)
Page : 1 / 7 Conduite de projet Examen du 16 mai 2001 Durée : 3h30mn Le support de cours et les notes sont nécessaires La notation tiendra compte très.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Algorithmique Tableaux de données
Structures de données IFT-2000 Abder Alikacem Laboratoire #1 Département d’informatique et de génie logiciel Édition Septembre 2009.
Traitement d’images 420-D78-SW A15 Semaine 02.
Philippe Gandy – 17 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Seconde 8 Module 7 M. FELT 03/11/ Module 7: Algorithmique #2  Objectifs:  AlgoBox.  Définition d’un algorithme.  Affectation de variable. 
Pierre Joli Cours de Mathématique Pierre Joli
Activités Mentales Classe 5 e Test n° PRÊT.
LE CHOIX DE LA FORMULE  Reprise du cours du 09 au 12 décembre (GR 1 à 5, même si redites) o Question : vitesse moyenne du cycliste A sur l’ensemble de.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

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

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

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

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.

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? 0 1 2 3 4 1 4 5 3 2 6 3 6 4 6 M = 4 3 6 7 2 3 4 2 2 4 2 3 8 3 5 1 2 3 4 ligne_index <= col_index

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)

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

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!

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: http://www.msc.ec.gc.ca/education/windchill/

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)

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.

Exemple de sortie Plus basse température de l’hiver 2003 à ITI1520 (A-2010), Lab 10 Nom: James Bond, #Etudiant: 1234567 Affiche une matrice de facteurs vent. Veuillez entrer un tableau de températures: 5 0 -5 -10 -15 -20 -25 -30 -35 -40 Entrez des vitesses de vent >= 5.0: 5 10 15 20 25 30 35 40 Matrice de Facteurs Vent Vitesse: 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 --------------------------------------------------------- Temp. | 5.0 | 4.1 2.7 1.7 1.1 0.5 0.1 -0.4 -0.7 0.0 | -1.6 -3.3 -4.4 -5.2 -5.9 -6.5 -7.0 -7.4 -5.0 | -7.3 -9.3 -10.6 -11.6 -12.3 -13.0 -13.6 -14.1 -10.0 | -12.9 -15.3 -16.7 -17.9 -18.8 -19.5 -20.2 -20.8 -15.0 | -18.6 -21.2 -22.9 -24.2 -25.2 -26.0 -26.8 -27.4 -20.0 | -24.3 -27.2 -29.1 -30.5 -31.6 -32.6 -33.4 -34.1 -25.0 | -30.0 -33.2 -35.2 -36.8 -38.0 -39.1 -40.0 -40.8 -30.0 | -35.6 -39.2 -41.4 -43.1 -44.5 -45.6 -46.6 -47.5 -35.0 | -41.3 -45.1 -47.6 -49.4 -50.9 -52.1 -53.2 -54.2 -40.0 | -47.0 -51.1 -53.7 -55.7 -57.3 -58.7 -59.8 -60.9 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)!

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:

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 )

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  

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