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



Documents pareils
INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Programmer en JAVA. par Tama

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

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


ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

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

as Architecture des Systèmes d Information

Notions fondamentales du langage C# Version 1.0

Java Licence Professionnelle CISII,

INF 321 : mémento de la syntaxe de Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Algorithmique et Programmation, IMA

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

Introduction au langage C

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

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Chapitre I Notions de base et outils de travail

Programmation en Java IUT GEII (MC-II1) 1

Java Licence Professionnelle CISII,

Langage Java. Classe de première SI

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

SUPPORT DE COURS. Langage C

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

Programmation C. Apprendre à développer des programmes simples dans le langage C

Solutions du chapitre 4

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

Cours d Algorithmique et de Langage C v 3.0

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

PROGRAMMATION PAR OBJETS

Cours 1: Java et les objets

Programmation Orientée Objets Le Langage JAVA

TP1 : Initiation à Java et Eclipse

Rappels Entrées -Sorties

INITIATION AU LANGAGE JAVA

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

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

Claude Delannoy. 3 e édition C++

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

Programmation en langage C

IV- Comment fonctionne un ordinateur?

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)

1. Langage de programmation Java

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

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

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

Une introduction à Java

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

Logiciel de Base. I. Représentation des nombres

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

Sélection du contrôleur

Informatique / Programmation

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

ACTIVITÉ DE PROGRAMMATION

Utilisation d objets : String et ArrayList

Le langage C. Introduction, guide de reference

UE Programmation Impérative Licence 2ème Année

Tp 1 correction. Structures de données (IF2)

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

TP 1. Prise en main du langage Python

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

Cours d Informatique

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Apprendre Java en 154 minutes

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

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

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

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Algorithme. Table des matières

Eclipse atelier Java

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

Conventions d écriture et outils de mise au point

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Le langage C. Séance n 4

TP1. Outils Java Eléments de correction

ALGORITHMIQUE ET PROGRAMMATION En C

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

Informatique Générale

TP, première séquence d exercices.

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

Algorithmique et programmation : les bases (VBA) Corrigé

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

Programmation Classique en langage C

Initiation à JAVA et à la programmation objet.

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Langage Éric Guérin 5 octobre 2010

Initiation à LabView : Les exemples d applications :

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Codage d information. Codage d information : -Définition-

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Java c est quoi? Java pourquoi?

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

La technologie Java Card TM

Transcription:

Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique Septembre 2014

Plan de la séance Structure d un programme Java Variables, types Mots-clés Opérateurs Structures de sélection Boucles Info0101 Cours 3 2

Historique de Java Créé en 1991 par SUN Conçu originellement pour code embarqué et applets pour navigateurs Web Versions 1996 1998 1999 2000 2002 2004 2006 2011 2014 1.0 1.1 1.2 Devient Java 2 Aujourd hui Java SE 8 (JDK 8) 1.3 1.4 J2 SE 5.0 Java SE 6.0 Java SE 7 Java SE 8 Info0101 Cours 3 3

Java : langage de Programmation Orientée Objet (POO) Objets, classes, encapsulation Héritage Permet la programmation structurée 2 catégories de programmes Interface console Écran + clavier Interface graphique (GUI) Souris, boutons, fenêtres, boîtes de dialogue, etc. Portabilité JVM Machine virtuelle Info0101 Cours 3 4

Étapes de programmation Écrire le texte du programme dans un fichier (source) à l aide d un éditeur de texte NomDuProgramme.java Compiler le fichier source javac NomDuProgramme.java Génère le fichier NomDuProgramme.class Exécuter le programme java NomDuProgramme (pas d extension) Info0101 Cours 3 5

Édition de code : Notepad++ Logiciel libre fonctionnant sous Windows http://notepad-plus-plus.org/ Info0101 Cours 3 6

Compilation du code Compilateur Programme qui transforme un code source (fichier texte) en code exécutable (objet) Il existe des dizaines de compilateurs pour divers langages C, C++, Fortran, Pascal, Basic, Cobol, Particularité de Java Il ne compile pas du code exécutable directement, mais du «bytecode» interprété par la machine virtuelle Java (JVM) Info0101 Cours 3 7

Premier programme Java Info0101 Cours 3 8

Structure d un programme class PremierProg { public static void main (String [ ] args) { System.out.println("Mon premier programme Java (et non le dernier!)"); } } Mots clés (que l on verra en détails plus tard) public, class, static, void, main, String Pour l instant, on les place sans se poser de questions! Les accolades ({ }) : début et fin d un bloc de code PremierProg : Nom du programme public static void main (String [] args) : prog. principal System.out.println : routine Java d affichage à l écran Info0101 Cours 3 9

Affichage à l écran System.out.print("Bonjour!"); Affiche ce qui est entre les guillemets et demeure sur la même ligne, à la position qui suit le dernier caractère affiché System.out.println("Bonjour!"); Affiche ce qui est entre les guillemets et se place en début de ligne suivante Info0101 Cours 3 10

