INTRODUCTION AU LANGAGE JAVA

Introduction

En informatique, il existe deux sortes de programmes :

Les programmes compilés présentent l'avantage d'être rapides à l'exécution. Par contre, il est nécessaire d'adapter la compilation au système d'exploitation. Par exemple, à partir d'un même code source, on génèrera un programme exécutable pour GNU/Linux et un autre programme exécutable pour Windows.

Les programmes interprétés, plus lents à l'exécution, ont l'avantage d'être compatibles avec n'importe quel système d'exploitation, si celui-ci est équipée de l'interpréteur adapté.

Java est un langage développé par Sun Microsystems, à la fois compilé et interprété. Il bénéficie donc, en théorie, des avantages que sont la rapidité d'exécution et la comptatibilité avec les systèmes d'exploitation. De plus, il permet de créer des applications web. Il est également utilisé pour créer des logiciels destinés aux tablettes de type Androïd. C'est donc un langage phare dans le monde de l'informatique.

Ce TP vous propose une introduction à ce langage.

Programme affichant du texte

Ecrire le programme

1. Recopiez le programme ci-dessous, avec l'éditeur de texte de votre choix.

public class test1 {
  public static void main(String[] args) {
    System.out.println("hello");
  }
}

2. Sous le nom test1.java, enregistrez votre programme, dans un dossier de test que vous vous serez créé au préalable.

Tester le programme

1. Pour compiler votre programme, tapez dans un terminal :

javac test1.java

Si votre programme comporte des erreurs, alors celles-ci sont indiquées. Sinon, vous pouvez constater que le fichier test1.class a été généré.

2. Testez votre programme en tapant :

java test1

Explications

Reprenons les différents éléments constituants le programme :

publicL'élément est accessible à partir de n'importe quel endroit du programme.
classJava est un langage orienté objet. Et un objet se définit à partir d'une classe.
staticC'est un attribut de la classe, indiquant que la méthode est inaccessible à partir d'un l'objet issu de la classe...
voidLa méthode exécute une série d'instructions mais ne renvoie rien. Elle ne retourne aucune valeur.
main()C'est une méthode associée à la classe, ici l'entrée du programme.
String[] argsL'argument args (on peut nommer cet argument selon son propre choix) est de type tableau de chaînes de caractères.
System.out.println()C'est l'instruction pour écrire. Elle se termine par un point virgule.

Modifier le programme

Le but est d'écrire le premier argument de la ligne de commande. Il s'agit donc de faire passer un argument à la méthode main().

Modifiez le programme précédent :

public class test1 {
  public static void main(String[] args) {
    System.out.println(args[0]);
  }
}

Vérifiez que pour la commande :

java test1 bonjour

Vous obtenez :

bonjour

Programme traitant des données

Le but est que le programme :

Lire les entrées saisies au clavier

Tester le programme ci-dessous :

import java.util.Scanner;
public class test2 {
  public static void main(String[] args){
    Scanner sc;
    String txt;
    sc = new Scanner(System.in);
    System.out.println("Veuillez saisir un mot :");
    txt = sc.nextLine();
    System.out.println("Vous avez saisi : " + txt);
  }
}

Explications :

import java.util.Scanner;On importe la classe Scanner pour pouvoir lire les données saisies au clavier.
Scanner scsc est une variable de type Scanner.
sc = new Scanner(System.in);sc est un objet issu de la classe Scanner, initialisé avec l'entrée standard, System.in.
String txttxt est une variable de type String.
txt = sc.nextLine();txt prend comme valeur l'entrée saisie au clavier.

Modifiez le programme précédent pour obtenir :

import java.util.Scanner;
public class test2 {
  public static void main(String[] args){
    Scanner sc;
    int nb;
    sc = new Scanner(System.in);
    System.out.println("Veuillez saisir un nombre :");
    nb = sc.nextInt();
    System.out.println("Vous avez saisi : " + nb);
  }
}

Que constatez-vous? Que ce passe-t-il si on entre un texte à la place d'un nombre? On notera qu'il est possible de convertir une chaîne de caractères en nombre.

Exemple :

String phrase = "12";
int i = Integer.parseInt(phrase);

Traiter les entrées saisies

Le but ici est que le programme demande d'entrer deux nombres pour faire un calcul, par exemple une addition.

Testez le programme ci-dessous :

import java.util.Scanner;
public class test3 {
  public static void main(String[] args){
    Scanner sc;
    int a, b, r;
    sc = new Scanner(System.in);
    System.out.println("a = ");
    a = sc.nextInt();
    System.out.println("b = ");
    b = sc.nextInt();
    r = a + b;
    System.out.println("a + b = " + r);
  }
}

Première application

Il est demandé de réaliser un programme utile en productique. Ce programme doit calculer la vitesse de rotation en fonction de la vitesse de coupe et du diamètre. En tournage, il s'agit de la vitesse de rotation du mandrin et du diamètre de la pièce. En fraisage, il s'agit de la vitesse de rotation de la broche et du diamètre de la fraise.

La relation utilisée est la même dans les deux cas : N = 1000 * Vc / ( π * d )

Etape 1 :

Modifier le code ci-dessus afin d'obtenir un programme effectuant le calcul demandé. Attention : Les nombres entrés peuvent être des nombes à virgule.

Etape 2 :

Modifier le code afin de permettre à l'utilisateur de faire autant de calculs qu'il le souhaite. Un message du genre "Voulez-vous refaire un calcul [O/N]?" devra être proposé.

Etape 3 :

Modifier le code en plaçant le calcul de la vitesse de rotation dans une méthode de classe.

Deuxième application

Une installation hydraulique est constituée de plusieurs composants : Pompes, vérins, moteurs, distributeurs, flexibles... Les fabricants de ces composants utilisent diverses unités pour la pression, d'où une difficulté pour les concepteurs. La pression peut s'exprimer en bars (bar), en pascals (Pa) ou en millimètres de mercure (mmHg).

Le programme, utile aux concepteurs, qu'il vous est demandé d'écrire :