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.
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.
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
Reprenons les différents éléments constituants le programme :
public | L'élément est accessible à partir de n'importe quel endroit du programme. |
---|---|
class | Java est un langage orienté objet. Et un objet se définit à partir d'une classe. |
static | C'est un attribut de la classe, indiquant que la méthode est inaccessible à partir d'un l'objet issu de la classe... |
void | La 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[] args | L'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. |
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
Le but est que le programme :
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 sc | sc 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 txt | txt 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);
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); } }
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 )
Modifier le code ci-dessus afin d'obtenir un programme effectuant le calcul demandé. Attention : Les nombres entrés peuvent être des nombes à virgule.
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é.
Modifier le code en plaçant le calcul de la vitesse de rotation dans une méthode de classe.
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 :