You are on page 1of 73

INTRODUCTION A L'INFORMATIQUE

Anne 2008-2009

INTRODUCTION A l'INFORMATIQUE

Virginie Sans virginie.sans@u-cergy.fr V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

Objectifs :
Le but de ce cours est de vous familiariser avec la programmation en gnral et dacqurir les bases du langage Java.

Contenu :

Linux Les commandes Shell Mon premier programme java Compilation et xcution Les variables Tests conditionnels Logique et prdicats Ecriture

Evaluation du semestre: 2/3 CC en TP + Examen


V.Sans - virginie.sans@u-cergy.fr 2

INTRODUCTION A L'INFORMATIQUE

Linux, qu'est ce que c'est ?


Pour pouvoir faire fonctionner un ensemble de programmes sur un ordinateur, il vous faut un systme d'exploitation. Un systme d'exploitation = "super-programme" qui permet de coordonner le matriel avec les logiciels installs sur votre ordinateur. Exemple : Windows, Ubuntu, Red Hat, Linux Arborescence Quelque soit le systme d'exploitation, les fichiers dans l'ordinateur sont organiss sous la forme d'une arborescence avec diffrents types de fichiers : - Les fichiers ordinaires contiennent des informations ( du son .mp3, . du texte (.txt),... - Les fichiers spciaux permettent le classement (les rpertoires) des fichiers ordinaires , la possibilit d'accder aux fichiers ordinaires de divers priphriques (imprimante, scanner, ....)
V.Sans - virginie.sans@u-cergy.fr 3

INTRODUCTION A L'INFORMATIQUE

Dans l'arborescence du disque dur, on a plusieurs fils : bin, boot, dev, etc, home, lib, mnt, opt, ... Le fils home contient les fichiers personnels des utilisateurs. Le fils bin contient une grande partie des fonctions que nous allons utiliser dans la suite, ce sont des programmes binaires. Le fils dev contient l'ensemble des priphriques prsents dans l'ordinateur
Chaque fils a un rle trs important pour le bon fonctionnement de Linux que vous verrez peut tre en option Administration Systmes l'anne prochaine.
V.Sans - virginie.sans@u-cergy.fr 4

INTRODUCTION A L'INFORMATIQUE

Manipulation de fichiers . Contrairement ce que vous avez l'habitude avec votre ordinateur sous Windows, lorsqu'on programme avec un ordinateur, on a trs souvent recours diffrents types de manipulation pour les fichiers. La manipulation peut se faire de deux faons diffrentes : Grce un terminal graphique Grce un terminal texte

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

Le terminal graphique C'est le terminal que tout utilisateur actuel connait : on utilise la plupart du temps la souris, un peu le clavier

Pas la peine d'esprer, ce n'est pas celui-la que nous allons utiliser le plus dans l'anne !

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

Le terminal texte (Shell nous voila !) Dans ce terminal, on utilise uniquement le clavier et il n'apparait donc l'cran que du texte. C'est le terminal qu'on utilisait il y a bien longtemps dans une galaxie trs lointaine...

Il y en a aussi qui ont d connaitre le DOS cr en 1981 par Microsoft, mais il y avait un terminal graphique en complment...

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

Le shell c'est un programme qui se trouve dans le rpertoire /bin. On distingue plusieurs shells - le /bin/sh shell Bourne - le /bin/bash shell Bourne Again SHell - le /bin/csh C shell - le /bin/ksh Korn shell - le /bin/tcsh C shell amlior - le /bin/zsh/ Z shell Le shell permet d'excuter des commandes, d'explorer l'arborescence du systme, de crer, d'diter et de supprimer des fichiers, etc.

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

Vos premires lignes de commande Shell Voir ce qu'il y a dans un rpertoire : ls $home> ls Dj, vous devez remarquer que $home> est dj crit dans le terminal ! Dans la console, on vous liste alors le contenu du rpertoire home $home> ls papa jarvis maman

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

change de rpertoire (change directory) : cd cd [nomdurepertoire] permet de changer physiquement de rpertoire ! (cd = change directory) Exemple : $home> cd jarvis $home/jarvis>

La nouvelle entte propose par le shell vous permet de savoir ou vous tes dsormais !

V.Sans - virginie.sans@u-cergy.fr

10

INTRODUCTION A L'INFORMATIQUE

crer un rpertoire (make directory) : mkdir mkdir [nomdurepertoire] permet de crer un rpertoire Exemple : $home/papa> mkdir livres

On a cr un rpertoire livres dans le rpertoire o l'on se trouve (soit le rpertoire papa) Nous verrons comment prciser la cration d'un rpertoire un autre endroit que celui o l'on se trouve dj !
V.Sans - virginie.sans@u-cergy.fr

livres
11

INTRODUCTION A L'INFORMATIQUE

supprimer un rpertoire (remove directory) : rmdir rmdir [nomdurepertoire] permet de supprimer un rpertoire Exemple : Que va faire ? $home/jarvis> rmdir xvid

supprimer un fichier (remove) : rm rm [nomdufichier] permet de supprimer un fichier copier-coller un fichier (copy) : cp cp [source] [destination] permet de crer une copie du fichier [source] vers l'emplacement [destination] copier-coller un rpertoire (copy) : cp -r cp r [source] [destination] permet de crer une copie du rpertoire [source] vers l'emplacement [destination]

V.Sans - virginie.sans@u-cergy.fr

12