Entrées au clavier Importation de la classe Scanner import java.util.scanner ; Déclaration d'une variable de type Scanner Scanner clavier = new Scanner(System.in) Lecture d'une entrée d un format donné clavier.nextline() ; /*Chaîne de caractères*/ clavier.nextint() ; /*Entier*/ clavier.nextdouble ; /*Réel*/ Son utilisation sera vue en TP Info0101 Cours 3 11

Règles d écriture d un programme Identificateurs Mots-clés Séparateurs Format libre Commentaires Info0101 Cours 3 12

Identificateur Suite de caractères pour désigner les différentes entités d un programme (variables, fonctions, classes, etc.) nom, Code_Programme, Valeur2, Se compose de lettres, de chiffres et du caractère «_» Doit commencer par une lettre Distingue les majuscule et les minuscules Nom et nom sont 2 identificateurs différents! Info0101 Cours 3 13

Mots-clés Mots réservés par le langage qui ne peuvent être utilisés comme identificateurs int while if break float public static Etc Info0101 Cours 3 14

Séparateur 2 identificateurs/mots-clés successifs doivent être séparés par un espace blanc ou par une fin de ligne int x; String nom; public static Etc Info0101 Cours 3 15

Format libre Un fichier source peut être mis en page de plusieurs façons Le code Peut être écrit int x = 2; int y = 3; x = x + y; int x = 2; int y = 3; x = x + y; Mais attention à la lisibilité! Info0101 Cours 3 16

Commentaire Permet d écrire du texte qui n est pas traité par le compilateur (explications, détails, etc.) Zone de texte en commentaire Texte entre les caractères «/*» et «*/» /* Voici un commentaire */ Commentaire de fin de ligne Texte qui suit les caractères «//» int x; int y; // Voici un commentaire de fin de ligne Info0101 Cours 3 17

Programmer en Java à la maison sous Windows Télécharger le JDK (Java Development Kit) http://www.oracle.com/technetwork/java/javase/downloads/index.html Aller à la section «Java Platform, Standard Edition», sous-section «Java SE 8u20» et cliquez sur «Download» sous «JDK» Cliquez sur le lien «jdk-8u20-...» qui correspond à votre système (probablement Windows x86 ou Windows x64) Suivez les instructions Installer le JDK Exécutez le fichier téléchargé (ex : jdk-8u20-windows-x64.exe) Suivez les instructions Vous trouverez la documentation d'installation à l'adresse donnée ci-haut Info0101 Cours 3 18

Programmer en Java à la maison sous Linux Si vous êtes déjà un utilisateur de Linux, vous devriez être capable de vous organiser! Info0101 Cours 3 19

Types de données Java Info0101 Cours 3 20

Entiers Un bit est réservé au signe 0 positif 1 négatif Les autres bits servent à représenter La valeur absolue du nombre pour les positifs Le complément à 2 du nombre pour les négatifs Info0101 Cours 3 21

Les différents types d entiers Type Taille (octets) Valeur minimle Valeur maximale byte 1-128 127 (Byte.MIN_VALUE) (Byte.MAX_VALUE) short 2-32768 32767 (Short.MIN_VALUE) (Short.MAX_VALUE) int 4-2147483648 2147483647 (Integer.MIN_VALUE) (Integer.MAX_VALUE) long 8-9,22E+018 9,22E+018 (Long.MIN_VALUE) (Long.MAX_VALUE) int n; //variable de type entier Info0101 Cours 3 22

Flottants Permettent de représenter (de manière approchée) une partie des nombres réels Représentation : s M * 2E s : signe (+1 ou -1) M : Mantisse E : Exposant 2 éléments à considérer Précision Domaine couvert Info0101 Cours 3 23

Les différents types de flottants Type Taille (octets) Valeur minimale Valeur maximale float 4-1.40239846E-45 3.40282347E38 (Float.MIN_VALUE) (Float.MAX_VALUE) double 8 4.9406564584124654E-324 1.797693134862316E308 (Double.MIN_VALUE) (Double.MAX_VALUE) double n; //variable de type flottant Info0101 Cours 3 24

Notation des flottants Dans un programme, les constantes flottantes peuvent s écrire de 2 façons Décimale 6567.4552 Exponentielle 6.5674552e3 Par défaut, les constantes flottantes sont créées par le compilateur en type double float x; x = 12.5; //erreur à la compilation On peut toutefois forcer le type float float x; x = 12.5f; //OK Info0101 Cours 3 25

Caractères Représentés en Unicode plutôt qu en ASCII 2 octets plutôt qu un 65536 combinaisons plutôt que 128 Mot clé char char c1; //variable de type caractère Constantes de type caractère Entre apostrophes a E + Info0101 Cours 3 26

Booléens Représente une valeur logique de type vrai/faux Notées true et false Mot clé boolean boolean ordonne; //variable de type booléenne ordonne = n < p; //affectation Info0101 Cours 3 27

Initialisation de variables Une variable doit être déclarée et initialisée avant d être utilisée int n; //déclaration n = 15; //initialisation ou int n = 15; //déclaration et initialisation dans la même instruction Peut être effectué n importe où dans le programme Info0101 Cours 3 28

