cours en java
                                                         

    Les  éléments de base en Java                         


1)  Introduction
==> Programmer c’est quoi ????
Programmer signifie  réaliser des  « programmes  informatiques  ». Les programmes  demandent  à l’ordinateur d'effectuer des actions.  
==> Votre ordinateur est  rempli  de programmes  comme:
* la calculatrice est  un programme
votre traitement  de texte est  un programme
votre logiciel  de « chat  » est  un programme
les  jeux  vidéo sont  des  programmes

==> De quels  logiciels  a-t-on besoin pour programmer ?
* Installer les outilles nécessaires: JDK   et  Eclipse IDE

JDK :     
Commencez par télécharger l'environnement Java sur le site d'Oracle, comme le montre la figure suivante. Choisissez la dernière version stable
Le Java Development Kit (JDK) désigne un ensemble de bibliothèques logicielles de base du langage de programmation Java, ainsi que les outils avec lesquels le code Java peut être compilé, transformé en bytecode destiné à la machine virtuelle Java.
 Pour L’installation de  jdk  est  très simple comme n’importe quel logiciel.

Eclipse ID :
Avant toute chose, quelques mots sur le projet Eclipse. « Eclipse IDE » est un environnement de développement libre permettant de créer des programmes dans de nombreux langages de programmation (Java, C++, PHP…). C'est l'outil que nous allons  utiliser pour programmer. 



==> Les étapes pour installer Eclipse 
Je vous invite donc à téléchargerEclipse IDE. Après  choisissez la version d'Eclipse correspondant à votre OS (Operating System = système d'exploitation),  et lors de  l’installation choisissez  Eclipse IDE for Java Developers, comme indiqué à la figure suivante.






 



cours en java


cours en java





Pour le moment, ce que vous devez retenir, c'est que votre classe est définie par un mot clé (class), qu'elle a un nom (ici, « PremierClass ») et que son contenu est délimité par des accolades { }. Nous écrirons nos codes sources entre les accolades de la méthode main. La syntaxe de cette méthode est toujours la même :
==> Le premier code en java




 
  
Pour exécuter ce programme





 *  public  static void   main ( String []  args )  {   }
La fonction main  se trouve dans la classe principale. C'est  un nom  de fonction particulier qui  signifie « principal  ». main est  la fonction principale de votre programme, c'est toujours  par la fonction main que le programme  commence.
Une fonction a  un début  et  une fin, délimités  par des  accolades  { et  }. Toute la fonction main se trouve donc entre ces accolades.
* System.out.print(" Bonjour ") ; 
Cette ligne à l'intérieur d'une fonction main s’appelle instruction, Chaque instruction est une  commande à l'ordinateur de faire quelque chose. Dans ce cas-là  cette ligne demande par l’ordinateur  d’afficher le message Bonjour à l'écran.

!!! Très  important: toute instruction se termine obligatoirement par un point-virgule « ; ». Si  vous  oubliez  de mettre un point -virgule à la fin d'une  instruction, votre  programme ne compilera pas ! 

==> Écrire  un message "Bonsoir" à l'écran
À partir de maintenant, on va modifier nous -mêmes  le code de programme précédent. Qui  permet d’afficher le message « Bonsoir » à l'écran 


cours en java


 * 
Les  caractères  spéciaux
Les  caractères  spéciaux  sont  des  lettres  spéciales  qui  permettent  d'indiquer qu'on veut aller à la ligne, faire une tabulation, etc. 
Ils  sont  faciles  à reconnaître : c'est  un ensemble de deux  caractères. Le premier     d'entre eux  est  toujours  un anti -slash ( \ ), et  le second un nombre ou une lettre. Voici  deux caractères  spéciaux  courants  que vous  aurez  probablement  besoin d'utiliser, ainsi que  leur signification :


\n :  retour à la ligne « Entrée » ;
\t :   tabulation                     

