Java: Prise en main

 

Premiers tests

 
Voici le programme qui affiche «hello world!» sur la sortie standard :
 
public class HelloWorld {
 
    public static void main(String[] args) {
System.out.println("Hello World!");
    }
    
}
 
Voici le programme de l'applet qui peut être chargée dans un navigateur web et qui permet l'affichage de «hello world!» :
 
import java.applet.Applet;
import java.awt.Graphics;
 
public class HelloWorldApp extends Applet {
    
    public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
    }
 
}
 
Voici le code d'un document html qui permet de charger l'applet :
 
<HTML>
  <HEAD> <TITLE> Programme simple </TITLE> </HEAD>
  <BODY>
    <APPLET CODE="HelloWorldApp.class" WIDTH=150 HEIGHT=25>
    </APPLET>
  </BODY>
</HTML>
 
Le programme suivant est une applet (qui peut donc être chargée dans un navigateur web) et qui dispose en plus d'une méthode main (qui lui permet donc d'être aussi exécutée depuis un terminal) :
 
import java.applet.Applet;
import java.awt.Graphics;
 
public class HelloWorldAppMain extends Applet {
    
    public void paint(Graphics g) {
g.drawString("[applet avec main][paint] Hello world!", 50, 25);
    }
 
    public static void main(String[] args) {
        System.out.println("[applet avec main][main] Hello World!");
    }
 
}
 
Voici le code d'un document html qui permet de charger l'applet précédente :
 
<HTML>
  <HEAD> <TITLE> Programme simple </TITLE> </HEAD>
  <BODY>
    <APPLET CODE="HelloWorldAppMain.class" WIDTH=350 HEIGHT=50>
    </APPLET>
  </BODY>
</HTML>
 
 
Exécutez tous ces programmes. Pour les applets, on ne s'enerve pas sur le navigateur (mozilla, firefox, explorer,...) si ca ne marche pas. On utilise appletviewer HelloWorld.html et hop c'est bon.
 

Un peu plus de code

Voici un programme java sans objet. On a bien la classe TP1 mais elle est juste là pour décorer parce qu'en java, on ne peut pas avoir de fonction sans classe. Ce programme remplit un tableau d'entiers avec des nombres compris entre 0 et 1000 tirés aléatoirement, puis les affiche sur la sortie standard :
 
class TP1 {
    public static int N = 12;
 
    public static void remplirTableauEntiers(int tableau [])
    {
for (int n = 0; n < tableau.length; n++) {
   tableau[n] = (int) (Math.random() * 1000);
}
    }
 
    public static int [] creerEtRemplirTableauEntiers(int dim)
    {
int [] t = new int [dim];
remplirTableauEntiers(t);
return (t);
    }
 
    public static void afficherTableauEntiers(int tableau [])
    {
for (int n = 0; n < tableau.length; n++) {
   System.out.println(tableau[n]);
}
    }
 
    public static void main(String argv[])
    {
int t[] = creerEtRemplirTableauEntiers(N);
afficherTableauEntiers(t);
    }
}
 
 
Compilez et exécutez ce programme.
 

Le tri par bulles

Le principe est d'effectuer des passages successifs (balayage du tableau) et, à chaque balayage, de remonter l'élément de poid le plus fort :
  • à la fin du premier passage, la plus grosse valeur du tableau est remontée en première position;
  • au deuxième passage la seconde plus grosse valeur est remontée à la deuxième position;
  • et ainsi de suite... 
Sachant que la syntaxe de java est très proche de celle de C, mettre en œuvre et tester la fonction triParBulle qui trie le tableau d'entiers qui lui est passé en argument. On pourra utiliser les fonctions creerEtRemplirTableauEntiers et afficherTableauEntiers pour tester triParBulle.
 

Tri de tableau de tableaux

Pour cet exercice, vous devez savoir comment on déclare et on initialise un tableau de tableaux d'entiers.
 
  • Ecrire et tester la fonction creerEtRemplirTableauEntiers2(int dim1, int dim2) qui initialise aléatoirement un tableau de tableaux d'entiers dont les dimensions sont dim1 et dim2. Pour tester creerEtRemplirTableauEntiers2, créer une fonction afficherTableauEntiers2(int tableau [][]) qui affiche le contenu du tableau passé en paramètre.
  • Ecrire et tester la fonction triParBulle2 qui trie les tableaux d'entiers contenus dans le tableau qui lui est passé en argument
    • Dans une première version : ligne par ligne
    • Dans une deuxième version : le tri se fera sur l'ensemble des données, de la première case du tableau en haut à gauche, jusqu'à la dernière case en bas à droite, dans l'ordre classique de lecture de la première ligne à la dernière.