INTRODUCTION A L'INFORMATIQUE

couper-coller/dplacer un fichier ou un fichier (move) : mv mv [source] [destination] permet de dplacer un fichier/rpertoire [source] vers l'emplacement [destination] pour lire (sans modifier) rapidement le contenu d'un fichier : more ou cat more [nomdufichier] cat [nomdufichier] pour crer et crire rapidement le contenu d'un fichier : cat (h oui !!!!) cat > [nomdufichier] $home/jarvis> cat toto.txt j'cris du texte, avec ce que je veux je saute a la ligne et voil $home/jarvis> Ctrl+c ou Ctrl+ q

V.Sans - virginie.sans@u-cergy.fr

13

INTRODUCTION A L'INFORMATIQUE

retrouver un fichier : locate ou find locate [texte] permet de trouver un fichier/rpertoire dont le nom contient [texte] find [/] -name [nomdufichier] permet de trouver un fichier/rpertoire partir de la racine [/] locate affichera toutes les occurrences trouves. Que ce soit une partie du nom d'un rpertoire ou d'un fichier. Il se peut donc qu'il y ait beaucoup d'occurrences ! Il est possible d'utiliser les expressions rgulires avec find, c'est dire des expressions permettant de filtrer les fichiers Exemple n'avoir que des fichiers terminant par .java Exemple : find / -name "*.java" Ceci sera vu plus loin plus loin.dans une autre galaxie !

V.Sans - virginie.sans@u-cergy.fr

14

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? Reliez les diffrentes commandes leur utilisation

A. B. C. D. E. F. G. H. I. J.

mv cp mkdir ls cp r locate cat cd rmdir more

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

lire rapidement le contenu d'un fichier faire une copie d'un fichier changer de rpertoire trouver un fichier lister le contenu d'un rpertoire supprimer un rpertoire faire une copie d'un rpertoire crer un fichier crer un rpertoire dplacer un fichier

V.Sans - virginie.sans@u-cergy.fr

15

INTRODUCTION A L'INFORMATIQUE

Chemin relatif ou absolu ? Il y a plusieurs faons d'excuter une commande. en utilisant tout simplement son nom en utilisant le chemin absolu en utilisant le chemin relatif utilisation des alias (pratique pour les commandes employes souvent et qui sont longues) Une commande peut tre excute en arrire plan en utilisant l'esperluette (&) aprs le nom de la commande. L'excution d'une commande en arrire plan permet de redonner la main au shell aprs l'excution. Ce qui signifie que si vous tapez une commande pour lancer un programme sans & (Exemple firefox) tant que le programme n'est pas ferm, vous ne pouvez pas utiliser votre shell !!!
V.Sans - virginie.sans@u-cergy.fr 16

INTRODUCTION A L'INFORMATIQUE

La racine Dans les systmes de la famille Unix, la racine reprsente le sommet de l'arborescence des rpertoires. Elle est reprsente par le caractre / (slash) et signifie "root" (racine en franais) Tous les rpertoires de votre systme sont lis la racine de faon directe ou indirecte. Les rpertoires "." et ".." . indique le rpertoire courant .. indique le rpertoire parent

Grce . et .., on va pouvoir simplifier les commandes shell vu prcdemment !


V.Sans - virginie.sans@u-cergy.fr 17

INTRODUCTION A L'INFORMATIQUE

Le chemin absolu Le chemin absolu reprsente l'arborescence complte de fichiers, en partant de la racine Le chemin relatif pour accder un fichier c'est l'arborescence rapport votre localisation dans le shell. . nous permet de descendre dans l'arborescence du rpertoire courant .. nous permet dans un 1er temps de monter en arborescence dans le but d'atteindre d'autres rpertoires Il est possible de spcifier plusieurs chemins pour un mme fichier ou rpertoire. Exemple : /home/jarvis/ogg/toto.mp3 Si on se trouve dans jarvis, on indiquera /ogg/toto/mp3 Si on se trouve dans /home/papa, on indiquera ../jarvis/ogg/toto.mp3
V.Sans - virginie.sans@u-cergy.fr 18

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? Trouvez des chemins ..

Donnez plusieurs chemins permettant d'accder au fichier recette.txt qui se trouve dans le rpertoire ogg lorsqu'on se trouve dans : 1.le rpertoire etc 2.le rpertoire ogg 3.le rpertoire xvid 4.le rpertoire jarvis 5.le rpertoire maman

V.Sans - virginie.sans@u-cergy.fr

19

INTRODUCTION A L'INFORMATIQUE

Les chemins et les commandes Les chemins que nous venons de voir peuvent permettre de simplifier les commandes. Exemple : Si on veut supprimer le rpertoire xvid, on peut utiliser : Si on se trouve dans boot rmdir ../home/jarvis/xvid rmdir $HOME/home/jarvis/xvid Si on se trouve dans maman rmdir ../jarvis/xvid rmdir $HOME/home/jarvis/xvid
V.Sans - virginie.sans@u-cergy.fr

$HOME est un nom de variable qui dsigne le haut de l'arbre


20

INTRODUCTION A L'INFORMATIQUE

man .le manuel de commandes Accder la documentation en ligne de commande : man commande Exemple : excution de la commande man ls CTRL+Q pour quitter

V.Sans - virginie.sans@u-cergy.fr

21

INTRODUCTION A L'INFORMATIQUE

La structure d'une page de man