Dans  notre cas, pour faire une entrée, il  suffit  de taper \n pour créer un retour à la ligne. Si  je veux  donc faire une tabulation, je devrais  taper \t.

cours en java

 ==> Les  commentaires, c'est très  utile!
Lorsqu’un programme devient long, il est conseillé d’ajouter des lignes de commentaires dans le programme, c’est-à-dire des lignes qui ont pour but de donner des indications sur les instructions effectuées et d’expliquer le fonctionnement de programme  sans que le  compilateur ne les prenne en compte. 
On va voir  deux  types de commentaires :

Commentaire sur une ligne :   


Commentaire sur plusieurs lignes :
Remarque : Parfois on utilise les commentaires pour annuler l’action de quelques
instructions dans  un programme au lieu de les effacer  comme dans cet exemple:


cours en java



 Le programme  ignore  l’instruction qui se trouve  entre  le commentaire  et affiche seulement Bonjour. 

2) Les variables et les constantes


2-1) Notion de variable 
Les données  ainsi que les résultats des calculs intermédiaires ou finaux, sont rangés dans des cases mémoires qui correspondent à des variables, Ainsi, une variable  est rangée dans un emplacement mémoire nommé, de taille fixe (ou non) prenant au cours du déroulement de programme un nombre indéfini de valeurs différentes.


2-2) déclaration des variables
La partie déclaration consiste à énumérer toutes les variables dont on aura besoin  au cours de programme. Chaque déclaration doit comporter le nom de variable (identificateur) et son type.

Syntaxe :     type    identificateur   ;

Identificateur : Un identificateur est le nom donné à une variable. Ce  nome doit obligatoirement commencer par une lettre suivie d’une suite de  lettres et les chiffres et il  ne doit pas contenir d’espace.
Types de données :
Le type de variable est l’ensemble des valeurs qu’elle peut prendre.
int : sert à manipuler les nombres entiers positifs ou négatifs. Par exemple :  5   -12  
float :  sert à manipuler les nombres à virgule. Par exemple :    5  ,  2.1f  ,  -1.276f
double :  sert à manipuler les nombres à virgule. Par exemple : 5.76543   -1.278 ….
char :  sert à manipuler des caractères, Par exemple :   'A'   ,  '6' 
boolean:  utilise les expressions logiques. Il  n’y a que deux valeurs booléennes : true  /  false
String :  sert à manipuler des chaînes de caractères, Par exemple :   'bonjour'   ,  "hi  cv" 
Exemple :
int N  ;          float  e , r  ;             boolean     proposition ;             char   letter ;

==> Les opérations sur des variables :

Remarque:
&& signifie :  et           
   ||   signifie :  ou         
   !  signifie :   non  (négation)           
 ==  signifie :  égal                  
  !=  signifie :    ≠ 
   
Lorsque l’on écrit directement une valeur flottante (float) dans le code, elle est considérée par défaut comme un double. Si on veut réduire sa précision pour qu’elle représente un float, il faut explicitement lui rajouter un 
Le type String  permet de gérer les chaînes de caractères, c'est-à-dire le stockage         de texte.
Il s'agit d'une variable d'un type plus complexe que l'on appelle objet. Vous verrez que   celle-ci  s'utilise un peu différemment des variables précédentes
2-3) Les constantes
Comme une variable, il existe une  constante  correspond un emplacement mémoire  réservé auquel on accède par le nom qui lui a été attribué, mais dont la valeur stockée ne  sera jamais modifiée au cours du programme. 

Syntaxe :     final  Nom_Constante = valeur ;  
Exemple :    final   float   pi = 3.14 ;


3) Les instructions de base

Une instruction est une  action élémentaire commandant à la machine un calcul, ou une  communication avec l’un de ses périphériques d’entrées  ou de sorties. Les instructions de base sont: 
3-1) L’instruction d’affectation : 
L’affectation permet d’affecter une valeur à une variable. Elle est symbolisée  par « = »    
Syntaxe :      Variable   =  Expression ;

