Chapitre II Les bases du langage. Syntaxe

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

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


INF 321 : mémento de la syntaxe de Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmer en JAVA. par Tama

Java Licence Professionnelle CISII,

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

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

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

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

Algorithmique et Programmation, IMA

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

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

Notions fondamentales du langage C# Version 1.0

Programmation en langage C

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

as Architecture des Systèmes d Information

SUPPORT DE COURS. Langage C

Claude Delannoy. 3 e édition C++

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Introduction au langage C

1. Langage de programmation Java

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)

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Informatique / Programmation

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

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

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

Introduction au Langage de Programmation C

Programmation en Java IUT GEII (MC-II1) 1

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

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

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

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

Solutions du chapitre 4

ALGORITHMIQUE ET PROGRAMMATION En C

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

Programmation C. J.-F. Lalande. 15 novembre 2012

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours Informatique Master STEP

Corrigé des exercices sur les références

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII,

Programmation Classique en langage C

Conventions d écriture et outils de mise au point

TP 1. Prise en main du langage Python

Le langage C. Introduction, guide de reference

Langage Java. Classe de première SI

Utilisation d objets : String et ArrayList

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

Présentation du langage et premières fonctions

Cours d Algorithmique et de Langage C v 3.0

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

INITIATION AU LANGAGE JAVA

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

Chapitre 10 Arithmétique réelle

Introduction à MATLAB R

Programmation Orientée Objets Le Langage JAVA

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

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

Langage Éric Guérin 5 octobre 2010

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

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

Les structures de données. Rajae El Ouazzani

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~ cours de 3 heures)

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

INITIATION A LA PROGRAMMATION

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

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

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

CIE303 - Programmation Orientée Objet en Java

STAGE IREM 0- Premiers pas en Python

Rappels Entrées -Sorties

Les chaînes de caractères

Logiciel de Base. I. Représentation des nombres

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

Chap III : Les tableaux

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

Recherche dans un tableau

Chapitre 2 Devine mon nombre!

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

Programmation en C/C++

Découverte de Python

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

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de 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

V- Manipulations de nombres en binaire

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

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Transcription:

Chapitre II Les bases du langage Java Syntaxe

Les commentaires /* commentaire sur une ou plusieurs lignes */ Identiques à ceux existant dans le langage C // commentaire sur une seule ligne Identiques à ceux existant en C++ /** commentaire d'explication */ Les commentaires d'explication se placent généralement juste avant une déclaration (d'attribut ou de méthode) Ils sont récupérés par l'utilitaire javadoc et inclus dans la documentation ainsi générée. 56

Instructions, blocs, etc. Les instructions Java se terminent par un ; Les blocs sont délimités par : { pour le début de bloc } pour la fin du bloc Un bloc permet de définir un regroupement d instructions. La définition d une classe ou d une méthode se fait dans un bloc. Les espaces, tabulations, sauts de ligne sont autorisés. Cela permet de présenter un code plus lisible. 57

Les identificateurs On a besoin de nommer les classes, les variables, les constantes, etc. ; on parle d identificateur. Les identificateurs commencent par une lettre, _ ou$ Conventions sur les identificateurs : Si plusieurs mots sont accolés, mettre une majuscule à chacun des mots sauf le premier : «unevariableentiere» La première lettre est majuscule pour les classes et les interfaces : «MaClasse, UneJolieFenetre» La première lettre est minuscule pour les méthodes, les attributs et les variables : «setlongueur, i, unefenetre» Les constantes sont entièrement en majuscules : «LONGUEUR_MAX» 58

Les mots réservés 59

II.1. Les types et les opérateurs

Les types Le langage Java est un langage fortement typé : Chaque variable et chaque expression possède un type bien défini. Les types de données de Java sont divisés en deux grands groupes : Les types primitifs (ou de base) Exemple : Les types numériques, le type booléen, Les types références Types Java Types primitifs boolean Types numériques Types entiers byte short int long char Types à virgule flottantes float double Types de références Type Tableau Type Classe 61

Les types primitifs boolean : false ou true byte : entier 8 bits short : entier 16 bits int : entier 32 bits long : entier 64 bits char : caractère Unicode 16 bits float : nombre décimal à virgule flottante 32 bits double : nombre décimal à virgule flottante 64 bits 62