Ce qui nous intresse le plus !

V.Sans - virginie.sans@u-cergy.fr

22

INTRODUCTION A L'INFORMATIQUE

ls all permet de lister le rpertoire avec des informations supplmentaires sur les fichiers (taille, poids, )
V.Sans - virginie.sans@u-cergy.fr 23

INTRODUCTION A L'INFORMATIQUE

Anne 2008-2009

Langage de programmation, ksako ???

Virginie Sans virginie.sans@u-cergy.fr V.Sans - virginie.sans@u-cergy.fr

24

INTRODUCTION A L'INFORMATIQUE

Programme et instructions
Programme = suite dinstructions destination de la machine Quel langage ? Pour lordinateur ou pour lutilisateur ? La machine comprend le langage machine constitu de squences de bits (0 ou 1). Les humains ont beaucoup plus de mal !!! En temps normal : Utilisation dun langage de programmation haut niveau plus comprhensible par lhomme, puis Transformation en langage machine par une tape dite de compilation. Exemple : le langage C Code source. programme.c Compilateur
V.Sans - virginie.sans@u-cergy.fr

Code objet programme.o

Code xcutable programme.exe Editeur de liens


25

INTRODUCTION A L'INFORMATIQUE

Historique Java est un langage rcent et est donc en pleine volution et l'on a vu passer les versions successives 1.0, 1.2, et aujourd'hui 1.5. La dure de vie d'une version du langage Java est peu prs de 3 ans. (La version 6 est actuellement en cours chez Sun). Java est n afin de s'affranchir des diffrentes plates-formes matrielles. Le C et le C++ sont trs fortement dpendantes du type de processeur, de l'infrastructure matrielle et du systme d'exploitation. Pour qu'un programme fonctionne sur plusieurs systmes diffrents, il faut le compiler plusieurs fois, et parfois, faire des modifications partielles de code en fonction de l'ordinateur et du systme d'exploitation sur lequel on veut utiliser le programme.

V.Sans - virginie.sans@u-cergy.fr

26

INTRODUCTION A L'INFORMATIQUE