Exemple :


                                                                                                                       
 



 3-2) L’instruction de sortie :
Avant de lire une variable, il est conseillé d’écrire un message à l’écran, afin de prévenir l’utilisateur de ce qu’il doit taper. L’instruction de sortie (d’écriture) permet d’afficher des informations  à l’écran. 
Syntaxe :
System.out.print (" message à l'écran ") ;     ou   
System.out.print ("  message " + valeur) ; 

* System: ceci correspond à l'appel d'une classe qui se nomme « System ». C'est une classe utilitaire qui permet surtout d'utiliser l'entrée et la sortie standard, c'est- à-dire la saisie clavier et l'affichage à l'écran.
out: objet de la classe System qui gère la sortie standard.
print: méthode qui écrit dans la console le texte passé en paramètre (entre les parenthèses).
Exemple 1:
System.out.print(" Bonjour ! ");
System.out.print(" je m’appelle ");
System.out.print("mohamed");

Lorsque vous l'exécutez, vous devriez voir des chaînes de caractères qui se suivent sans saut de ligne. Autrement dit, ceci s'affichera dans votre console comme ceci :
Bonjour ! je m’appelle mohamed

cela, vous avez plusieurs solutions : 
* soit vous utilisez un caractère d'échappement, ici \n ;
soit vous utilisez la méthode println() à la place de la méthode print().





 Exemple 2:
  
cours en java


3-3) Les conversions  ou  < cast >
En programmation, on est souvent amené à convertir les types,  c'est-à-dire passer d'un type numérique à une chaîne de caractères ou vice-versa  Nous allons voir un truc super important en Java. Ne vous en déplaise, vous serez amenés à convertir des variables.  via la syntaxe suivante :    variable  = (type) valeur

D'un type int en type float :






D'un type double en type int :




Exemples:




















Remarque
 ==> pour convertir n’importe quel type de données en une chaîne, on utilise la fonction valueof 


cours en java


!!! La valeur 12 est considérée  comme une chaîne, ce n’est pas une valeur numérique 

==> pour convertir une chaîne  en  un type de données numérique, on utilise les fonctions  intValue()  ,     floatValue() ,     doubleValue()

Exemple :

cours en java


!!! La valeur 17 de variable k  est considérée  comme une valeur numérique, ce n’est pas  une chaîne.


3-4) Les instructions d’entrée :
Les instructions d’entrée ou de lecture donnent  la main à l’utilisateur pour saisir une donnée au clavier. La valeur saisie sera affectée à une variable. Ces instructions sont  effectuées via un objet de la class Scanner. 
Scanner sc = new Scanner(System.in) ;
cette instruction ne fonctionne  pas pourquoi ???? 
il faut importer la classe Scanner  comme indiquée à la figure suivante :



 
* Récupérer  ce que vous tapez
Voici l'instruction pour permettre à Java de récupérer ce que vous avez saisi pour ensuite l'afficher :

cours en java

     


cours en java

 Vous savez maintenant que pour lire un int, vous devez utiliser nextInt(). De façon       générale,dites-vous que pour récupérer un type de variable, il vous suffit d'appeler next<Type de variable commençant par une majuscule>



!!! Il y a un type de variables primitives qui n'est pas pris en compte par la classe Scanner : il s'agit du type char.
Voici comment on pourrait  récupérer un caractère :




                     Chapitre 2 : Les  structures alternatives et répétitives



1) Les structures alternatives
1-1) Introduction :
Syntaxe : 

 Une condition est une expression  logique  ou une variable logique évaluée à  Vrai ou faux.
La condition est évaluée. Si  elle est vraie, la série d’instruction(s)1 est exécutée et l’ensemble d’instruction(s) 2 est ignoré, la machine sautera directement à la première instruction située après cette structure. 
De  même, au cas où la condition  était fausse la machine saute directement à la première
ligne située après le  else et exécute l’ensemble d’instruction2.


Exemple :




cours en java


