Tableaux Table des matières

Documents pareils
Bases de programmation. Cours 5. Structurer les données

TP JAVASCRIPT OMI4 TP5 SRC

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Plan du cours Cours théoriques. 29 septembre 2014

Langage Java. Classe de première SI

Programme Compte bancaire (code)

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Introduction à MATLAB R

Cours Informatique Master STEP

STAGE IREM 0- Premiers pas en Python

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Corrigé des exercices sur les références

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation C++ (débutant)/instructions for, while et do...while

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Cours d initiation à la programmation en C++ Johann Cuenin

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Chap III : Les tableaux

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

TD3: tableaux avancées, première classe et chaînes

Premiers Pas en Programmation Objet : les Classes et les Objets

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1 Recherche en table par balayage

Java Licence Professionnelle CISII,

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Les structures. Chapitre 3

1. Structure d'un programme FORTRAN 95

Programmation Web. Madalina Croitoru IUT Montpellier

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Architecture des Systèmes d Information Architecture des Systèmes d Information

Génie Logiciel avec Ada. 4 février 2013

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...


I. Introduction aux fonctions : les fonctions standards

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

as Architecture des Systèmes d Information

CORRECTION EXERCICES ALGORITHME 1

Document Object Model (DOM)

4. Groupement d objets

Généralités sur le Langage Java et éléments syntaxiques.

Plan du cours. Historique du langage Nouveautés de Java 7

Propagation sur réseau statique et dynamique

Représentation d un entier en base b

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

4. Les structures de données statiques

Algorithmique et Programmation, IMA

AWS avancé. Surveiller votre utilisation d EC2

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Initiation à l algorithmique

Un jour, une question Réponse à une problématique issue de la liste GTA *

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Algorithmes récursifs

Programmation en langage C

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Structurer ses données : les tableaux. Introduction à la programmation

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Solutions du chapitre 4

Recherche dans un tableau

Dans l'article précédent, vous avez appris

PHP. PHP et bases de données

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Projet de programmation (IK3) : TP n 1 Correction

Examen Médian - 1 heure 30

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Présentation du langage et premières fonctions

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Programmation Orientée Objet Java

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Utilisation d objets : String et ArrayList

Calcul Formel et Numérique, Partie I

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Algorithmique, Structures de données et langage C

Les bases de l informatique et de la programmation. École polytechnique

Programmation Objet - Cours II

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

TP 1. Prise en main du langage Python

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 23/04/2007

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Architecture des ordinateurs

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Principes des langages de programmation INF 321. Eric Goubault

Cours 1 : La compilation

Travaux Dirigés n 1 : chaînes de caractères

Le langage C. Séance n 4

DOM - Document Object Model

Définitions. Numéro à préciser. (Durée : )

Chapitre 2. Classes et objets

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Transcription:

Tableaux Table des matières Création et initialisation des tableaux...2 Accès aux éléments... 3 Taille des tableaux... 4 Parcourir les éléments d'un tableau...4 Affichage des tableaux... 6 Formulaires et tableaux... 7 Recherche séquentielle... 8 Passage d un tableau en paramètre...9 Exercices... 12 1

Les types élémentaires (number, boolean...) utilisent une seule case mémoire pour stocker une valeur. De nombreuses applications informatiques nécessitent le stockage d une suite de données de même type, par exemple, un programme qui compile les notes des étudiants. Dans ce chapitre, nous abordons la notion de tableaux. Création et initialisation des tableaux Les tableaux sont des suites d éléments de même type. Le nombre d éléments de cette suite est fixe et est appelé taille du tableau. Les éléments des tableaux sont soit des nombres entiers, des nombres réels, des caractères, des booléens, des chaîne de caractères ou... des objets. Les tableaux sont eux-mêmes des objets, de type Array. Ils se définissent en déclarant une variable de type référence, qui contiendra l adresse où se trouve le tableau dans la mémoire de l ordinateur. Exemple 1 var t = new Array(); Dans l exemple précédent, la variable t est une référence; l espace-mémoire nécessaire pour coder la suite des objets du tableau n'a pas encore été créé. Exemple 2 Créer un tableau contenant 4 entiers. var t = new Array(1, 2, 3, 4); Dans l'exemple précédent, le tableau possède une propriété length, indiquant le nombre d'élément dans le tableau. La figure suivante représente le tableau créé. Exemple 3 Créer un tableau contenant les 7 jours de la semaine. 2

Var jours = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); Accès aux éléments On accède aux éléments d un tableau avec l opérateur [ ]. On notera : tab[0], tab[1],..., tab[n-1] les n premiers éléments du tableau tab. Les éléments d un tableau sont indicés par un entier. Exemple 4 : <script> var entiers = new Array(1, 2, 3,4); var notes = new Array(88.0, 75.5, 42.5, 91.0, 68.5); var jours = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); var affichage = "La valeur de 'entiers[2]' est : " + entiers[2] + "<br />" + "La valeur de 'notes[1]' est : " + notes[1] + "<br />" + "La valeur de 'jours[6]' est : " + jours[6] + "<br />" + "La longueur du tableau 'jours' est : " +jours.length; document.getelementbyid("reponse").innerhtml = affichage; 3

