ITI1520 Lab #6 – Les tableaux Traduit et adapté de versions antérieures créées par Sylvia Boyd, Romelia Plesa, Alan Williams, et Daniel Amyot.

Slides:



Advertisements
Présentations similaires
Les Structures.
Advertisements

Premier programme en C :
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.
Références à une cellule dans EXCEL
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
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.
(Classes prédéfinies – API Java)
C.
JAV - TD 6 Structures de données JAVA
FLSI602 Génie Informatique et Réseaux
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
MATLAB Initiation à Matlab.
Algorithme et programmation
Initiation à la programmation et algorithmique cours 3
Principes de programmation (suite)
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.
Algorithmique et Programmation
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Python La programmation objet
Introduction à la programmation (Java)
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
FICHIERS : Définition : Algorithme général:
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-2000: Structures de données
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Une nouvelle structure de données : les tableaux
Manipulation de formulaires en Javascript
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Principes de programmation
Daniel Amyot et Alan Williams
IFT 6800 Atelier en Technologies d’information
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
MODULE 8 Les fonctions SINUSOÏDALES
CSI 1502 Principes fondamentaux de conception de logiciels
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Références à une cellule dans EXCEL
LANGAGE C LP A2I IUT St DIE
Récursion IFT1025: Programmation 2 Jian-Yun Nie. Définition Le fait pour un programme ou une méthode de s'appeler lui-même. Par exemple –Définir la notion.
Plan cours La notion de pointeur et d’adresse mémoire.
Python Fonction et procédure
Animateur : Med HAIJOUBI
Le langage C Structures de données
TP n°3 Javascript Contrôle de formulaire
4 Introduction des objets. Les chaînes et tableaux
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
ITI1520 Lab #8: Récursivité Gilbert Arbez, Mohamad Eid, Daniel Amyot, Sylvia Boyd, Diana Inkpen et Alan Williams.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
Strings et Tableaux en Java
ISBN Chapitre 10 L'implémentation des sous- programmes.
Cours LCS N°4 Présenté par Mr: LALLALI
ITI Lab # 11 Adapté de versions antérieures créées par: Daniel Amyot et Alan Williams.
Mettre en formeExaminerManipuler Les fonctions printf() et sprintf Le traitement de chaîne de caractère La fonction printf() formate le contenu d'une chaîne.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez,
Introduction à la programmation (420-PK2-SL) cours 18 Gestion des applications Technologie de l’information (LEA.BW)
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Introduction à l’utilitaire
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
LES CLASSES ET LES OBJETS
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

ITI1520 Lab #6 – Les tableaux Traduit et adapté de versions antérieures créées par Sylvia Boyd, Romelia Plesa, Alan Williams, et Daniel Amyot

Objectifs de ce laboratoire Tableaux Déclaration de la variable de référence à un tableau Création des tableaux Exercices Formatage de résultats numériques

Tableaux Java Déclaration d’une variable de référence à un tableau: DONNÉE: UnTableau (Référence à un tableau de nombres réels) double [] unTableau; // Référence Création: unTableau aura la valeur spéciale null jusqu’à ce qu’il soit vraiment créé: UnTableau  CréerTableau( 5 ) unTableau = new double[5]; // Taille 5

La création de tableau À la déclaration de la variable de référence au tableau, elle contiendra la valeur spécial null (en fait est l’adresse 0). L’utilisation de la variable de référence ayant cette valeur (par exemple, unTableau[0]) crée une erreur “null pointer exception” qui plante le programme. Après la création d’un tableau (avec new), les éléments du tableau n’ont pas été affecté des valeurs (en Java, les éléments contiennent normalement la valeur 0). Tenter d’accéder à un élément hors de ce qui est permis (par exemple, unTableau[5]) va faire planter le programme (Array index out of bounds exception). 4