Exercice d’application 1
Ecrire un programme en java qui affiche si un nombre entier  saisi au clavier est pair ou impair.


les exercices en java



Remarque : il existe aussi un autre type de condition c’est la condition composées.
Certains problèmes exigent  de formuler des conditions qui ne peuvent être exprimées sous la forme simple, par exemple la condition  de  note  de devoir doit être inclus dans  l’intervalle     [0, 20],  cette  condition est composée de deux conditions simples qui  sont  note 0    et     note 20

Exercice d’application 2
Ecrire un programme en java qui permet de faire  une remarque d’une note saisi au clavier ( si la note  supérieur  à 10  alors  affiche  validé sinon non validé  (NB : la note comprise entre 0 et 20 ! ).


les exercices en java

 
Exercice 1:  
Ecrire un programme en java qui demande deux nombres m et n à  l’utilisateur et l’informe ensuite si le produit  de ces deux nombres est positif ou négatif. On inclut   dans le programme  le cas  où le produit peut être nul.

les exercices en java

Exercice 2:
Une boutique propose à ces clients, une réduction de 15% pour les montants d’achat supérieurs à 200 dh. Ecrire un programme en java permettant de saisir le prix total HT et de calculer le montant TTC en prenant en compte la réduction et la TVA=20%

les exercices en java


1-3)  Structure à choix multiples   ( Switch )
La condition  if... else  que l'on vient de voir est le type de condition le plus souvent utilisé. Toutefois, le  if... else  peut s'avérer quelque peu… répétitif : Prenons cet exemple :

Pour résoudre ce problème de la répétition de  if  else   if  else …. plusieurs fois. On utilise une nouvelle structure  à choix multiples. Cette  structure conditionnelle permet de choisir le traitement à effectuer en fonction  de la valeur ou de l’intervalle de valeurs d’une variable  ou d’une expression.
Syntaxe :

 
Lorsque l’ordinateur rencontre cette instruction, il vérifie la valeur de la variable, et il la  compare  aux différentes valeurs. 
Les valeurs sont évaluées  dans l’ordre, les unes après les autres, et une fois la valeur de variable est vérifiée l’action associée  est exécutée. On peut utiliser une instruction default   (facultative), dont l’action sera exécutée si aucune des valeurs évaluées n’a pas été remplie.

Exercice d’application :
Ecrire un programme en java  permettant d’afficher le mois en lettre selon le  numéro saisi  au clavier       (janvier=1  ,  février =2  …….. décembre = 12).


les exercices en java

Remarque : Vous devez mettre une instruction break ;   à la fin de chaque cas. Pour ignorer les instructions en dessous ! L'instruction break ;  commande en fait à l'ordinateur de «sortir » des accolades. Et  instruction  defaulf ;   sera exécutée si aucune des valeurs  évaluées n’a pas été remplie.
2) Les Structures  répétitives 
2-1) Introduction
Prenons d’une saisie au clavier, par exemple, on pose une question à laquelle doit répondre  par « oui » ou « non ».
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut soit planter  par une erreur d’exécution soit dérouler normalement jusqu’au bout, mais en produisant  des résultats fantaisistes. 
Pour éviter ce problème, on peut mettre en place un contrôle de saisie pour vérifier que les  données entrées au clavier correspondent bien à celles attendues par le programme.


les exercices en java

!!! Le programme  ci-dessus résout le problème si on se trompe qu’une  seule fois, et on fait entrer une valeur correcte à la deuxième demande. Sinon en cas de deuxième
 
erreur, il faudrait rajouter un  «  if  ». Et ainsi de suite, on peut rajouter des  centaines  de «  if  »
==> La solution à ce problème consiste à utiliser une structure répétitive. 
Une structure répétitive, encore appelée boucle, est utilisée quand une instruction ou une liste d’instruction, doit être répétée plusieurs fois. La répétition est soumise à une condition.
2-2) La boucle while
La boucle while  permet de répéter un traitement tant que la condition est vraie.
Syntaxe:



 L’exécution de la boule dépend de la valeur de la condition. Si est vrai, le programme exécute les instructions qui suivent, jusqu’à ce qu’il  rencontre l’accolade }. Il retourne ensuite sur la ligne du while, procède au même examen, et ainsi de suite