Taille des tableaux En Javascript, la taille d'un tableau est stockée dans l'attribut length. On connaît donc la taille du tableau en examinant cet attribut. Exemple 5 <script> var jours = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); var affichage = "La longueur du tableau 'jours' est : " +jours.length; document.getelementbyid("reponse").innerhtml = affichage; Il n est évidemment pas possible de modifier arbitrairement la valeur de cet attribut. Parcourir les éléments d'un tableau Exemple 6 Écrire un script qui affiche tous les éléments d un tableau de chaînes de caractères. <script> var jours = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); var affichage = ""; for (var i = 0; i < jours.length; i++){ affichage += "jours[" + i + "] = " + jours[i] + "<br />"; document.getelementbyid("reponse").innerhtml = affichage; Exemple 7 Écrire un script qui remplit un tableau avec des multiples de 10 et les affiche. 4

<script> function listertableau (tab){ var affichage = ""; for (var i = 0; i < tab.length; i++){ affichage += "Élément [" + i + "] du tableau = " + tab[i] + "<br />"; return affichage; var multiples10 = new Array(); for (var i = 0; i < 8; i++){ multiples10[i] = (i + 1) * 10; document.getelementbyid("reponse").innerhtml = listertableau(multiples10); Exemple 8 Écrire un script qui recherche la valeur minimum dans un tableau. <script> function listertableau (tab){ var affichage = ""; for (var i = 0; i < tab.length; i++){ affichage += "Élément [" + i + "] du tableau = " + tab[i] + "<br />"; return affichage; var tableau = new Array(2, 10, 3, 1, 7); // Affichage des éléments du tableau document.getelementbyid("reponse").innerhtml = listertableau(tableau); // Recherche de la valeur minimum du tableau var min = tableau[0]; for (i = 1; i < tableau.length; i++){ 5

if(tableau[i] < min){ min = tableau[i]; window.alert ("La valeur minimum : " + min); Exemple 9 Écrire un script qui recherche la position du minimum dans un tableau <script> function listertableau (tab){ var affichage = ""; for (var i = 0; i < tab.length; i++){ affichage += "Élément [" + i + "] du tableau = " +tab[i]+"<br/>"; return affichage; var tableau = new Array(2, 10, 3, 1, 7); // Affichage des éléments du tableau document.getelementbyid("reponse").innerhtml = listertableau(tableau); // Recherche de la POSITION de la valeur minimum du tableau var positionmin = 0; for (i = 1; i < tableau.length; i++){ if(tableau[i] < tableau[positionmin]){ positionmin = i; window.alert("position de la valeur minimum : " + positionmin); Affichage des tableaux JavaScript offre aussi la possibilité d afficher tous les éléments d un tableau, simplement en utilisant son nom : les éléments sont alors affichés consécutivement, séparés par une virgule: Exemple 10 6

<script> var jours = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); window.alert(jours); Formulaires et tableaux En JavaScript, chaque item d un formulaire est un élément d un tableau le tableau elements ; Exemple 11 <script> var entiers = new Array(); var j = 0; var formulaire = document.form1; for (i = 0; i < formulaire.elements.length; i++){ if(formulaire.elements[i].type == "text"){ entiers[j] = parseint(formulaire.elements[i].value); j++; 7

Recherche séquentielle Le principe d'une recherche séquentielle est de parcourir tous les éléments d'un tableau jusqu'à ce que l'élément recherché soit trouvé. Exemple 12 Écrire un script qui recherche la valeur 13 dans un tableau d'entiers. 1 2 3 4 5 6 var tableau = new Array(100, 44, 2, 80, 5, 13, 11, 2, 110); var valeur = 13; var position = -1; for (i = 0; i < tableau.length; i++) { if(tableau[i] == valeur) 8

7 8 position = i; La boucle for de la ligne 4, permet de parcourir tous les éléments du tableau. La variable position est utilisée pour conserver la position du minimum et comme valeur sentinelle. À la ligne 3, la valeur -1 lui est attribuée ainsi si la valeur cherchée n est pas trouvée dans le tableau la variable position conservera la valeur -1. Si la valeur est trouvée, la variable position contiendra la position du minimum. La recherche de la plus petite ou de la plus grande valeur d un tableau est un cas particulier d une recherche séquentielle. Passage d un tableau en paramètre Il existe deux manières de passer des paramètres : le passage par valeur et le passage par référence. Le passage par valeur. La valeur du paramètre effectif est copiée dans le paramètre formel correspondant. Les modifications effectuées sur le paramètre formel ne sont donc pas transmises au paramètre effectif. Analysons l exemple suivant : 1 2 3 4 5 6 7 8 <script type="text/javascript"> function traitertroisvariables (nb, chaine, condition){ nb = nb + 2; chaine = chaine.touppercase(); condition =!condition; return; var nombre = 4; var ch = "bonjour"; var test = true; traitertroisvariables (nombre, ch, test); document.write("après l'appel de la fonction, les variables valent ceci : ", "<br />", "nombre = ", nombre, "<br />", "ch = ", ch, "<br />", "test = ", test); (explication ici) 9

Lorsqu on passe un tableau en paramètre, ce n est pas une copie du tableau qui est transmise à la méthode mais une référence au tableau. Ce procédé s appelle le passage de paramètre par référence. Ainsi toute modification du tableau à l intérieur de la méthode affectera directement le tableau. 1 2 3 4 5 6 7 8 <script type="text/javascript"> function doublertableau (tab){ for (var i = 0; i < tab.length; i++){ tab[i] = 2 * tab[i]; return; var tab123 = new Array (1,2,3); doublertableau(tab123); document.write("après l'appel de la fonction, les éléments du tableau sont : ", "<br />", "tab123[0] = ", tab123[0], "<br />", "tab123[1] = ", tab123[1], "<br />", "tab123[2] = ", tab123[2]); (Explication ici) 10

Exemple 13 Écrire un fonction qui reçoit en paramètre un tableau d'entiers et qui retourne la valeur du minimum. 1 2 3 4 5 6 7 8 <script type="text/javascript"> function trouvermin (tab){ var min = tab[0]; for (i = 1; i < tab.length; i++){ if(tab[i] < min){ min = tab[i]; return min; var tableau = new Array(2, 10, 3, 1, 7, 8); window.alert("la valeur minimum du tableau : " + trouvermin(tableau)); 11

Exercices Exercice 11.1 Qu est-ce qui sera affiché dans la page Web par l exécution du script suivant : <script type="text/javascript"> function fonctiona(nb){ resultat = ""; for (var i = 1; i <= nb; i++){ resultat = resultat + 2*nb + "_"; return resultat; for (var i = 1 ; i <= 5; i = i + 2){ document.write(fonctiona(i), "<br />"); Affichage dans la page : 12

Exercice 11.2 Dans l exercice suivant, selon le contexte, vous pouvez supposer que les tableaux ont déjà été créés et qu ils ont déjà été remplis. Écrivez simplement à gauche l instruction de JavaScript qui correspond à la description à droite : Instruction Description de l instruction Donne au 3 e salaire du tableau tabsalaires la valeur 50000 int longueur = Donne la longueur du tableau noms Initialise le dernier caractère du tableau codes à 'm' Initialise le 2 e nom du tableau noms à "Bob" Donne la valeur du 4 e élément du tableau nbpoints Additionne 4 au premier élément du tableau nbpoints Déclare et initialise un tableau nommé reponses avec les valeurs 3, 9, 2, 6 et 8 Déclare et initialise un tableau nommé jours avec les valeurs "DIM", "LUN", "MAR", "MER", "JEU", "VEN" et "SAM" Déclare et initialise un tableau nommé enpanne avec les valeurs true, false et false Exercice 11.3 Modifiez la fonction afficher() de l exercice 1 du Cours 16 (voir fichier fourni Cours23_Ex3.html) en utilisant un tableau qui contiendra les noms des jours. Vous 13

n aurez plus besoin de l instruction switch... Exercice 11.4 Créez une page Web, utilisant un formulaire et un script en JavaScript, qui : remplit un tableau d entiers; affiche le contenu du tableau; calcule et affiche la somme des éléments du tableau; calcule et affiche la moyenne des éléments du tableau; affiche la plus grande valeur dans le tableau affiche la position de la plus grande valeur dans le tableau; affiche la plus petite valeur dans le tableau. affiche la position de la plus petite valeur dans le tableau. UTILISEZ LE FICHIER DE DÉPART FOURNI PAR VOTRE ENSEIGNANT (aucune fonction requise) 14

Exercice 11.5 Modifiez votre solution Cours21_Exercice02.html pour y utiliser divers tableaux selon les approches vues au cours. Si votre solution est incomplète ou ne fonctionnait pas, référez vous à la solution de l'exercice 21. Exercice 11.6 Indiquez à droite ce qui sera affiché par le code JavaScript suivant : affichage à l'exécution var tab = new Array(); tab[0] = 10; for (var k = 1; k < 5; k++){ tab[k] = 2 * tab[k - 1]; document.write("le dernier élément : " + tab[4]); affichage à l'exécution var tab = new Array(); tab[0] = 10; tab[1] = 2; var k = 2; for (var j = 1; j < 5; j++){ tab[k] = tab[k - 1] / 2; tab[k + 1] = tab[k] * (k + 1); k = k + 2; document.write("*** " + tab[tab[2]] + " *** " + tab[9]); 15

Exercice 11.7 Écrivez et testez, en JavaScript, une fonction trouvermoyenne qui calcule et retourne la moyenne des éléments d un tableau reçu en paramètres; une fonction multipliertableau qui multiplie tous les éléments d un tableau (reçu en paramètre) par une valeur constante également reçu en paramètre; Exercice 11.8 Écrivez et testez, en JavaScript: une fonction recherche qui détermine et retourne la position d'une valeur dans un tableau d'entiers. La valeur cherchée et le tableau d'entier sont reçu en paramètres. Utilisez le fichier de départ fourni par votre enseignant. 16