Tableaux et “length” (taille) Vous pouvez demander sa taille à un tableau: double[] d; int taille; d = new double[4]; taille = d.length; // taille vaut maintenant 4 Notes: N’utilisez pas de parenthèses () ou de crochets [] pour demander la taille. Demander la longueur avant de créer le tableau va produire une erreur d’exécution. La taille n’est PAS l’index maximal (Taille-1) mais le nombre d’éléments (Taille)

Classe ITI1520 et tableaux Voir la documentation de cette clase à http://www.site.uottawa.ca/~damyot/iti1520/doc/ITI1520.html ITI1520.readIntLine( ) Retourne un tableau de int Résultat de type int[] Vous pouvez vérifier sa taille (length) si nécessaire! ITI1520.readDoubleLine( ) Semblable, mais retourne un tableau de double ITI1520.readCharLine( ) Semblable, mais retourne un tableau de char Les espaces sont aussi inclus!

Exemples d’utilisation de ITI1520 int x = ITI1520.readInt( ); Si vous entres 123 et appuyez ENTER, x sera affecter la valeur 123. int[] x; // Déclare une variable de référence x = ITI1520.readIntLine( ); Si vous entrez 12 3 0 -546 (nombres séparés par des espaces) et appuyez ENTER, x sera affecter un référence à un tableau avec 4 éléments, où x[0] contient 12, x[1] contient 3, x[2] contient 0, x[3] contient -546 . Le tableau est créé par readIntLine (avec new), alors pas besoin de créer le tableau explicitement auparavant (mais la variable de référence doit être déclaré pour recevoir la référence). Les méthodes readDouble et readDoubleLine fonctionnent de la même façon. La méthode readCharLine place TOUS les caractères (incluant les espaces) dans un tableau de chars.

Exercice 1: Calculer la moyenne Écrivez un algorithme qui va calculer la moyenne des éléments d’un tableau X de taille N. Implémentez votre algorithme en Java comme un méthode. Développez un algorithme principal/méthode main pour obtenir un tableau de valeurs de l’utilisateur, appelez l’algorithme/méthode pour calculer la moyenne et imprimer les résultats.

Exercice 2 – Le calcule de statistiques Développez un logiciel qui obtient un tableau de notes d’étudiants et trouve: la moyenne des notes, la note maximale, et la note minimale. Développez vos algorithmes avec Visio et Word – commencez avec le fichier Lab5Ex2.doc. Traduisez les algorithmes au Java. Commencez avec Gabarit.java. (vous pouvez aussi commencer avec Lab5Ex1.java.) L’algorithme principale (méthode main) obtient des notes d’étudiants de l’utilisateur (stockées dans un tableau) et appelle statistique pour calculer la moyenne, le maximum, et le minimum. Il affiche aussi les résultats à l’utilisateur. L’algorithme/méthode statistique recevra une référence au tableau et le nombre d’éléments du tableau comme DONNÉES/paramètres et calcule la moyenne, le minimum, et le maximum. Notez que dans le cas de l’algorithme, une référence au tableau et le nombre d’éléments sont les résultats de l’algorithme. Dans le cas de Java, seulement une seule valeur est retournée par la méthode – la référence au tableau.

Exercice 3: Lancer de balle Écrivez un algorithme qui va calculer la distance (horizontale, en mètres) parcourue par une balle lancée à v mètres par seconde, tout dépendant de l’angle  (en degrés) du lancer. Retourne une référence à un tableau de valeurs où: Distance[0]: balle lancée à 0 degrés au-dessus de l’horizontale. Distance[1]: balle lancée à 10 degrés au-dessus de l’horizontale. … Distance[9]: balle lancée à 90 degrés au-dessus de l’horizontale. (directement vers le haut). Complétez votre programme avec un algorithme principale: appelle l’algorithme pour créer le tableau décrit ci-dessus et imprimer son contenu Développez vos algorithmes avec Visio et Word – commencez avec le fichier Lab5Ex3.doc.

Exercice 3: Lancer de balle  0 m distance

Exercice 3: Lancer de balle Formule: distance r = angle en radians où: g = 9.8, constante de gravité universelle.

