Académique Documents
Professionnel Documents
Culture Documents
pdfcrowd.com
6. Les boucles
Boucle while
Boucle do---while
Boucle for
7. Les instructions d'entre et de sortie
8. Les fonctions
Dfinition
La fonction main
9. Les enregistrements
10. Les tableaux
11. Les fonctions mathmatiques
12. Le systme de fichiers d'Unix/Linux
Les principales commandes
Les expansions d'arguments
La redirection des entres-sorties
pdfcrowd.com
}
// dfinition de la fonction principale
public static void main(String[] args)
{
dclarations de variables locales
instructions
}
}
pdfcrowd.com
Conventions.
noms de variables : viter les noms commenant par _ ou par $ car ils sont habituellement rservs
open in browser PRO version
pdfcrowd.com
respectivement aux variables systmes et aux variables d'un code gnr automatiquement ;
noms de fonctions : juxtaposer un verbe en minuscule et un nom dbutant par une majuscule (par exemple,
parcourirListe) ;
noms d'enregistrements et noms de programmes : commencer par une majuscule.
Parmi les mots interdits pour les identificateurs, il faut ajouter les boolens false et true ainsi que null.
pdfcrowd.com
/*
Ceci est
un commentaire */
Ceci est
un commentaire */
type
byte
short
16
[215; 215[
int
32
[231;231[
long
64
0
[263;263[
\u0000
[\u0000; \uffff]
false
{false, true}
[1.4 E45; 3.4028235 E38]
0
[4.9 E324; 1.7917931348623157 E308] 0
16
boolean 1
float
32
double 64
char
pdfcrowd.com
\r retour chariot
ligne
\t tabulation horizontale \f saut de page
\b retour arrire
pdfcrowd.com
4 Les oprateurs
4.1 L'affectation
variable = expression
Cette expression a pour effet d'valuer expression et d'affecter la valeur obtenue variable. De
expression possde une valeur, qui est celle d'expression. Ainsi, l'expression i = 5 vaut 5.
plus, cette
L'affectation effectue une conversion de type implicite : la valeur de l'expression (terme de droite) est convertie
dans le type du terme de gauche. Cette conversion est possible uniquement si elle s'effectue vers un type de taille
suprieure celle du type de dpart :
byte short int long float double
char
Ces conversions sont sans perte de prcision, sauf celles de int et long en float et double qui peuvent parfois
entraner des arrondis.
pdfcrowd.com
Ces oprateurs agissent de la faon attendue sur les entiers comme sur les flottants. Leurs seules spcificits sont
les suivantes :
La notation / dsigne la fois la division entire et la division entre flottants. Si les deux oprandes sont de
type entier, l'oprateur / produira une division entire (quotient de la division). Par contre, il dlivrera une
valeur flottante ds que l'un des oprandes est un flottant. Par exemple,
double x;
x = 3 / 2;
pdfcrowd.com
Notons enfin qu'il n'y a pas d'oprateur effectuant l'lvation la puissance. De faon gnrale, il faut utiliser la
fonction pow(x,y) de la classe java.lang.Math pour calculer xy .
Les deux expressions sont values puis compares. La valeur retourne est de type boolean.
ngation logique
Comme pour les oprateurs de comparaison, la valeur retourne par ces oprateurs est un boolean. Dans une
expression de type
open in browser PRO version
pdfcrowd.com
l'valuation se fait de gauche droite et s'arrte ds que le rsultat final est dtermin.
Par exemple,
int x = 5, y = 2, z = 3;
boolean r;
r = (x >= 0) && (y != 2) || !(z > 10);
r
et
^ ou exclusif
<< dcalage gauche
>>> dcalage droite sans propagation du bit de signe
&
ou inclusif
~ complment 1
>> dcalage droite
|
En pratique, les oprateurs &, | et ^ consistent appliquer bit bit les oprations suivantes
&01
open in browser PRO version
pdfcrowd.com
000
101
|01
001
111
^01
001
110
L'oprateur unaire ~ change la valeur de chaque bit d'un entier. Le dcalage droite a >> n et gauche a << n
effectuent respectivement une division et une multiplication par 2n quand ils oprent sur un entier a positif, o n est
pris modulo 32 pour les int et modulo 64 pour les long. Quand a est un entier ngatif, le dcalage droite a >> n
propage le bit de signe (on remplit les n positions de poids fort avec des 1). Par contre, le dcalage droite sans
propagation du signe, a >>> n, propage des zros.
reprsentation reprsentation
dcimale binaire
a
77 00000000000000000000000001001101
b
23 00000000000000000000000000010111
a & b
5 00000000000000000000000000000101
a | b
95 00000000000000000000000001011111
a ^ b
90 00000000000000000000000001011010
~a
-78 11111111111111111111111110110010
b << 5
736 00000000000000000000001011100000
b >> 2
5 00000000000000000000000000000101
b >> 3
2 00000000000000000000000000000010
open in browser PRO version
pdfcrowd.com
23 00000000000000000000000000010111
c
-33 11111111111111111111111111011111
c >> 2
-9 11111111111111111111111111110111
c >>> 2 1073741815 00111111111111111111111111110111
b >> 32
condition
? expression-1 : expression-2
expression-1 si condition est satisfaite, et expression-2
x >= 0 ? x : -x
De tous les oprateurs, la conversion de type est celui qui a la priorit la plus leve.
Par exemple, dans
int i = 3, j = 2;
double r = (double)i/j;
r
vaut 1.5.
pdfcrowd.com
la chane de caractres constante "i = " est concatne avec la valeur de la variable i convertie en chane de
caractres.
-(unaire) ~
--
-(arithmtiques) +(String)
<<
(type)
%
>>
>>>
pdfcrowd.com
<
==
<=
>
>= instanceof
!=
&(et bit--bit)
^
|
&&
||
? :
=
*=
/=
%=
+=
-=
<<=
>>=
>>>=
&=
^=
|=
Notons que les oprateurs logiques bit--bit sont moins prioritaires que les oprateurs relationnels. Cela implique
que dans des tests sur les bits, il faut parenthser les expressions.
5 Le branchement conditionnel
La forme la plus gnrale est :
if ( expression )
{
instruction-1
}
else
{
open in browser PRO version
pdfcrowd.com
instruction-2
}
expression
est value. Si elle vaut true, instruction-1 est excute, sinon instruction-2 est excute.
Le bloc
else
{
instruction-2
}
}
else if ( expression-n )
{
instruction-n
}
else
{
instruction-
}
6 Les boucles
open in browser PRO version
pdfcrowd.com
Tant que expression est vrifie (i.e., vaut true), instruction est excute.
Ici, instruction sera excute tant que expression vaut true. Cela signifie donc que instruction est toujours
excute au moins une fois.
pdfcrowd.com
instruction
}
On doit comprendre cette boucle ainsi : expr-1 est la condition initiale de la boucle, expr-2 est la condition de
poursuite de la boucle et expr-3 est une expression excute aprs chaque tour de boucle. L'ide est que expr-1
reprsente l'tat initial d'un compteur dont la valeur sera modifie aprs chaque tour par expr-3, et la boucle
continue tant que la condition expr-2 est vrifie.
Par exemple,
for (int i=0; i<10; i=i+1)
{
System.out.println("Bonjour");
}
pdfcrowd.com
7.2 Lecture
On utilise les fonctions de la classe Ppl. Pour lire un entier entr au clavier et stocker sa valeur dans la variable x, la
syntaxe est
x = Ppl.readInt();
8 Fonctions
8.1 Dfinition
open in browser PRO version
pdfcrowd.com
est le type de la valeur retourne par la fonction, donne comme argument de return. Si la fonction ne
retourne aucune valeur, elle est de type void et l'instruction de retour la fonction appelante est return; (ou
omise).
La fonction travaille sur une copie des valeurs de ses arguments.
Les mthodes dynamiques, elle, ne sont pas prcdes du mot-clef static.
type
Par exemple,
static long facto(int n)
{
long resultat = 1;
for (int i=2; i<=n; i=i+1)
{
resultat = resultat * i;
}
return resultat;
}
pdfcrowd.com
Les arguments de main sont des chanes de caractres, ranges dans le tableau args. Il s'agit des diffrents mots
passs en arguments de la commande java NomClass. L'lment args[0] correspond au premier argument, et non
au nom de la classe. Pour convertir les arguments de main de type String en l'un des types primitifs, par exemple
int, on utilise la fonction
int Integer.parseInt(String str)
Ainsi, si notre programme se nomme Prog, on pourra l'appeler par la ligne de commande
java Prog France 91128 Palaiseau
9 Les enregistrements
Dfinition
class
{
NomEnregistrement
pdfcrowd.com
Comme pour les variables, il faut qualifier de final un champ pour qu'il soit constant.
Constructeurs
open in browser PRO version
pdfcrowd.com
Dans ce cas, l'utilisation du mot-cl this est requise pour distinguer les arguments des champs de l'enregistrement.
Ainsi, this.abscisse correspond au champ abscisse d'un enregistrement de type Point allou par le constructeur.
La variable abscisse correspond, elle, l'argument abscisse du constructeur.
open in browser PRO version
pdfcrowd.com
10 Les tableaux
Dclaration
type[] nomTableau;
Allocation
nomTableau = new type[expr];
o expr est une expression dont la valeur est un entier dfinissant la longueur du tableau, i.e. son nombre
d'lments.
pdfcrowd.com
nomTableau.length
Tableaux multi-dimensionnels
La dclaration d'un tableau deux dimensions est de la forme
type[][] nomTableau;
nomTableau[i]
dsigne la ligne d'indice i du tableau. On peut allouer toutes les lignes simultanment si elles ont la
mme taille :
tab = new int[nbLignes][nbCol];
pdfcrowd.com
valeur absolue
sinus
cosinus
tangente
arc sinus
arc cosinus
arc tangente
double x) convertit (x,y) en polaire (r,) et renvoie
angrad)
convertit un angle en radians en degrs
angdeg)
convertit un angle en degrs en radians
cosinus hyperbolique
sinus hyperbolique
tangente hyperbolique
exp
log nprien
log en base 10
racine carre
racine cubique
pdfcrowd.com
puissance
partie entire (infrieure) de a
partie entire (suprieure) de a
entier le plus proche de a
entier le plus proche de a (stock dans un int)
entier long le plus proche de a
maximum
minimum
pdfcrowd.com
rpertoire lui-mme.
Change Directory
permet de se placer dans le rpertoire nom_de_repertoire. Utilise sans argument, la commande cd replace
dans le home directory.
ls nom_de_repertoire
liste le contenu du rpertoire nom_de_repertoire. Utilise sans argument, elle liste le contenu du rpertoire
courant. L'option -a permet de lister galement les fichiers dont le nom commence par ., l'option -l affiche les
proprits des fichiers (droits d'accs, propritaire, taille, date de modification), l'option -t liste les fichiers en
les triant suivant la date de la dernire modification.
mkdir nom_de_repertoire
MaKe Directory
cre le rpertoire nom_de_repertoire.
rmdir nom_de_repertoire
ReMove Directory
supprime le rpertoire nom_de_repertoire, condition qu'il soit vide.
cp fichier_depart fichier_arrivee
cp fichier1 [ fichier2 fichier3...] repertoire_arrivee
CoPy
Si les deux arguments sont des noms de fichier, la commande copie le fichier dsign par le premier
argument dans le fichier dsign par le second. Si le dernier argument est un rpertoire existant, tous les
fichiers dsigns par les arguments prcdents sont copis dans ce rpertoire.
mv fichier_depart fichier_arrivee
mv fichier1 [ fichier2 fichier3...] repertoire_arrivee
MoVe
dplace des fichiers. La syntaxe est identique celle de cp.
open in browser PRO version
pdfcrowd.com
ReMove
supprime le ou les fichiers donns en arguments.
pwd
Par exemple, la commande rm TD?/*.class supprime tous les fichiers dont le nom est suffix par .class dans tous
les rpertoires dont le nom est form de la chane de caractres TD suivie d'un caractre (par exemple, TD1, TD2,
mais pas TD10).
pdfcrowd.com
pdfcrowd.com