Génie Logiciel. 1 - Présentation du langage Java. Idir AIT SADOUNE

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

TP1 : Initiation à Java et Eclipse

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

Programmer en JAVA. par Tama

Langage Java. Classe de première SI

as Architecture des Systèmes d Information

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

Programmation Orientée Objet

Chapitre I Notions de base et outils de travail


Présentation du PL/SQL

Initiation à JAVA et à la programmation objet.

TP1 : Initiation à Java et Eclipse

Bases Java - Eclipse / Netbeans

Java Licence Professionnelle CISII,

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

Java Licence Professionnelle CISII,

Eclipse atelier Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Cours 1: Java et les objets

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

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

Programme Compte bancaire (code)

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)

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

INITIATION AU LANGAGE JAVA

Organigramme / Algorigramme Dossier élève 1 SI

1. Langage de programmation Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Projet de Veille Technologique

Notions fondamentales du langage C# Version 1.0

Java c est quoi? Java pourquoi?

Environnements de développement (intégrés)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Éléments de programmation et introduction à Java

Java DataBaseConnectivity

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

4. Groupement d objets

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

Algorithmique et Programmation, IMA

Premiers Pas en Programmation Objet : les Classes et les Objets

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

DotNet. Plan. Les outils de développement

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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

Initiation à l algorithmique

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

Annexe : La Programmation Informatique

Une introduction à Java

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

Conventions d écriture et outils de mise au point

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

Introduction à MATLAB R

UE C avancé cours 1: introduction et révisions

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

Programmation en Java IUT GEII (MC-II1) 1

Initiation à LabView : Les exemples d applications :

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

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

Apprendre Java en 154 minutes

Évaluation et implémentation des langages

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

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

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Vulgarisation Java EE Java EE, c est quoi?

Cours Informatique Master STEP

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

OCL - Object Constraint Language

Algorithmique et structures de données I

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

Système de Virtualisation pour une application de gestion commerciale d entreprise

CATALOGUE FORMATIONS DOMAINE Bases de données

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

Programmation Orientée Objet application au langage Java Version Novembre 2007

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

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

Introduction à Java. Philippe Genoud.

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

Plan du cours Cours théoriques. 29 septembre 2014

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

SUPPORT DE COURS. Langage C

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Installation et prise en main

R, Bonnes pratiques. Christophe Genolini

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Transcription:

1/55 Génie Logiciel 1 - Présentation du langage Idir AIT SADOUNE CentraleSupélec - Département Informatique 3, rue Joliot-Curie, 91192 Gif-sur-Yvette cedex <http://idir.aitsadoune.free.fr> <idir.aitsadoune@centralesupelec.fr> Année scolaire 2015-2016, Séquence 4

2/55 Plan

3/55 Plan

/55 Généralités est un langage de programmation informatique développé par Sun Microsystems en 1995

4/55 Généralités est un langage de programmation informatique développé par Sun Microsystems en 1995 et racheté en 2009 par Oracle.

5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs).

5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs). Langage impératif un programme est une séquences d instructions exécutées pour modifier des (état du programme).

5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs). Langage impératif un programme est une séquences d instructions exécutées pour modifier des (état du programme). Langage objet voir le prochain chapitre

/55 Généralités permet de développer différents types d applications

/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing)

6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets)

6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.)

/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME)

/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME) des applications pour l entreprise (J2EE)

6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME) des applications pour l entreprise (J2EE) et d autres...

Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). 7/55

Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). I JRE ( Runtime Environment) : implémente la machine virtuelle de (JVM) 7/55

Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). 7/55 I JRE ( Runtime Environment) : implémente la machine virtuelle de (JVM) I JDK ( Development Kit) : offre des outils pour développer, compiler, débuguer... des applications

8/55 Les outils nécessaires www.oracle.com/technetwork/java/javase/downloads/

9/55 Plan

10/55 Les outils de développement Il existe plusieurs environnements supportant les développements