L'ide du Java est de pouvoir crire le mme programme, quelque soit le systme support. Pour cela, il se contente alors de proposer des API universelles pour rgler les problmes "classiques" d'un langage de programmation (i.e proposer des bouts de codes facilement rcuprables permettant par exemple de convertir une chaine de caractere en majuscule, de dessiner une fenetre a l'cran) fournir un compilateur en "pseudo-code" universelCe compilateur prend le code java et le convertit en du pseudo code (les fichiers .class). Ces fichiers class sont alors lisibles par une JVM ou "machine virtuelle" qui permet d'excuter ce "pseudo-code" en fonction de l'ordinateur sur lequel il se trouve. Ainsi il existe une JVM pour Linux, une pour Windows etc.

V.Sans - virginie.sans@u-cergy.fr

27

INTRODUCTION A L'INFORMATIQUE

La connaissance de Java demande l'tude de deux aspects du langage : Les formes syntaxiques et les concepts de base du langage .grosso modo comment utiliser le langage de programmation et comment programmer ! Connatre les fonctions et librairires de base de Java (la classe String de la librairie Util par exemple regroupe toutes les mthodes (fonctions) permettant de manipuler, convertir une chaine de caractres).
V.Sans - virginie.sans@u-cergy.fr 28

INTRODUCTION A L'INFORMATIQUE

De quoi est compos Java ?

V.Sans - virginie.sans@u-cergy.fr

29

INTRODUCTION A L'INFORMATIQUE

Avec java, qu'est ce qui change ? 1. 2. 3. Utilisation dun langage de programmation plus comprhensible par lhomme, puis Transformation en pseudo-langage ou byte-codes par une tape dite de compilation, puis interprtation par une machine virtuelle Exemple : le langage Java

Code source. programme.cjava

programme.class Compilateur Interprtation par la JVM

Visualisation du programme

Java est donc un langage compil et interprt !!!


V.Sans - virginie.sans@u-cergy.fr 30

INTRODUCTION A L'INFORMATIQUE

Mise en oeuvre Java est avant tout un langage Objet, cela signifie que tout concept utilise dans Java fait rfrence un Objet (rel ou reprsent : une chaine de caractre est un objet, au mme titre qu'une voiture) et donc le dveloppeur doit trouver une identit d'appartenance (une enveloppe objet) chaque concept, ide ou valeur qu'il veut reprsenter. Nous reviendrons la dessus au second semestre ! Java fournit un kit de dveloppement (Software Development Kit) qui comprend l'essentiel des outils ncessaires la production de programmes Java. Ce kit contient essentiellement : un compilateur : javac (Java Compiler) une machine virtuelle pour lancer les programmes : java un utilitaire de compilation de documentation : javadoc des utilitaires divers de compression, de gestion du modle de scurit, de dboggage, etc. les librairies essentielles (paquets standards) de Java.
V.Sans - virginie.sans@u-cergy.fr 31

INTRODUCTION A L'INFORMATIQUE

Comment crire et faire fonctionner un programme en Java ? On crit le code source avec un diteur de texte ou un IDE (Eclipse) On compile avec une commande shell : javac programme.java (Le fichier gnr est : programme.class) Pour lancer le programme : java programme

JRE et JDK, A quoi ca sert ? Sun (la socit cratrice de Java) propose deux distributions de Java : Le JRE (Java Runtime Environement) contient une machine virtuelle Java et quelques utilitaires d'exploitation. Cette distribution lgre permet d'excuter un programme Java compil sous un certain systme d'exploitation. Il ne permet pas de dvelopper. Le JDK (Java Development Kit) qui contient une version complte de Java (machine virtuelle + compilateur + utilitaires de dveloppement).
V.Sans - virginie.sans@u-cergy.fr 32

INTRODUCTION A L'INFORMATIQUE

A quoi ressemble le code d'un programme Java ? Le code d'un programme Java est un fichier qui ressemble le plus souvent cela : public class MaClasse{ public static void main( String[] args ) { // ...code "principal" de dmarrage... System.out.println("Bonjour tout le monde !"); } } Ce fichier a pour nom MaClasse.java car on a dclar public class MaClasse La ligne public static void main correspond la fonction/mthode qui est lance l'xcution du programme (On peut en avoir d'autres !)Si elle n'existe pas le fichier ne tourne pas L'instruction System.out.println permet d'afficher le texte Bonjour tout le monde l'cran. Une instruction finit toujours par point virgule ; // dbute une ligne de commentaire , sur plusieurs lignes, on aurait /*mon texte*/ V.Sans - virginie.sans@u-cergy.fr

33

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 1) Un langage de programmation haut niveau, c'est... A. un langage complexe trs proche du langage binaire B. un langage assez simple qui se rapproche de votre langue maternelle C. un langage utilisable uniquement haute altitude 2) Quel type de fichier permet de crer la compilation ? A. Des excutables .exe B. Des fichiers .class C. Des fichiers .java 3) Le programme charg de traduire votre code d'un langage de haut niveau vers le langage bytecode est appel : A. Le binarisateur B. Le brumisateur C. Le compilateur
V.Sans - virginie.sans@u-cergy.fr 34

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 4) Une ligne de commentaire est une ligne qui commence par : A. /* B. <-C. // 5) Quel est le nom de la fonction/mthode principale lance l'xcution ? A. System.out.println B. main C. class

V.Sans - virginie.sans@u-cergy.fr

35

INTRODUCTION A L'INFORMATIQUE

Les types de donnes Java est un langage orient objet, c'est--dire que les lments manipuls sont des classes, ou plus exactement des objets, c'est--dire des instances de classes Toutefois ces objets contiennent des donnes possdant un type (et une reprsentation). Ces donnes sont un ensemble d'lments stocks en mmoire et baptiss pour l'occasion primitives. Les donnes manipules avec Java, sont types, c'est--dire que pour chaque donne que l'on utilise (dans les variables par exemple) il faut prciser le type de donne, ce qui permet de connatre l'occupation mmoire (le nombre d'octets) de la donne ainsi que sa reprsentation, cela peut tre entre autres : des nombres entiers: (int) rels, c'est--dire virgules (float) des boolens (boolean)
V.Sans - virginie.sans@u-cergy.fr 36

INTRODUCTION A L'INFORMATIQUE

Dans les donnes que vous aurez dclarer et utiliser, il faut distinguer deux types : les objets les types simples (int, float, double, boolean, char) Nous verrons les objets un peu plus tard dans ce cours Nombre entier (int) Un nombre entier est un nombre sans virgule qui peut tre exprim dans diffrentes bases : Base dcimale: L'entier est reprsent par une suite de chiffre unitaires (de 0 9) ne devant pas commencer par le chiffre 0 Base hexadcimale: L'entier est reprsent par une suite d'units (de 0 9 ou de A F (ou a f)) devant commencer par 0x ou 0X Base octale: L'entier est reprsent par une suite d'units (incluant uniquement des chiffres de 0 7) devant commencer par 0 Les entiers sont signs par dfaut, cela signifie qu'ils comportent un signe.
V.Sans - virginie.sans@u-cergy.fr 37

INTRODUCTION A L'INFORMATIQUE

Nombre virgule (float) Un nombre virgule flottante est un nombre virgule, il peut toutefois tre reprsent de diffrentes faons : un entier dcimal: 895 un nombre comportant un point (et non une virgule): 845.32 une fraction: 27/11 un nombre exponentiel, c'est--dire un nombre (ventuellement virgule) suivi de la lettre e (ou E), puis d'un entier correspondant la puissance de 10 (sign ou non, c'est--dire prcd d'un + ou d'un -) 2.75e-2 35.8E+10 .25e-2 En ralit, les nombres rels sont des nombres virgule flottante, c'est--dire un nombre dans lequel la position de la virgule n'est pas fixe, et est repre par une partie de ses bits (appele l'exposant), le reste des bits permettent de coder le nombre sans virgule (la mantisse).
V.Sans - virginie.sans@u-cergy.fr 38

INTRODUCTION A L'INFORMATIQUE

Caractre (char) Le type char (provenant de l'anglais character) permet de stocker la valeur Unicode, code sur 16 bits, d'un caractre, c'est--dire un nombre entier cod sur 16 bits, soit 65000 caractres ! Par consquent il est possible de stocker un caractre accentu dans une variable de type char. Si jamais on dsire par exemple stocker la lettre B, on pourra dfinir cette donne soit par son code Unicode (\u0066), soit en notant 'B' ou les apostrophes simples signifient code ascii de... Et les chaines de de caractre (String) ???? Ce sont des objets, nous y reviendrons plus tard, mais sachez que : Les chanes de caractres ne correspondent pas un type de donnes mais une classe, ce qui signifie qu'une chane de caractre est un objet possdant des attributs et des mthodes. Une chane peut donc tre dclare de la faon suivante : String s = "Chaine de caractres";
V.Sans - virginie.sans@u-cergy.fr 39

INTRODUCTION A L'INFORMATIQUE

Conversion de type de donnes (casting) On appelle conversion de type de donnes, parfois transtypage (traduction de l'anglais casting), le fait de modifier le type d'une donne en une autre. Il peut arriver par exemple que l'on veuille travailler sur un type de variable, puis l'utiliser sous un autre type. Imaginons que l'on travaille par exemple sur une variable en virgule flottante (type float), il se peut que l'on veuille "supprimer les chiffres aprs la virgule", c'est--dire convertir un float en int. Cette opration peut tre ralise de deux manires : -conversion implicite -conversion explicite Attention : La conversion entre types ne fonctionne pas toujours avec une conversion explicite en particulier pour les objets !
V.Sans - virginie.sans@u-cergy.fr 40

INTRODUCTION A L'INFORMATIQUE

conversion implicite: une conversion implicite consiste en une modification du type de donne effectue automatiquement par le compilateur. Lorsque l'on va stocker un type de donne dans une variable dclare avec un autre type, le compilateur ne retournera pas d'erreur mais effectuera une conversion implicite de la donne. int x; x = 8.324; x contiendra aprs affectation la valeur 8 conversion explicite: une conversion explicite (appele aussi opration de cast) consiste en une modification du type de donne force. Cela signifie que l'on utilise un oprateur dit de cast pour spcifier la conversion. L'oprateur de cast est tout simplement le type de donne, dans lequel on dsire convertir une variable, entre des parenthses prcdant la variable. int x; x = (int)8.324;x contiendra aprs affectation la valeur 8 De plus, le langage Java rajoute une notation fonctionnelle pour faire une conversion explicite, la syntaxe de cette notation est : int x; x = int(8.324);
V.Sans - virginie.sans@u-cergy.fr 41

INTRODUCTION A L'INFORMATIQUE

Les types de donnes simples connatre


Primitive Signification

Taille (en octets) 2 1 2 4 8 4 8 1

Plage de valeurs accepte valeur du jeu de caractres Unicode (65000 caractres possibles) -128 127 -32768 32767 -2 147 483 648 2 147 483 647 -9223372036854775808 9223372036854775807 -1.4*10-45 3.4*1038 4.9*10-324 1.7*10308 0 ou 1 (en ralit, toute autre valeur

char byte short int long float double boolean

Caractre Entier trs court Entier court Entier Entier long flottant (rel) flottant double boolen

V.Sans - virginie.sans@u-cergy.fr

42

INTRODUCTION A L'INFORMATIQUE

Les variables Une variable est un objet repr par son nom, pouvant contenir des donnes, qui pourront tre modifies lors de l'excution du programme. Les variables en langage Java sont types, c'est--dire que les donnes contenues dans celles-ci possdent un type, ainsi elles sont donc stockes une adresse mmoire et occupent un nombre d'octets dpendant du type de donne stocke. Avec Java, les noms de variables peuvent tre aussi long que l'on dsire, toutefois le compilateur ne tiendra compte "que" des 247 premiers caractres. De plus, elles doivent rpondre certains critres : un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un "_" (pas par un chiffre) un nom de variables peut comporter des lettres, des chiffres et le caractre _ (les espaces ne sont pas autoriss!) Les noms de variables ne peuvent pas tre les noms suivants (qui sont des noms rservs) :
V.Sans - virginie.sans@u-cergy.fr 43

INTRODUCTION A L'INFORMATIQUE

abstract boolean break byte byvalue case cast catch char class const continue default do double else extends , false final finally float for future generic goto if implements import inner instanceof int interface long On ne vous demande pas de les apprendre par cur, native new null mais de savoir qu'ils existent operator outer ! package private protected public return rest return short static sctrictfp super switch synchronized this throw throws transient true try var void volatile while widefp
V.Sans - virginie.sans@u-cergy.fr 44

INTRODUCTION A L'INFORMATIQUE

La dclaration de variables Pour pouvoir utiliser une variable, il faut la dfinir, c'est--dire lui donner un nom, mais surtout un type de donne stocker afin qu'un espace mmoire conforme au type de donne qu'elle contient lui soit rserv. Une variable se dclare de la faon suivante : type Nom_de_la_variable;o u bien s'il y a plusieurs variables du mme type : type Nom_de_la_variable1, Nom_de_la_variable2, ...; Java impose que les variables soient imprativement dclares Java permet de dfinir une variable n'importe quel endroit du code, afin de le rendre plus lisible Exemple : int a; double b,c;
V.Sans - virginie.sans@u-cergy.fr 45

INTRODUCTION A L'INFORMATIQUE

Affectation d'une donne une variable Pour stocker une donne dans une variable que l'on a initialise, il faut faire une affectation, c'est--dire prciser la donne qui va tre stocke l'emplacement mmoire qui a t rserv lors de l'initialisation. Pour cela on utilise l'oprateur d'affectation "=" : Nom_de_la_variable = donne; Pour stocker le caractre B dans la variable que l'on a appele Caractere, il faudra crire : Caractere = 'B'; Ce qui signifie stocker la valeur ASCII de "B" dans la variable nomme "Caractere". Il est bien vident qu'il faut avoir pralablement dclar la variable en lui affectant le type char : char Caractere;
V.Sans - virginie.sans@u-cergy.fr 46

INTRODUCTION A L'INFORMATIQUE

Initialisation d'une variable La dclaration d'une variable ne fait que "rserver" un emplacement mmoire o stocker la variable. Tant que l'on ne lui a pas affect une donne celle-ci contient ce qui se trouvait prcdemment cet emplacement, que l'on appelle garbage (en franais: dtritus). On peut donc affecter une valeur initiale la variable lors de sa dclaration, on parle alors d'initialisation : type Nom_de_la_variable = donnee; Par exemple : float toto = 125.36f; Porte (visibilit) des variables Selon l'endroit o on dclare une variable, celle-ci pourra tre accessible (visible) de partout dans le code ou bien que dans une portion confine de celui-ci ( l'intrieur d'une fonction par exemple), on parle de porte (ou visibilit) d'une variable. ..nous reviendrons sur ce point un peu plus tard
V.Sans - virginie.sans@u-cergy.fr 47

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 1) Laquelle de ces variables n'a pas un nom valide et pourquoi ? A. Nom-de-variable B. this C. Nom_De_Variable D. 123Nom_De_Variable E. nom_de_variable F. toto@mailcity.com G. nom_de_variable_123 H. _707 2) Lequel de ces types de donnes permet de stocker le nombre 76.8 ? char long double int
V.Sans - virginie.sans@u-cergy.fr 48

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 3) Laquelle de ces dclarations/initialisation est valable ? A. int a=3 B. char b=3; C. double c,d; D. int a=3,b=7; E. char z='z'; F. int a=b;

V.Sans - virginie.sans@u-cergy.fr

49

INTRODUCTION A L'INFORMATIQUE

Qu'est-ce qu'un oprateur? Les oprateurs sont des symboles qui permettent de manipuler des variables, c'est--dire effectuer des oprations, les valuer, ... On distingue plusieurs types d'oprateurs : les oprateurs de calcul les oprateurs d'assignation les oprateurs d'incrmentation les oprateurs de comparaison les oprateurs logiques (les oprateurs bit--bit) (les oprateurs de rotation de bit)

V.Sans - virginie.sans@u-cergy.fr

50

INTRODUCTION A L'INFORMATIQUE

Les oprateurs de calcul Les oprateurs de calcul permettent de modifier mathmatiquement la valeur d'une variable
Rsultat (avec x valant 7) 10 4 21 2.3333333 Met la valeur 3 dans la variable x

Oprateur

Dnomination oprateur d'addition oprateur de soustraction oprateur de multiplication plus: oprateur de division oprateur d'affectation

Effet Ajoute deux valeurs Soustrait deux valeurs Multiplie deux valeurs Divise deux valeurs Affecte une valeur une variable

Exemple

+ * / =

x+3 x-3 x*3 x/3 x=3

V.Sans - virginie.sans@u-cergy.fr

51

INTRODUCTION A L'INFORMATIQUE

Les oprateurs d'assignation Ces oprateurs permettent de simplifier des oprations telles que ajouter une valeur dans une variable et stocker le rsultat dans la variable. Une telle opration s'crirait habituellement de la faon suivante par exemple: x=x+2 Avec les oprateurs d'assignation il est possible d'crire cette opration sous la forme suivante: x+=2 Ainsi, si la valeur de x tait 7 avant opration, elle sera de 9 aprs... Les autres oprateurs du mme type sont les suivants :
Oprateur += -= *= /= Effet addition deux valeurs et stocke le rsultat dans la variable ( gauche) soustrait deux valeurs et stocke le rsultat dans la variable multiplie deux valeurs et stocke le rsultat dans la variable divise deux valeurs et stocke le rsultat dans la variable

V.Sans - virginie.sans@u-cergy.fr

52

INTRODUCTION A L'INFORMATIQUE

Les oprateurs d'incrmentation Ce type d'oprateur permet de facilement augmenter ou diminuer d'une unit une variable. Ces oprateurs sont trs utiles pour des structures telles que des boucles, qui ont besoin d'un compteur (variable qui augmente de un en un). Un oprateur de type x++ permet de remplacer des notations lourdes telles que x=x+1 ou bien x+=1

Oprateur

Dnomination

Effet

Syntaxe

Rsultat (avec x valant 7)

++

Incrmentation

Augmente d'une unit la variable

x++

--

Dcrmentation

Diminue d'une unit la variable

x--

V.Sans - virginie.sans@u-cergy.fr

53

INTRODUCTION A L'INFORMATIQUE

Les oprateurs de comparaison


Oprateur == A ne pas confondre avec le signe d'affectation (=)!! < <= > >= != Effet Compare deux valeurs et vrifie leur galit Vrifie qu'une variable est infrieure une valeur Vrifie qu'une variable est ou gale une valeur Vrifie qu'une variable est suprieure une valeur Vrifie qu'une variable est ou gale une valeur Vrifie qu'une variable est d'une valeur strictement infrieure strictement suprieure diffrente Exe mpl e x== 3 x<3 x<= 3 x>3 x>= 3 x!=3 Rsultat Retourne True si X est gal 3, sinon False Retourne True si X est infrieur 3, sinon False Retourne True si X est infrieur ou gal 3, sinon False Retourne True si X est suprieur 3, sinon False Retourne True si X est suprieur ou gal 3, sinon False Retourne True si X est diffrent de 3, sinon False

V.Sans - virginie.sans@u-cergy.fr

54

INTRODUCTION A L'INFORMATIQUE

Les oprateurs logiques (boolens) Ce type d'oprateur permet de vrifier si plusieurs conditions sont vraies :
Opr ateur || && ! Dnomi nation OU logique ET logique NON logique Effet Vrifie qu'une des conditions est ralise Vrifie que toutes les conditions sont ralises Inverse l'tat d'une variable boolenne (retourne la valeur True si la variable vaut False, False si elle vaut True) Syntaxe ((condition1)||( condition2)) ((condition1)&& (condition2)) (!condition)

Regardez bien vos cours de Logique, cela va vous servir :) Il existe d'autres oprateurs que nous n'voquerons pas aujourd'hui.

V.Sans - virginie.sans@u-cergy.fr

55

INTRODUCTION A L'INFORMATIQUE

MODULO Un oprateur de calcul important


Exemple de modulo (Trs utile !) : 5%2= 1 8%3= 2 car 5=2x2+1 car 8=2x3+2

Lexpression a galement un type qui dpend du type des oprandes. Il faut donc que les oprandes soient compatibles. Lopration de conversion peut tre implicite parce que les types coincident, ou doit etre explicitement dfinies ( laide dune opration appele transtypage ou cast). Composition d'oprateurs Les expressions peuvent tre composes (comme en mathmatique) en donnant des ordres de priorit laide de parenthses !

V.Sans - virginie.sans@u-cergy.fr

56

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 1) Quel est le signe de la multiplication sur un ordinateur ? A. * B. + C. / D. E. % 2) Simple question de maths pour voir si vous avez compris les modulos : Combien renvoie l'opration 17 % 5 ? A. 0 B. 1 C. 2 D. 3 E. 4 F. 5 G. 15
V.Sans - virginie.sans@u-cergy.fr 57

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 3) Combien vaudra la variable "resultat" aprs cette opration ? resultat = (8 / 3) - 2; A. -2 B. 0 C. 1 D. 2 E. Autre rponse 4) Comment appelle-t-on l'opration suivante en programmation a++ ? A. L'incrmentation B. L'augmentation C. La supplmentation

V.Sans - virginie.sans@u-cergy.fr

58

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 5) Combien vaut la variable "nombre" la fin de ces oprations ?? int nombre = 4;nombre--;nombre *= 4;nombre %= 12; nombre += 1; A. B. C. D. E. F. 0 1 4 12 14 Autre rponse

V.Sans - virginie.sans@u-cergy.fr

59

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 6) Ecrire un petit programme en Java dont le nom sera Yoyo.java et qui : dclarera un entier a, dclarera un entier b, a vaudra 3 au dpart. declarera un caractre qui s'appellera c et qui vaudra la lettre Y dclarera un float c qui vaudra la multiplication de b par 5 Affichera le message "Voici mon calcul l'cran"

V.Sans - virginie.sans@u-cergy.fr

60

INTRODUCTION A L'INFORMATIQUE

LES TESTS et Structures conditionnelles


On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent tre associes des structures qui se rptent suivant la ralisation de la condition, on appelle ces structures des structures de boucle La notion de bloc Une expression suivie d'un point-virgule est appele instruction. Par exemple a++; est une instruction. Lorsque l'on veut regrouper plusieurs instructions, on peut crer ce que l'on appelle un bloc, c'est--dire un ensemble d'instructions (suivies respectivement par des point-virgules) et comprises entre les accolades { et }. Les instructions if, while et for peuvent par exemple tre suivies d'un bloc d'instructions excuter...
V.Sans - virginie.sans@u-cergy.fr 61

INTRODUCTION A L'INFORMATIQUE

LES TESTS
L'instruction if est la structure de test la plus basique, on la retrouve dans tous les langages (avec une syntaxe diffrente...). Elle permet d'excuter une srie d'instructions si jamais une condition est ralise. La syntaxe de cette expression est la suivante : if (condition ralise) { liste d'instructions } Remarques: la condition doit tre entre des parenthses il est possible de dfinir plusieurs conditions remplir avec les oprateurs ET et OU (&& et ||) par exemple l'instruction suivante teste si les deux conditions sont vraies : if ((condition1)&&(condition2))L'instruction suivante excutera les instructions si l'une ou l'autre des deux conditions est vraie if ((condition1)||(condition2)) s'il n'y a qu'une instruction, les accolades ne sont pas ncessaires... les instructions situes dans le bloc qui suit else sont les instructions qui seront excutes si la ou les conditions ne sont pas remplies
V.Sans - virginie.sans@u-cergy.fr 62

INTRODUCTION A L'INFORMATIQUE

Exemple :

if(a>=3){System.out.println("C bien, tu es plus grand que 3);}

Il est possible dutiliser tous les oprateurs de comparaison ==, !=, >=, <=, >, < et davoir des expressions composes Exemple : if(a>=3 && b>=3 ){System.out.println("C bien, a et b sont plus grand que 3);} Il faut tre vigilant avec le nombre dinstructions.... Avec une et une seule instruction effectuer en cas de vrification de la condition, on peut se passer des accolades, sinon elles sont obligatoires !

V.Sans - virginie.sans@u-cergy.fr

63

INTRODUCTION A L'INFORMATIQUE

Que fait ce bout de code, que voit on l'cran ?


Exemple : int a=4, b; if(a>=3){ System.out.println("C bien, tu es plus grand que 3); b=5; } System.out.println("b vaut +b);

int a=4, b; if(a>=3) System.out.println("C bien, tu es plus grand que 3); b=5; System.out.println("b vaut + b);

V.Sans - virginie.sans@u-cergy.fr

64

INTRODUCTION A L'INFORMATIQUE

L'instruction if ... else L'instruction if dans sa forme basique ne permet de tester qu'une condition, or la plupart du temps on aimerait pouvoir choisir les instructions excuter en cas de non ralisation de la condition... L'expression if ... else permet d'excuter une autre srie d'instruction en cas de non-ralisation de la condition. La syntaxe de cette expression est la suivante : if (condition ralise) { liste d'instructions } else { autre srie d'instructions } Exemple : if(a>=3){System.out.println("C bien, tu es plus grand que 3);} else{System.out.println("Je ne sais pas quoi dire);}

V.Sans - virginie.sans@u-cergy.fr

65

INTRODUCTION A L'INFORMATIQUE

Il est possible dimbriquer les tests Exemple : if(a>=3){System.out.println("C bien, tu es plus grand que 3);} else{ if(a==1){System.out.println("tu veux 1);} else {System.out.println(Ca ne vaut rien);}}

V.Sans - virginie.sans@u-cergy.fr

66

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 1) Que signifie le symbole <= ? A. Infrieur B. Suprieur ou gal C. Infrieur ou gal D. Suprieur E. Diffrent de 2) Si ma variable nombreVies vaut 0, qu'affiche ce code ? if (nombreVies != 0) System.out.println("Tu es toujours en vie !"); else System.out.println("Tu es mort"); A. B. Tu es toujours en vie ! Tu es mort
67

V.Sans - virginie.sans@u-cergy.fr

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 2bis) Si ma variable nombreVies vaut 0, qu'affiche ce code ? if (nombreVies != 0) System.out.println("Tu es toujours en vie !"); else System.out.println("Tu es mort"); System.out.println("Pan"); 3) Comment faire en sorte que ma variable toujoursEnVie soit un boolen valant vrai si j'ai encore des vies dans la variable nombreVies ? A. toujoursEnVie = nombreVies > 1; B. toujoursEnVie = nombreVies != 1; C. toujoursEnVie = nombreVies > 0; D. toujoursEnVie = nombreVies >= 0;

V.Sans - virginie.sans@u-cergy.fr

68

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 4) Qu'affichera ce code ? int pleinDeFric = 0, majeur = 0; float argentEnPoche = 10000, age = 19; pleinDeFric = argentEnPoche > 10000; majeur = !(age < 18); if (pleinDeFric && majeur) System.out.println("Vous pouvez ouvrir un compte en banque !"); else System.out.println("Sortez d'ici ou j'appelle la securite"); A. B. Vous pouvez ouvrir un compte en banque ! Sortez d'ici ou j'appelle la securite

V.Sans - virginie.sans@u-cergy.fr

69

INTRODUCTION A L'INFORMATIQUE

L'instruction switch L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une mme variable. Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable, car cette opration aurait t complique (mais possible) avec des if imbriqus. Sa syntaxe est la suivante : switch (Variable) { case Valeur1 : Liste d'instructions break; case Valeur2 : Liste d'instructions break; case Valeurs... : Liste d'instructions break; default: Liste d'instructions break; } Pensez utiliser linstruction break pour sortir du test ! L'instruction switch ne fonctionne que sur des types simples (int, short, char ou byte) ! Le multi-cas pour la mme instruction est possible !

V.Sans - virginie.sans@u-cergy.fr

70

INTRODUCTION A L'INFORMATIQUE

EST CE QUE VOUS SUIVEZ ? 29) Quel est le problme de ce switch ? switch (variable) { case 5: System.out.println("Salut"); case 12: System.out.println("Bonjour"); default: System.out.println("Au revoir"); } A. B. C. D. Il manque des instructions break Il faut mettre un point-virgule la fin du switch Il faut ouvrir des accolades pour chaque "case" C'est "case default" et pas "default" tout court

V.Sans - virginie.sans@u-cergy.fr

71

INTRODUCTION A L'INFORMATIQUE

ORGANISATION DES PROGRAMMES


QUELLES SONT LES BONNES HABITUDES ? Regle 1 : Commenter vos codes Regle 2 : Donner des noms de fonctions et de variables explicites Regle 3: Fournir une doc avec chaque projet rendu (structure de vos projets, exemple de procdure de tests (mode demploi)) Regle 4 : Structurer vos fichiers (un fichier Date.java est un fichier qui ne manipule que des dates, un fichier Annuaire.java permet de grer un annuaire,.) Regle 5 : Optimiser vos codes Regle 6 : Soyez Fainant lorsquil faut inventer la roue !
V.Sans - virginie.sans@u-cergy.fr 72

INTRODUCTION A L'INFORMATIQUE

Les TP
1 : Venir avec sa carte d'tudiant et avoir une adresse email valide (surtout si vous n'avez pas encore votre carte) .arriver l'heure ! 2 : Prparer vos TP et avoir revu le cours ! 3: Le cours et les TP se trouveront la fin de la semaine l'adresse : http://depinfo.u-cergy.fr dans la rubrique L1

V.Sans - virginie.sans@u-cergy.fr

73