La boucle ne s’arrête que lorsque prend la valeur fausse, et dans ce cas le programme poursuit son exécution après  la boucle  « sortir des accolades ».

Exemple:


les exercices en java

Remarque :
Si la  structure   while   contient la condition ne devient jamais fausse. Le programme tourne dans une boucle infinie et n’en sort plus.
Exemple :


  Dans cet exemple nous avons  une boucle infinie. L’ordinateur ne s’arrêtera jamais  d’afficher le message Bonsoir  car la variable i qui est testée dans la condition n’est jamais incrémenter. Alors pour  résoudre  le problème de boucle infinie dans ce cas-là, on  incrémente la variable i à chaque tour de boucle  pour afficher   Bonsoir  10 fois  exactement.


les exercices en java


Exercice 1
Ecrire un programme en java  qui calcule la somme  S = 1+2+3+4+……..+ 10. Utilisant la boucle while.


les exercices en java


Exercice 2
Ecrire un programme en java qui calcule la somme   S= 1+2+3+……..+ N,  où N saisi par l’utilisateur.




les exercices en java

2-3)  La boucle  for
La boucle  for  permet de répéter une liste d’instructions un nombre connu de fois.
Syntaxe :



Exemple:




Cet exemple  permet d’afficher le message bonjour 10  fois, et tant que la condition est 
vraie la boucle répète l’exécution des instructions qui se trouvent  entre les accolades 
==>  La partie d’initialisation  est de type entier. Elle est initialisée par la valeur initiale, la partie instruction(s) augmente cette valeur par  1 automatiquement à  chaque tour de boucle  jusqu’à la valeur finale.
==> Lorsque la valeur compteur vaut la valeur finale, le traitement est exécuté une seule fois puis le programme sort de la boucle.

Exemple:


les exercices en java
  
Exercice 1 
Ecrire un programme en java  qui calcule   S= 1+2+3+4+……..+ 10. Utilisant la boucle for.


les exercices en java



Exercice 2 
Ecrire un programme en java qui calcule  S= 1+2+3+4+……..+ N. Utilisant la boucle for.


les exercices en java



Exercice 3
Ecrire un programme en java qui affiche la table de multiplication de 5. Utilisant la boucle for.


les exercices en java



Exercice 4
Ecrire un programme en java qui affiche la table de multiplication d’un  entier saisie par l’utilisateur, Utilisant la boucle for


les exercices en java


2-4) La  boucle   do ….While
Cette boucle permet de répéter les instructions qui se trouvent entre les accolades tant que la condition est vraie.
Remarque :
Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse  car il n’y a pas de vérification de la condition avant  d’y entrer 
Ce type de boucle est  très  similaire à while, bien qu’un peu moins  utilisé en général. La seule chose qui  change en fait  par rapport  à while, c'est  la position de la condition.  Au li eu d'être au début  de la boucle, la condition est  à la fin:
Syntaxe :




la boucle while  pourrait  très  bien ne jamais  être exécutée si  la condition est  fausse dès  le départ. Par exemple, si la condition est fausse  dès  le début  et  on ne serait  jamais  rentré  dans  la boucle. et Pour la boucle do… while, c'est  différent: cette boucle s'exécutera toujours  au moins  une fois même si la condition est fausse.

Il  est  donc  parfois  utile de faire des  boucles  de ce type, pour s'assurer que l'on rentre au moins  une fois  dans  la  boucle.

!!! N'oubliez  pas  de mettre un point-virgule  après  le while, si non votre programme plantera à la compilation !

Exemple:
En utilisant  la boucle do…..while, on écrit  un programme  qui affiche Bonjour 10 fois.