1/55 Eclipse www.eclipse.org Eclipse est un Environnement de Développement Intégré (IDE) Open source Ecrit en (nécessite une JRE pour s exécuter) Extensible grâce au mécanisme de plugins

11/55 Eclipse www.eclipse.org Eclipse est un Environnement de Développement Intégré (IDE) Open source Ecrit en (nécessite une JRE pour s exécuter) Extensible grâce au mécanisme de plugins Eclipse permet de développer des applications informatiques Prévu pour et d autres besoins et langages de programmation

Eclipse : création d un nouveau projet 12/55 www.youtube.com/watch?v=zgfodxt9it4

13/55 Plan

4/55 Premier programme en 1 p u b l i c c l a s s H e l l o W o r l d { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 // I n s e r e z v o t r e code i c i 5 System. out. p r i n t l n ( " H e l l o World! " ) ; 6 } 7 } Un contient au moins une classe (mot clef class).

14/55 Premier programme en 1 p u b l i c c l a s s H e l l o W o r l d { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 // I n s e r e z v o t r e code i c i 5 System. out. p r i n t l n ( " H e l l o World! " ) ; 6 } 7 } Un contient au moins une classe (mot clef class). Le programme principal (le point de départ de l exécution) se trouve dans la fonction/méthode main.

Programme plus complet en 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s F a c t o r i e l l e { 4 5 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 6 // D e c l a r a t i o n d e s v a r i a b l e s 7 i n t n ; 8 i n t f a c t ; 9 i n t i ; 10 // L e c t u r e c l a v i e r d un e n t i e r 11 S c a n n e r s i n = new S c a n n e r ( System. i n ) ; 12 n = s i n. n e x t I n t ( ) ; 13 // i n i t i a l i s a t i o n du r e s u l t a t 14 f a c t = 1 ; 15 f o r ( i=1 ; i <=n ; i++) { 16 f a c t = f a c t i ; 17 } 18 // a f f i c h a g e du r e s u l t a t 19 System. out. p r i n t l n ( f a c t ) ; 20 s i n. c l o s e ( ) ; 21 } 22 } 15/55

16/55 Commentaires Commenter un programme = Expliquer en langage naturel ce que le code fait Doit expliquer le raisonnement qui a aboutit au programme Ne doit pas alourdir le code 1 // commentaire s u r une s e u l e l i g n e 2 3 / 4 commentaire 5 s u r p l u s i e u r s l i g n e s 6 /

16/55 Commentaires Commenter un programme = Expliquer en langage naturel ce que le code fait Doit expliquer le raisonnement qui a aboutit au programme Ne doit pas alourdir le code 1 // commentaire s u r une s e u l e l i g n e 2 3 / 4 commentaire 5 s u r p l u s i e u r s l i g n e s 6 / Essentiel pour : Documenter un programme Travailler en équipe Rendre un programme réutilisable

Eclipse : création d une nouvelle classe 17/55 www.youtube.com/watch?v=3kucdokputq

Eclipse : exécution d un 18/55 www.youtube.com/watch?v=w852ifivyzi

19/55 Plan

20/55 ordinateur

1/55 Mémoire La mémoire est un ensemble de cases/mots mémoires

21/55 Mémoire La mémoire est un ensemble de cases/mots mémoires Les données et les instructions d un programme sont stockés dans les cases mémoires

21/55 Mémoire La mémoire est un ensemble de cases/mots mémoires Les données et les instructions d un programme sont stockés dans les cases mémoires Une donnée est représentée en programmation par une variable

2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ;

2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ; Fonctionnement 1. Réserve une case dans la mémoire pour stocker la valeur

2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ; Fonctionnement 1. Réserve une case dans la mémoire pour stocker la valeur 2. Donne un nom (identificateur) à cette case mémoire pour y accéder Stocker une valeur Lire la valeur stockée

23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage

23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage Conventions Première lettre est une minuscule Si plusieurs mots : mots accolés les uns aux autres les mots après le premier commencent par une majuscule Le nom désigne explicitement le contenu de la variable

23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage Conventions Première lettre est une minuscule Si plusieurs mots : mots accolés les uns aux autres les mots après le premier commencent par une majuscule Le nom désigne explicitement le contenu de la variable Exemples 1 i n t n o m b r e D e P a r t i c i p a n t s ; 2 i n t v a l e u r 2 ;

24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ;

24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité

24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable

24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable Exemples 1 n o m b r e D e P a r t i c i p a n t s = 25 ; 2 v a l e u r 2 = 2 5+10 ;

24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable Exemples 1 n o m b r e D e P a r t i c i p a n t s = 25 ; 2 v a l e u r 2 = 2 5+10 ; affectation simultanée 1 i n t n o m b r e D e P a r t i c i p a n t s = 25 ;

25/55 Les types en Attention En, une variable ne peut contenir que des valeurs du type donné!

25/55 Les types en Attention En, une variable ne peut contenir que des valeurs du type donné! Les de type numérique 1 // Le t y p e b y t e ( 1 o c t e t ) l e s e n t i e r s 2 b y t e t e m p e r a t u r e = 64 ; 3 // Le t y p e s h o r t ( 2 o c t e t s ) l e s e n t i e r s 4 s h o r t v i t e s s e M a x = 32000 ; 5 // Le t y p e i n t ( 4 o c t e t s ) l e s e n t i e r s 6 i n t t e m p e r a t u r e S o l e i l = 15600000 ; 7 // Le t y p e l o n g ( 8 o c t e t s ) l e s e n t i e r s 8 l o n g a n n e e L u m i e r e = 9460700000000000L ; 9 // Le t y p e f l o a t ( 4 o c t e t s ) l e s nombres a v e c une v i r g u l e f l o t t a n t e 10 f l o a t p i = 3. 141592653 f ; 11 // Le t y p e d o u b l e ( 8 o c t e t s ) l e s nombres a v e c une v i r g u l e f l o t t a n t e 12 d o u b l e d i v i s i o n = 0. 333333333333333333333333333333333333333333334d ;

26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ;

26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ; Les de type booléen 1 b o o l e a n q u e s t i o n ; 2 q u e s t i o n = t r u e ;

26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ; Les de type booléen 1 b o o l e a n q u e s t i o n ; 2 q u e s t i o n = t r u e ; Les de type String 1 S t r i n g p h r a s e ; 2 p h r a s e = " T i t i e t G r o s m i n e t " ; 3 4 S t r i n g s t r = new S t r i n g ( ) ; 5 s t r = "Une a u t r e c h a i n e de c a r a c t e r e s " ; 6 7 S t r i n g c h a i n e = new S t r i n g ( " Et une de p l u s! " ) ;

27/55 Les expressions en Les opérateurs arithmétiques + : additionner deux numériques - : soustraire deux numériques * : multiplier deux numériques / : diviser deux numériques % : renvoyer le reste de la division entière

27/55 Les expressions en Les opérateurs arithmétiques + : additionner deux numériques - : soustraire deux numériques * : multiplier deux numériques / : diviser deux numériques % : renvoyer le reste de la division entière Exemples 1 i n t x, y, z ; // D e c l a r a t i o n d e s v a r i a b l e s 2 3 x = 1 + 3 ; // x v a u t 4 4 y = 2 6 ; // y v a u t 12 5 z = y / x ; // z v a u t 3 6 z = ( 1+3 ) / ( 2 6 ) ; // z v a u t 3 7 x = 5 % 2 ; // x v a u t 1 8 y = 99 % 8 ; // y v a u t 3 9 z = x % y ; // z v a u t 1 10 z = ( 5%2 )%( 99%8 ) ; // z v a u t 1

28/55 Le transtypage Attention L expression doit être du même type que la variable!

28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information

28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information Sans perte d information 1 i n t i = 3 ; 2 d o u b l e d = i ; // d v a u t 3. 0

28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information Sans perte d information 1 i n t i = 3 ; 2 d o u b l e d = i ; // d v a u t 3. 0 Avec perte d information 1 <Nouveau Type> <V a r i a b l e > = (<Nouveau Type>) <E x p r e s s i o n > ; 2 3 d o u b l e d = 3. 4 ; 4 i n t i = ( i n t ) d ; // i v a u t 3

29/55 Les constantes La déclaration d une constante 1 s t a t i c f i n a l <t y p e C o n s t a n t e > <nomconstante> = <v a l e u r C o n s t a n t e >;

29/55 Les constantes La déclaration d une constante 1 s t a t i c f i n a l <t y p e C o n s t a n t e > <nomconstante> = <v a l e u r C o n s t a n t e >; Exemple 1 s t a t i c f i n a l d o u b l e RATE = 0. 025 ;

30/55 Plan

31/55 Instructions de lecture La lecture avec la classe Scanner 1 // C e c i i m p o r t e l a c l a s s e S c a n n e r du package j a v a. u t i l 2 i m p o r t j a v a. u t i l. S c a n n e r ; 3 4 p u b l i c c l a s s Main { 5 6 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 7 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 8 S t r i n g s t r = s c. n e x t L i n e ( ) ; 9 i n t i = s c. n e x t I n t ( ) ; 10 d o u b l e d = s c. n e x t D o u b l e ( ) ; 11 l o n g l = s c. nextlong ( ) ; 12 b y t e b = s c. n e x t B y t e ( ) ; 13 // Etc. 14 } 15 }

32/55 Instructions d affichage L affichage avec la méthode System.out.print 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s Main { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 6 System. out. p r i n t ( " S a i s i s s e z un e n t i e r : " ) ; 7 i n t i = s c. n e x t I n t ( ) ; 8 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + i ) ; 9 //On v i d e l a l i g n e 10 s c. n e x t L i n e ( ) ; 11 System. out. p r i n t ( " S a i s i s s e z une c h a i n e : " ) ; 12 S t r i n g s t r = s c. n e x t L i n e ( ) ; 13 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + s t r ) ; 14 } 15 }

32/55 Instructions d affichage L affichage avec la méthode System.out.print 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s Main { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 6 System. out. p r i n t ( " S a i s i s s e z un e n t i e r : " ) ; 7 i n t i = s c. n e x t I n t ( ) ; 8 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + i ) ; 9 //On v i d e l a l i g n e 10 s c. n e x t L i n e ( ) ; 11 System. out. p r i n t ( " S a i s i s s e z une c h a i n e : " ) ; 12 S t r i n g s t r = s c. n e x t L i n e ( ) ; 13 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + s t r ) ; 14 } 15 } 1 >> S a i s i s s e z un e n t i e r : 12 2 >>Vous a v e z s a i s i : 12 3 >> S a i s i s s e z une c h a i n e : C e n t r a l e S u p e l e c 4 >>Vous a v e z s a i s i : C e n t r a l e S u p e l e c

33/55 Plan

34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs

34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs Les opérateurs booléans A B = A or B (OR logique) A && B = A and B (AND logique)! A = not A (NOT logique)

34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs Les opérateurs booléans A B = A or B (OR logique) A && B = A and B (AND logique)! A = not A (NOT logique) Attention A et B doivent être des expressions générant des booléans

35/55 Instruction : if Bloc d instruction exécuté si la condition est vraie, sinon un autre est exécuté 1 i f ( c o n d i t i o n ) { 2 commande1 ; 3 } 1 i f ( c o n d i t i o n ) { 2 commande1 ; 3 } 4 e l s e { 5 commande2 ; 6 } 1 i f ( c o n d i t i o n 1 ) { 2 commande1 ; 3 } 4 e l s e i f ( c o n d i t i o n 2 ) { 5 commande2 ; 6 } 7 e l s e { 8 commande3 ; 9 }

36/55 Instruction : if Exemple 1 i f ( i < 0 ) { 2 System. out. p r i n t l n ( "Ce nombre e s t n e g a t i f! " ) ; 3 } 4 e l s e { 5 i f ( i == 0 ) 6 System. out. p r i n t l n ( "Ce nombre e s t n u l! " ) ; 7 e l s e 8 System. out. p r i n t l n ( "Ce nombre e s t p o s i t i f! " ) ; 9 }

37/55 Plan

8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois

8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois Une boucle s exécute tant qu une condition est remplie

8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois Une boucle s exécute tant qu une condition est remplie En, il existe trois formes de boucles : 1. boucle while 2. boucle do while 3. boucle for

39/55 La boucle while Permet d exécuter un bloc d instruction tant qu une condition est vraie

39/55 La boucle while Permet d exécuter un bloc d instruction tant qu une condition est vraie 1 w h i l e ( c o n d i t i o n ) { 2 i n s t r u c t i o n 1 ; 3 } 4 i n s t r u c t i o n 2 ; 1. On évalue condition 1.1 Si condition est vraie, on exécute le bloc instruction1 et on recommence au niveau de condition (aller à 1) 1.2 Si condition est fausse, on saute à instruction2

40/55 La boucle while Exemple 1 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 2 i n t x = s c. n e x t I n t ( ) ; 3 4 i n t i = 1 ; 5 w h i l e ( ( i+1 ) ( i+1 ) <= x ) { 6 i = i + 1 ; 7 } 8 System. out. p r i n t ( " La r a c i n e c a r r e e e n t i e r e " ) ; 9 System. out. p r i n t l n ( " de " + x + " e s t : " + i ) ;

41/55 La boucle do... while Permet d exécuter une première fois un bloc d instruction, puis de le répéter tant qu une condition est vraie.

41/55 La boucle do... while Permet d exécuter une première fois un bloc d instruction, puis de le répéter tant qu une condition est vraie. 1 do { 2 i n s t r u c t i o n 1 ; 3 } w h i l e ( c o n d i t i o n ) 4 i n s t r u c t i o n 2 ; 1. On exécute le bloc instruction1 2. On évalue la condition 2.1 Si condition est vraie, on recommence au niveau du bloc instruction1 (aller à 1) 2.2 Si condition est fausse, on saute à instruction2

42/55 La boucle do... while Exemple 1 i n t c p t = 3 ; 2 3 do { 4 c p t = c p t 1 ; 5 } w h i l e ( c p t >= 0 ) ;

43/55 La boucle for Permet d exécuter un bloc d instruction tant qu une condition est vraie La condition implique une variable de contrôle modifiée à chaque itération

43/55 La boucle for Permet d exécuter un bloc d instruction tant qu une condition est vraie La condition implique une variable de contrôle modifiée à chaque itération 1 f o r ( i n i t ; c o n d i t i o n ; maj ) { 2 i n s t r u c t i o n 1 ; 3 } 4 i n s t r u c t i o n 2 ; 1. On initialise la variable de contrôle avec init 2. On évalue la condition 2.1 Si condition est vraie, on exécute instruction1 puis maj et on va à l étape 2 2.2 Si condition est fausse, on saute à instruction2

44/55 La boucle for Exemple 1 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 2 i n t n = s c. n e x t I n t ( ) ; 3 4 i n t f a c t = 1 ; 5 f o r ( i n t i=1 ; i <=n ; i++) { 6 f a c t = f a c t i ; 7 } 8 System. out. p r i n t l n ( f a c t ) ;

45/55 Les raccourcis pour l affectation Les opérateurs arithmétiques somme += nb somme = somme + nb fact *= nb fact = fact * nb solde -= nb solde = solde - nb

45/55 Les raccourcis pour l affectation Les opérateurs arithmétiques somme += nb somme = somme + nb fact *= nb fact = fact * nb solde -= nb solde = solde - nb Incrémentation et décrémentation x++ x+= 1 x = x + 1 y- - y-= 1 y = y - 1

46/55 Plan

47/55 Définition Tableau Ensemble fini de de même type reprérées par des indices Ces s appellent éléments de tableau indice 0 1 i n-1 11 3 21 3 50 35 43 élément

48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau

48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau Déclaration d une variable référence à un tableau 1 i n t [ ] montableau ; montableau

48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau Déclaration d une variable référence à un tableau 1 i n t [ ] montableau ; Création du tableau et liaison avec la référence 1 montableau = new i n t [ 4 ] ; montableau

49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false

49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ;

49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ; Manipulation d un tableau L accès à un élément se fait avec montableau[indice] La taille d un tableau est donnée par montableau.length

49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ; Manipulation d un tableau L accès à un élément se fait avec montableau[indice] La taille d un tableau est donnée par montableau.length 1 i n t [ ] montableau = new i n t [ 4 ] ; 2 3 f o r ( i n t i=0 ; i <montableau. l e n g t h ; i++) { 4 montableau [ i ] = i 2 ; 5 }

50/55 Les références sur les tableaux en taba 1 i n t [ ] taba = new i n t [ 4 ] ;

50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ;

50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 3

50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 4 tabb = taba ; 3

50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 4 tabb = taba ; 5 tabb [ 1 ] = 7 ; 7

51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ]

51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ] Indiquer lors de la déclaration/création : le type des éléments et les dimensions

51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ] Indiquer lors de la déclaration/création : le type des éléments et les dimensions Exemples 1 d o u b l e [ ] [ ] [ ] tab 1 = new d o u b l e [ 3 ] [ 4 ] [ 3 ] ; 2 i n t [ ] [ ] tab 2 = new i n t [ ] [ ] {{1, 2}, {3, 4}, {5, 6}} ; 3 i n t [ ] [ ] tab 3 = {{1, 2}, {3, 4}, {5, 6}} ;

