Javascript. Les structures de contrôle

Documents pareils
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programmer en JAVA. par Tama


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

Notions fondamentales du langage C# Version 1.0

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

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

Cours d algorithmique pour la classe de 2nde

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Corrigé des TD 1 à 5

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

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

Introduction au langage C

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

Cours Informatique Master STEP

Organigramme / Algorigramme Dossier élève 1 SI

Recherche dans un tableau

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Java Licence Professionnelle CISII,

Programmation Web. Madalina Croitoru IUT Montpellier

Algorithmique et structures de données I

Introduction à l algorithmique et à la programmation M1102 CM n 3

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Introduction à MATLAB R

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Algorithmique et Programmation, IMA

STAGE IREM 0- Premiers pas en Python

INF 321 : mémento de la syntaxe de Java

La gestion des exceptions

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

Conventions d écriture et outils de mise au point

Cours d Algorithmique et de Langage C v 3.0

Algorithmique et programmation : les bases (VBA) Corrigé

1 Recherche en table par balayage

Cours d Informatique

as Architecture des Systèmes d Information

Algorithme. Table des matières

Claude Delannoy. 3 e édition C++

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

L informatique en BCPST

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Initiation à la programmation en Python

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Programme Compte bancaire (code)

Programmation en langage C

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

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

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

SUPPORT DE COURS. Langage C

Bernard HAMM, Évelyne LAVOISIER

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Gestion mémoire et Représentation intermédiaire

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Java Licence Professionnelle CISII,

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Programmation Classique en langage C

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

Informatique / Programmation

1. Structure d'un programme FORTRAN 95

Examen Médian - 1 heure 30

Enseignement secondaire technique

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Résolution de systèmes linéaires par des méthodes directes

Perl Orienté Objet BioPerl There is more than one way to do it

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Qualité du logiciel: Méthodes de test

Algorithmique I. Algorithmique I p.1/??

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Numbers en EPS UN TUTORIEL POUR LA! NOUVELLE VERSION DE NUMBERS EST! DISPONIBLE SUR TICEPS.FREE.FR. ticeps.free.fr

PHP 5. La base de données MySql. A. Belaïd 1

Algorithmique et Programmation Fonctionnelle

Corrigé des exercices sur les références

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Quatrième partie IV. Test. Test 15 février / 71

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

Un ordonnanceur stupide

Langage Éric Guérin 5 octobre 2010

COMPARAISONDESLANGAGESC, C++, JAVA ET

Initiation à LabView : Les exemples d applications :

Principes des langages de programmation INF 321. Eric Goubault

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

ACTIVITÉ DE PROGRAMMATION

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

Présentation du PL/SQL

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

Algorithmique avec Algobox

Transcription:

Javascript Les structures de contrôle

Fondamental (préambule) Dans un algorithme, on doit pouvoir faire prendre une décision au programme. Pour cela, on utilise des structures de contrôle. Sous cette appellation, nous retrouvons : Des conditions : si telle chose est vraie, alors fait ceci et sinon fait cela. les boucles : elles permettent de répéter plusieurs fois une série d'instructions.

Conditions