Exercice 3: Lancer de balle Implémentez vos algorithmes en Java. Commencez avec Gabarit.java Notez bien: Math.PI: valeur de . Math.sin(x): sinus de x, où x est en radians Math.cos(x): cosinus de x, où x est en radians

Formatage de sorties Java offre certaines fonctionnalités pour formater des valeurs numériques. Les résultats spécifiques vont dépendre des “préférences régionales” dans le panneau de contrôle de votre ordinateur Choisir “English(Canada)” va faire que: Les devises auront le $ au début (à la fin en français) Il y aura des virgules au lieu d’espaces pour séparer les milliers, et un point au lieu de la virgule pour la partie décimale Exemple: $45,567.89 (anglais) 45 567,89 (français)

Formateur de nombres décimaux Utilise une “chaîne de formatage” pour identifier les endroits où placer les divers types de caractères. # Endroit pour un chiffre optionnel; si aucun chiffre alors rien n’est affiché. Endroit pour un chiffre non-optionnel; si aucun chiffre alors zéro est affiché. . Endroit pour un point décimal , Endroit pour un séparateur de milliers E Endroit pour indicateur d’exposant (puissance de 10) $ Endroit pour un symbole de devise

Exemple Résultats pour une valeur double de 12345.6 ######## 12346 Arrondissement, justification à gauche 00000000 00012346 Zéros supplémentaires à gauche ######.## 12345.6 Premier et dernier # inutilisés ######.00 12345.60 Force 2 chiffres décimaux ###,###.00 12,345.60 Utilise des virgules comme séparateurs $###,###.00 $12,345.60 $ est collé sur le premier vrai chiffre #.###E00 1.235E04 Arrondissement, 2 chiffres pour l’exposant

Utilisation en Java (1) 1. Création d’un nouveau formateur décimal et emmagasinage dans une variable de type DecimalFormat DecimalFormat df = new DecimalFormat("#####.##"); Utilisez-le pour chaque valeur à afficher avec ce format. System.out.println("Valeur1 = " + df.format( valeur1 ) );

Utilisation en Java import java.text.DecimalFormat; // nécessaire pour dire où trouver DecimalFormat public class FormatTest { public static void main(String[] args) DecimalFormat df = new DecimalFormat("#####.##"); double value1; double value2; value1 = 12345.6; value2 = 34.5678; System.out.println("Value1 = " + df.format( value1 ) ); System.out.println("Value1 = " + df.format( value2 ) ); }

Expérimentez! Exemple: formatez 1234 avec ###. Qu’arrive-t-il si vous essayez de formater un entier qui a plus de chiffres que ce qui se trouve dans le format? Exemple: formatez 1234 avec ###. Qu’arrive-t-il si vous incluez un symbole % à la fin du format? Comment afficheriez-vous un ensemble de valeurs double afin que les points décimaux soient alignés? Exemple: 1234.56 1234.56 0234.56 234.56 0034.56 34.56 (facile) (difficile)

Exercice supplémentaire: Écart type Essayer cette exercice chez vous L’écart type d’un ensemble de valeurs est une mesure utilisée en statistiques pour indiquer par combien ces valeurs divergent de leur moyenne. Par exemple, la moyennes des notes pour un cours peut être de 73 sur 100. Si tout le monde a reçu 73 (ce qui est peu probable), alors l’écart type est de zéro. Un écart type plus typique pourrait être de 13,75.

Écart type Supposons un ensemble de n valeurs représentées par {xi} où: 0 ≤ i < n. L’écart type s est calculé avec la formule: où est la moyenne des valeurs.

Logiciel: Écart type Écrivez un algorithme qui va calculer l’écart type des nombres d’un tableau X de taille N. Développez un algorithme principale qui obtient de l’utilisateur un tableau de valeurs, appel l’algorithme pour calculer l’écart type des valeurs, et affiche le résultat. Implémentez vos algorithmes en Java.