Déclaration et initialisation Type identificateur [= constante ou expression]; int int x=12; short short x= 32; (short x=33000; // Hors limite) long long x= 200L; // Nombre accolé à un L byte byte x=012; // Nombre commençant avec un 0 double double x=23.2323; float float x= 23.233F; // Nombre accolé à un F char char c= a ;char c= \u0061 ; char c=(char)97; boolean boolean b=true; Et éventuellement, un «modificateur d accès ou de visibilité» : final double pi=3.14159 63

Les types de référence Un objet est créé par l opérateur new qui appelle son constructeur de classe String str1; // variable non initialisée = variable vide String str2=null; // variable initialisée par une référence null String pays = new String( France ); // pays est le nom de la variable faisant référence à l objet String Analogue à String pays= France ; Un objet ne peut pas exister si une variable de référence ne pointe pas vers lui : les variables str1 et str2 n existent pas String n'est pas un type primitif, mais une classe 64

Les opérateurs Les opérateurs dans Java sont regroupés par : type d opérations : d affectation numérique, de comparaison, logique, sur les chaînes de caractères, de manipulations binaires. le nombre d opérandes : unaire, binaire, ternaire. 65

Les opérateurs unaires Opérateurs unaires Action Exemple - négation i=-j ++ incrémentation de 1 i=j++ ou i=++j -- décrémentation de 1 i=j-- ou i=--j ++ et -- peuvent préfixer ou postfixer la variable. i = j++ : post-incrémentation La valeur en cours de j est affectée à i et ensuite la valeur de j est incrémentée de 1. i = ++ j : pré-incrémentation La valeur en cours de j est incrémentée de 1 et ensuite la valeur de j est affectée à i. 66

Les opérateurs binaires Opérateurs binaires Action Exemple Syntaxe équivalent + addition i = j+k; += i += 2; i= i + 2 - soustraction i = j - k; -= i -= j; i= i - j * multiplication x=2*y; *= x *=x; x= x * x / division i =j/k; /= (tronque si les arguments sont entiers) x /= 10; x= x /10 % modulo i = j %k; %= i %=2 i= i %2 >> décalage vers la droite i>>k; i*2 k << décalage vers la gauche i<<k; i/2 k (si i>0) 67

Les opérateurs relationnels Dans le langage Java, le résultat d'une comparaison est true ou false Opérateurs relationnels Action Exemple < plus petit que x<i; > plus grand que i>100; <= plus petit ou égal que j<=k; >= plus grand ou égal que c>= a ; == égal à i==20;!= différent de c!= z ; 68

Opérateurs logiques Opérateurs logiques Action Exemple Syntaxe équivalent! négation!p; ^ OU exclusif p ^ false && ET (i<10) && (a>3) OU (a>0) (b>0) 69

Opérateurs ternaires Un unique opérateur ternaire. Cette expression est une sorte de si-alors-sinon sous forme d'expression : a = (condition e)? x : y si la condition e est vraie alors a vaut x sinon elle vaut y. Exemple : a = (v==2)? 1 : 0; Cette expression affecte à la variable a la valeur 1 si v vaut 2, sinon affecte à la variable a la valeur 0. 70

La conversion de types Il y a 2 catégories de conversions possibles : Conversions explicites : celles faites sur une demande explicite par un programmeur. Conversions implicites : celles faites automatiquement par un compilateur: lors d'une affectation, lors d'une opération arithmétique, lors d'un passage de paramètres (lors de l'invocation d'une méthode), 71

La conversion de types Conversion explicite : Objectif : changer le type d'une donnée si besoin. Comment? : Préfixer l opérande par le type choisi. Encadrer le type choisi par des parenthèses. Exemple : double d = 2.5 ; long l = (long) d ; Conversion implicite lors d'une affectation : Objectif : changer automatiquement le type d'une donnée si besoin. 72

La conversion de types La conversion numérique est faite automatiquement (implicitement) vers le type le plus riche dans une opération arithmétique int i; i = A ; System.out.print( i ) ; // vaut 65 La conversion peut être faite explicitement vers un type plus pauvre double x = 2.1; int a; a= (int)x ; // vaut 2 int b = a * 1500; Hiérarchie des types : byte < short < int < long < float < double 73

La conversion de types Y = OUI (YES), N = NON (NO), C = Cast (besoin de conversion explicite) 74

II.2. Les structures de contrôle Conditions, boucles,

Les structures de contôle Les structures de contrôles permettent d arrêter l exécution linéaire des instructions (de bas en haut et de gauche à droite) Elles permettent d exécuter conditionnellement une instruction, ou de réaliser une boucle Type d instruction Décision Boucle Traitement d exceptions Branchement Mots clés utilisés if() else switch() case for( ; ; ) while () do while() try catch finally throw label : -- break continue -- return 76

if-else Instruction conditionnelle : if (condition) {bloc 1} if (condition) {bloc 1} else {bloc 2} if (condition 1) {bloc 1} else if (condition 2){bloc 2} else {bloc N} if (x > y) { int tmp = x; x = y; y = tmp; } else x = 0;... if ((x > s1)&& (x < s2)) y=3*x+1; else y=0; if (i == j ){ System.out.println (" i est égal à j " ); } else if ( i>j){ System.out.println (" i est supérieur à j" ); } else { System.out.println (" i est inférieur à j " ); } 77

switch-case switch nomvariable { case valeur1 : {... break; }... case valeurn : {... break; } default : {... break; } } ; int i = 1; switch (i) { case 0 : System.out.println ("Zero"); break; case 1 : System.out.println ("Un"); break; case 2 : System.out.println ("Deux"); break; default : System.out.println ("Autre"); break; } Attention en JAVA : nomvariable : QUE de type intégral : boolean, char, int, long et short break; OBLIGATOIRE! 78

for Boucle for for (expr1; expr2; expr3) {bloc} float moyenne= 0; // Initialisation d'un tableau d'entier fonctionnement : int[] tab = { 2, 5, -1, 4, 3 }; expr1 if (expr2==true){ } bloc expr3 for (int i =0; i < tab.length; i++) // conversion! moyenne+=tab[i]; moyenne /= tab.length; System.out.println("La moyenne est "+moyenne); // Si moyenne etait un int, la division // serait entière 79

while et do-while Boucles while while (condition) {bloc} do {bloc} while (condition) // Chercher un élément nul dans un tableau int i = 0; while ((tab[i]!= 0)&& (i<tab.length)) i++; System.out.println("Le premier élément nul est en "+ i);... int somme=1; int i=bornesuperieure; do{ somme+=i i-- } while (i>0) 80

break Interruption de boucle Interruption non étiquetée : sortie de la boucle la plus haute. while( i <= 100 ) { i += 10; if( i >= 2 * n + 1 ) { break; } } Interruption étiquetée : sortie d'une boucle imbriquée. boucle_1: while( i <= 100 ) { i += 10; boucle_2: while( i < j ) { i++; if( i >= 2 * n + 1 ) { break boucle_2; } } } 81

continue Continuation de boucle = court-circuit de la fin d une itération int x = 0; while (x < 10) { x++; if (x == 5) { continue; } System.out.print(x + " "); } Produira > 1 2 3 4 6 7 8 9 10 82

Les tableaux Array Stockage d éléments tous du même type Structure à part entière Un tableau est un objet référencé Assimilable à une classe Création en trois étapes 1. déclaration 2. allocation de mémoire 3. initialisation des éléments 83

Les tableaux Indiqué par [] Deux possibilités type[] nom; type nom[]; int[] tableau1; int tableau2[]; int[][] matrice; // tableau bidimensionnel int[] x, y[]; //équivalent à int x[],y[][]; int tab[10]; // ne compile pas 84

Allocation et initialisation Alloué dynamiquement à l'aide du mot clé new int[] tableau1; // déclaration tableau1 = new int[10]; // allocation int tableau2[]; // déclaration tableau2 = new int[35]; // allocation int[][] matrice; // déclaration matrice = new int[2][4]; // allocation int[] x, y[]; // déclaration x = new int[5]; // allocation y = new int[3][2]; // allocation 85

Allocation et initialisation On peut combiner déclaration et allocation int[] tableau1 = new int[10]; int tableau2[] = new int[35]; int[][] matrice = new int[2][4]; int[] x = new int[5]; int[] y[] = new int[3][2]; Chaque élément doit être initialisé séparément int[] tablo = new int[10]; for (int i = 0; i < 10; i++) { tablo[i] = i; } 86

Allocation et initialisation Valeurs initiales peuvent être énumérées int[] joursparmois = {31, 28, 31,30, 31, 30, 31, 31, 30, 31, 30, 31}; String[] jours = {"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"}; Déclaration, allocation, initialisation 87

Accès aux tableaux Indexage à partir de 0 Accès aux éléments par [] tablo[i] i = 0..tablo.length - 1 Nombre d éléments donné par la variable nom.length for (int i = 0; i < tablo.length; i++) { System.out.print(tablo[i] + " "); tablo[i] = -tablo[i]; } 88