les exercices en java

 

 Exercice 1 
Ecrire un programme en java qui calcule la somme  S= 1+2+3+…+ 10. Utilisant la boucle  do…..while.


les exercices en java


Exercice 2
Ecrire un programme en java qui affiche la table de multiplication de 5. Utilisant la boucle  do ….While.


les exercices en java




                          Chapitre 3 : Les  Tableaux

1) Introduction
Imaginons que dans un algorithme, nous avons besoin d’un grand nombre de variables, il devient difficile de donner un nom pour chaque variable.
Exemple :
Ecrire un programme  permettant de saisir  quatre notes et de les afficher après avoir multiplié toutes les notes par 2.




==> La même instruction répète quatre fois . Imaginons que  si l’on voudrait réaliser ce programme  avec 100 notes, cela devient très difficile.
==>  Pour résoudre ce problème, il existe un type de données qui permet de définir plusieurs variables de même type.
 

2) Définition
Un tableau est une suite d’éléments de même type. Il utilise plusieurs  cases mémoire à l’aide d’un seul nom. Comme toutes les cases portent le même nom, elles se différencient par un numéro  ou un indice. 
Nous pouvons représenter schématiquement un tableau nommé Note composé de cinq cases, dans la mémoire comme suit :



3) Tableau à une dimension
3-1) Déclaration 
La déclaration d’un tableau permet d’associer à un nom d’une zone mémoire composée d’un certain nombre de cases mémoires de même type.  
Syntaxe :     
type [] nom_tableau = new type[taille] ;

Exemple :  
 float  []  Notes = new float [40] ;

Remarques : 
==> Le premier élément d’un tableau porte l’indice  0 .
==>  La valeur d’un indice doit être un nombre entier
==> La valeur d’un indice doit  être inférieure ou égale au nombre d’éléments du tableau. Par exemple, avec le tableau tab[20], il est impossible d’écrire  tab[21] ou tab[26], ces expressions font référence à des éléments qui n’existe pas.
==> L’utilisation de ces éléments  se fait en suite, via le nom du tableau et son indice. Ce  dernier peut être soit une valeur (tab[3), soit une variable ( tab [i] ) ou encore une expression ( tab[i+1] ).  

==> Pour Faire un parcours complet sur un tableau, on utilise une boucle.

Exercice 1
Ecrire un programme java permettant de saisir  10 notes et de les stocker dans un tableau nommé notes, puis les afficher.

                                       Solution 

import java.util.Scanner;
class Main {
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
int[] notes = new int[10];
int i;
for( i=0; i < 10; i++){
System.out.print("Entrer un entier :");
notes[i] = sc.nextInt();
}
  
for( i=0 ; i < 10; i++)
System.out.print(notes[i]+" ");
}
}

Exercice 2
Écrire un programme en Java  permettant de saisir 10 notes et qui affiche la moyenne de ces notes. 

                                  Réponse

import java.util.Scanner;
class Main {
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
float[] notes = new float[10];
float Som=0;
int i ;
for( i=0; i < 10; i++){
System.out.print("Entrer un entier :");
      notes[i] = sc.nextInt();
  Som = Som + notes[i];
   }
  
   System.out.print("La moyenne est: "+Som/10);
}
}

Exercice 3
Écrire un programme en Java permettant de saisir 10 entiers et qui affiche le maximum de ces entiers. 
                                  Réponse


import java.util.Scanner;
class Main {
public static void main(String[] args){
Scanner sc = new Scanner (System.in);
int[] Tab = new int[10];
int Max,i=0;

System.out.print("Entrer un entier :");
      Tab[i] = sc.nextInt();
      Max = Tab[0] ;
  
for( i=1; i < 10; i++) {
  System.out.print("Entrer un entier :");
   Tab[i] = sc.nextInt();
  if ( Tab[i] > Max )
      Max = Tab[i];
    }
  
  System.out.print("Le maximum est:"+Max);
}
}