52/55 Plan

53/55 Déclaration Forme générale 1 s t a t i c t y p e R e s u l t a t nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 r e t u r n v a l e u r R e s u l t a t ; 4 }

53/55 Déclaration Forme générale 1 s t a t i c t y p e R e s u l t a t nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 r e t u r n v a l e u r R e s u l t a t ; 4 } Cas particulier : pas de résultat retourné 1 s t a t i c v o i d nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 }

54/55 Déclaration sont déclarées dans une classe et ne peuvent pas être imbriquées

54/55 Déclaration sont déclarées dans une classe et ne peuvent pas être imbriquées Exemple 1 c l a s s Exemple { 2 3 s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 5 i n t n = s c. n e x t I n t ( ) ; 6 i n t n C a r r e = c a r r e ( n ) ; 7 System. out. p r i n t l n ( n + "^2 = " + n C a r r e ) ; 8 } 9 10 s t a t i c i n t c a r r e ( i n t x ) { 11 r e t u r n x x ; 12 } 13 }

55/55 Signature et fonctions homonymes En, lorsqu on appelle une fonction, elle est recherchée par sa signature Signature = nom de fonction + type des arguments Il est possible de déclarer des fonctions homonymes Même nom de fonctions avec des arguments différents (nombre et type) On parle de surcharge de fonction

55/55 Signature et fonctions homonymes En, lorsqu on appelle une fonction, elle est recherchée par sa signature Signature = nom de fonction + type des arguments Il est possible de déclarer des fonctions homonymes Même nom de fonctions avec des arguments différents (nombre et type) On parle de surcharge de fonction Exemple 1 c l a s s Exemple { 2 3 s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 5 i n t n = s c. n e x t I n t ( ) ; 6 i n t n C a r r e = c a r r e ( n ) ; 7 d o u b l e d = s c. n e x t D o u b l e ( ) ; 8 d o u b l e d C a r r e = c a r r e ( d ) ; 9 } 10 11 s t a t i c i n t c a r r e ( i n t x ) { r e t u r n x x ; } 12 s t a t i c d o u b l e c a r r e ( d o u b l e x ) { r e t u r n x x ; } 13 }