TP 1 : Langage Java M1 ISIFAR 1 Rappel : le développement d’un programme Java Pour écrire un premier programme Java, il vous faut : – un éditeur de texte (kwrite, xemacs, pico, vi, ...) – la plateforme Java contenant notamment – le compilateur Java (commande javac) – la machine virtuelle Java (commande java). Le processus de développement consiste en 1. Taper le texte du programme dans l’éditeur de texte, puis l’enregistrer dans un fichier portant l’extension .java tel que Hello.java 2. Compiler le programme en appelant le compilateur javac dans une fenêtre de terminal virtuel. Il prend comme paramètre le nom du fichier texte, par exemple : javac Hello.java. Ce processus crée un ou plusiers fichiers de byte-code portant l’extension .class tels Hello.class. Le compilateur n’affiche normalement aucun message : s’il y en a, c’est signe d’erreur dans le texte du programme. 3. Lancer le programme en appelant la machine virtuelle Java, toujours en ligne de commande. Le programmejava prend comme parametre le nom de la classe contenant le Main. Donc ici on tapejavac Hello car on avait déclaré une classe nommée Hello. Le résultat produit sera ici l’affichage du message «Bonjour». Rappel du texte du programme Bonjour.java (vous êtes libres d’augmenter l’originalité littéraire du message affiché) /** Hello: ecrit bonjour */ public class Hello{ public static void main (String [] args) { System.out.println("Bonjour"); } } Exercice 1: Taper, compiler et lancer ce programme. 2 Une suite à la mode La suite de Fibonacci est définie par Φ(0) = 0 Φ(1) = 1 Φ(i + 2) = Φ(i) + Φ(i + 1) Ses premiers termes sont donc 0, 1, 1, 2, 3, 5, 8, 13, 21, 34... Exercice 2: Faire un programme qui calcule et affiche les 30 premiers termes de la suite. Il suffit de déclarer une variable de boucle i et trois variables stockant Φ(i), Φ(i + 1) et Φ(i + 2). Exercice 3: Faire un programme qui calcule et affiche les 30 premiers termes de la suite de Fibonacci... à rebours (en commançant par le plus grand) Deux solutions sont possibles : stockage dans un tableau puis affichage, ou calcul direct 1 3 Des suites imprévisibles Une suite de Syracuse est une suite entière telle que S(i + 1) = 3S(i) + 1 si S(i) est impair S(i + 1) = S(i)/2 si S(i) est pair Une suite de Syracuse est donc totalement déterminée par sa valeur initiale S(0). On remarque que si S(i) = 1 alors S(i + 1) = 4 ; S(i + 2) = 2 ; S(i + 3) = 1 et la suite cycle doncs ur 1,4,2,1,4,2,1... La conjecture de Syracuse est que pour toute valeur initiale positive, il existe un indice où la suite atteint la valeur 1 (et est donc ensuite périodique) Exercice 4: Écrire un programme qui affiche la suite de Syracuse dont la valeur de départ est S(0) = 13 et s’arête à la première occurence de 1. Exercice 5: Écrire un programme qui affiche toutes les suite de Syracuse dont la valeur de départ est comprise entre 1 et 20, là encore en s’arretant à chaque fois au premier 1. Exercice 6: Modifier le programme précédant pour qu’il n’affiche que l’indice du premier 1 de la suite, pour chacune des 20 premières suites. Exercice 7: Enfin modifier le programme pour qu’il affiche pour laquelle de ces 20 suites l’indice 1 est le plus tardivement rencontré (donc la suite où l’on aurait affiché le plus de termes). Essayez ensuite pour les 1000 premières suites. Le résultat était-il prévisible ? 2