Le test conditionnel if (chose à tester) { instruction 1; instruction n; Exemple if (prix > 50) { alert( Trop cher!! ); Si la variable prix contient un chiffre supérieur à 50, la valeur booléenne de l expression entre () est vrai, donc l instruction alert est exécutée

et sinon? Exemple if (prix > 50) { alert( Trop cher!! ); else { alert( Achat validé ); Si la variable prix contient un chiffre supérieur à 50, la valeur booléenne de l expression entre () est vrai, donc la première instruction alert est exécutée... dans le cas contraire, c est la deuxième instruction alert qui est exécuté

Le si sinon La structure de contrôle if vous autorise à compliquer encore votre écriture : if (condition) { Instruction1; Instruction2;... else if(cond2) {//=> bloc si condition = "false" et cond2 = "true" Instruction3; Instruction4;...... else { //=> bloc si condition = "false" et cond2 = "false" Instruction5; Instruction6;...... Instruction7; // => suite des instructions à réaliser

Et plusieurs en même temps x=5 r="non" Opérateur logique ET if ( x == 5 && r!="oui" ) { document.write("ok"); Opérateur de comparaison numérique Si les deux conditions sont réunies, l instruction est exécutée. Opérateur de comparaison alpha-numérique

Opérateurs logiques && (cond1 && cond2) la condition 1 ET la condition 2 doivent être vraies simultanément (cond1 cond2) Vrai si l une des 2 conditions est vrai, pas les 2!!!(condition) Négation : si la condition n est pas vrai Les opérateurs logiques binaires, sont très utiles, mais pas dans le web et en tout cas pas tous les jours. :-) & 15 & 3 = 3 ET binaire : 15=1111, 3=0011. le ET donne 0011, soit 3 10 6 = 14 OU binaire : 10=1010, 6=0110. Le OU donne 1110, soit 14

Histoire de logique Le OU logique est tolérant : Exemple (homme == beau OU homme == riche) au moins 1 des 2. Si c est les 2, c est mieux! Le OU exclusif est dictateur : Exemple (couleur == bleu OU couleur == gris) C est l un ou l autre. point. C est pas les deux, et c est pas aucun des deux non plus

Opérateurs de comparaison > supérieur Ces opérateurs peuvent être utilisés sur des < inférieur variables numériques ou chaîne en fonction de votre algorithme. >= supérieur ou égal <= inférieur ou égal == égal!= différent Attention au typage des variables : a= 10000, b= 4 ; (a>b) est faux a=10000, b=4; (a>b) est vrai

Instruction switch A la place d une cascade de else if, préférez, si possible, une structure plus élégante : switch (expression) { case valeur1 : InstructionA; break; case valeur2 : InstructionB; break; default : InstructionZ;

Exemple de switch rep=prompt("what's up doctor?"); switch (rep) { case "bad": document.write("don't worry, be happy"); break; case "fine": document.write("congratulations"); break; default : document.write("what do you say?");

Boucles

tant que while répète l'exécution du bloc d'instructions qu'elle contrôle tant que l'expression logique est vraie. while (condition) { instruction 1; instruction 2; instruction N;... Attention aux boucles infinies ou, au contraire, à celles qui semblent ne jamais fonctionner.

var somme=0; var i=1; while (i<10) { somme += i; i++; document.write(somme+ <br /> ); document.write("la somme des 9 premiers nombres est : "+somme);

une variante... L'instruction do suivie de while permet de réaliser une variante while : Un passage par la boucle sera systématiquement exécutée par do, la condition sera évaluée en fin de boucle par while. Syntaxe : do { // effectue la boucle instruction1; instruction2:... while(condition) // bouclera de nouveau si condition = true Dans d autres langages, on utilise une autre variante until soit jusqu à ce que

Précautions Il est bien entendu possible de combiner tous les opérateurs logiques dans ces boucles. Évitez absolument d accumuler plusieurs négations N hésitez pas à mettre des alert dans la boucle pour vérifier que les variables prennent bien les valeurs prévues. Testez avec différents cas ou contextes, même peu vraisemblables. Une variable peut être de type inattendu : un simple espace devant un chiffre transforme le type en chaîne Une variable peut être vide, ce qui n est pas égal à 0

Boucle for L'instruction for à 3 rôles : elle effectue une initialisation en début de traitement, elle répète l'exécution du bloc d'instructions qu'elle contrôle tant qu'une condition logique est vraie, elle effectue un traitement de fin de boucle à chaque itération. for (initialisation; condition; incrément) { instructions......

Exemple var somme=0; for (i=0; i<10; i++) { somme += i; Au départ, le compteur i vaut 0. Puis, à chaque tour, si le compteur est inférieur à 10 on lui ajoute 1 et on tourne alert("la somme des 9 premiers nombres est : "+somme);

Autres boucles Il est possible de boucler sur un tableau ou les propriétés d un objet var MonTableau = new Array("rouge", "vert", "bleu", "jaune"); for (t in MonTableau) { document.write("couleur ") document.write(t); document.write(" : "+ MonTableau[t] + "<br />");

Parenthèse : Les tableaux Une variable de type tableau possède au moins un indice permettant d'accéder directement à une des valeurs de ce dernier. L indice commence à 0. Il existe des tableaux à une dimension ou à n dimensions : ce sont des tableaux de tableaux. Si l indice est une chaîne alphanumérique, c est un tableau associatif. Nous reviendrons sur les méthodes et propriétés propres au tableaux

Rupture de boucle 1 L instruction break permet de quitter prématurément une boucle, ou plusieurs, si elles sont imbriqués. C est un outil d optimisation très utilisée en algorithmique et donc en programmation, quel que soit le langage. Par exemple, si l on parcours un tableau de données à la recherche d une valeur, il serait idiot de parcourir tout le tableau de 500 lignes alors que l on a trouvé ce que l on cherche à la ligne 4.

Exemple de break c1 = 0; bouclea: while ( c1 < 11 ) { document.write("compteur boucle 1 : " + c1 + "<br />"); for (c2=0;c2<5;c2++) { document.write(" - compteur boucle 2 : " + c2 + "<br />"); if (c1 == 7 && c2 == 2) break bouclea; c1++

Rupture de boucle 2 L instruction continue permet de d ignorer les instructions qui suivent, dans la boucle. C est aussi un outil très utilisé, sans doute dans une moindre mesure, car mal connu. Il s agit la de commencer chaque tour de boucle par un test qui détermine si le traitement doit s'effectuer ou pas

Exemple de continue c1 = 0; while ( c1 < 11 ) { document.write("compteur boucle 1 : " + c1 + "<br />"); for (c2=0;c2<5;c2++) { if (c1 == 8) continue; document.write(" - compteur boucle 2 : " + c2 + "<br />"); c1++

Gestion des exceptions Comme dans tous les langages objets la gestion des erreurs se fait par le mécanisme des exceptions. ceci permet d'intercepter des anomalies dans des objets utilisés dans un bloc. Les anomalies sont déclenchées par l'instruction throw (nom_erreur). L'argument nom_erreur permet de vérifier quel est le type d'erreur déclenchée. Le mot clef try définit le bloc dans lequel l'erreur sera interceptée. Le mot clef catch définit le bloc dans lequel l'erreur sera traitée.

Exemple var x = prompt("entrez une valeur numérique de 0 à 20 :", ''); try { if(x > 20) throw "ErrMax"; else if(x < 0) throw "ErrMin"; else if(isnan(x)) throw "ErrNAN"; catch(err) { if(err == "ErrMin") alert("nombre trop petit"); if(err == "ErrMax") alert("nombre trop grand"); if(err == "ErrNAN") alert("il faut entrer un nombre!");