Constantes On peut déclarer une variable en obligeant qu elle ne soit pas modifiée ultérieurement Mot clé final final int n = 20; //n est déclaré constant n = 12; //erreur L initialisation n a pas à être faite en même temps que la déclaration, mais doit être faite une seule fois dans le programme Info0101 Cours 3 29

Les opérateurs en Java Info0101 Cours 3 30

Opérateurs arithmétiques Binaires Addition : + Soustraction : - Multiplication : * Division : / Modulo : % Unaires Opposé - Identité + Info0101 Cours 3 31

Conversions implicites Ajustement de type int n, p; float x, y; y = n * x + p; Conversion de n en float pour la multiplication, résultat de type float Conversion de p en float pour l addition, résultat de type float Ne doit pas dénaturer la valeur initiale int long float double Info0101 Cours 3 32

Opérateurs relationnels A priori définis pour des opérateurs de même type, mais aussi soumis aux conversions implicites Opérateur Signification < Inférieur à <= Inférieur ou égal à > Supérieur à >= Supérieur ou égal à == Égal à!= Différent de Info0101 Cours 3 33

Opérateurs logiques Opérateur Signification! Négation & ^ Et Ou exclusif Ou inclusif && Et (avec court-circuit) Ou inclusif (avec court-circuit) Court-circuit : second opérande évalué seulement si nécessaire a < b && c < d Si «a < b» est faux, inutile d'évaluer «c < d» Info0101 Cours 3 34

Opérateur d affectation Opérateur = Le premier opérande doit être une référence à un emplacement dont on peut modifier la valeur (variable, objet, élément de tableau) i = 5; x = i + 8; Soumis aux règles de conversion implicites byte short int long float double char int long float double Info0101 Cours 3 35

Opérateurs d incrémentation et de décrémentation Opérateur ++ incrémente une variable i++ équivalent à «i = i + 1» Opérateur -- décrémente une variable i-- équivalent à «i = i - 1» À gauche : préincrémentation ++i À droite : postincrémentation i++ Effet sur l expression, non sur la variable si i = 5 n = ++i - 5 //i = 6, n = 1 n = i++ - 5 //i = 6, n = 0 Info0101 Cours 3 36

Opérateurs d affectation élargie Une expression comme «i = i + k» Peut être remplacé par «i += k» a = a * b a *= b De manière générale Variable = Variable opérateur expression Peut être remplacé par Variable opérateur= expression Valable pour opérateur arithmétique seulement «a <= b» n est pas une affectation! Info0101 Cours 3 37

Opérateurs de cast (transtypage) Cast : forcer la conversion d une expression dans un type de son choix (type) expression Exemple : si n et p sont de type int (double) (n/p) Convertit l expression entière en double Attention aux parenthèses! Si n = 10 et p = 3 (double) (n / p) l expression vaut 3.0 (double) n / p l expression vaut 3.3333 Info0101 Cours 3 38

Premières structures de sélection en Java Info0101 Cours 3 39

Préambule : blocs et instructions Instruction Simple : terminé par un ; i = 12 + b; Structurée : choix, boucles if else Une instruction structurée peut contenir une ou plusieurs instructions simples/structurées(blocs) Bloc Suite d instructions placées entre accolades ({ }) Peut être vide : {} Peut contenir 1 instruction : {n = 4;} Peut contenir plusieurs instructions : {n = 4; i = 2;} Info0101 Cours 3 40

if else (Si alors Sinon) if (condition) Instruction 1 [ else Instruction 2] Note : les crochets signifient que ce qui est à l intérieur est facultatif. Ils ne font pas partie de la syntaxe Instruction1 et Instruction2 Instructions Simples Structurées Bloc Info0101 Cours 3 41

Exemple if (i < 10) { System.out.println("Plus petit que 10"); } else { i -= i; System.out.println("Toujours plus petit que 10"); } Info0101 Cours 3 42

Cas Parmi en Java : switch switch (expression) { case Constante1 : Instruction1 break; case Constante2 : Instruction2 break; case Constante_n : Instruction_n break; default : InstructionDefaut } Info0101 Cours 3 43

Exemple switch (n) { case 0 : System.out.println("nul"); break; case 1 : System.out.println("un"); break; default : System.out.println("trop grand"); } Info0101 Cours 3 44

Structures itératives en Java for while do...while Info0101 Cours 3 45

La boucle pour for Prototype for (initialisation; condition; incrémentation) Instruction Exemple for (i = 1; i < 5; i++) { System.out.print ("Bonjour"); System.out.println (i + " fois"); } Info0101 Cours 3 46

La boucle TantQue while Prototype while (condition) Instruction Exemple n = 15; while (n < 100) { n += 3; System.out.println ("Toujours plus petit que 100"); } Info0101 Cours 3 47

Faire TantQue do while Prototype do Instruction while (condition); Exemple n = 15; do { n += 3; System.out.println ("Toujours plus petit que 100"); } while (n < 100) ; Info0101 Cours 3 48

La semaine prochaine Fonctions et procédures Info0101 Cours 3 49