DEUG MIAGE

Structure de Données et Programmation

 

Travaux dirigés

Série n°2


This document is the API specification for the Java 2 Platform, Standard Edition, version 1.3.1

This document is the API specification for the Java 2 Platform, Standard Edition, version 1.4.2

Ce sujet est fortement inspiré des feuilles de TD du tronc commun Informatique


EXERCICE 1 : Hello !

EXERCICE 2 : Calculer …

EXERCICE 3 : Recopier …

 


EXERCICE 1 : Hello !  (solution voir cours)


Commencez par créer dans votre répertoire courant, le répertoire JAVA, puis allez dans ce répertoire. Ensuite créer le répertoire SERIE2 puis aller dans ce répertoire.

$ cd ~

$ mkdir JAVA

$ cd JAVA

$ mkdir SERIE2

$ cd SERIE2

$ pwd

~/JAVA/SERIE2

 

Maintenant, copiez le programme ci-dessous dans le fichier Test2.java dans votre répertoire SERIE2

 

import java.io.*;

public class Test1 {

public static void main(String[] args) {

System.out.println("HELLO"); // ici on affiche simplement la chaîne « HELLO »

}

}

Vous pouvez maintenant compiler ce programme source avec javac

$ javac Test1.java

Vérifier si le fichier Test1.class a bien été généré

$ ls Test1.*

puis lexécuter Test1 avec java.

$ java Test1

On voit qu'il affiche HELLO

 

a)        On déclare dans la méthode main une variable nom de type String. Compléter le code suivant :

public static void main(String[] args) {

String nom;

nom = "Dupond";

System.out.println("Hello, mon nom est" ???);

}

 

b)      Ecrire un programme qui déclare deux variables, nom et prenom, qui seront initialisées avec vos propres nom et prénom et qui affiche votre nom et votre prénom sur la première ligne puis votre prénom et votre nom sur la seconde ligne.

$ java Test1

Pierre Dupond

Dupond pierre

 

c)      Modifier le programme pour afficher la chaîne « HELLO » puis chacun des noms passés en argument de la ligne de commande.

$ java Test1 Toto Titi Tata

HELLO A TOUS LES 3 :

Toto Titi Tata

 


EXERCICE 2 : Calculer … Test2.java


2.1   Compléter le programme suivant pour que le résultat ait un sens.

import java.util.Random;

public class Test2 {

public static void main (String[ ] args) {

int premier; int second ; int resultat;

premier =2 ; second = 3 ; resulat = ???;

System.out.println(premier + " x " + second + " = " + resultat) ;

}

}

 

2.2   Modifier le programme pour saisir directement sur la ligne de commande les valeurs des variables premier et second. On pourra utiliser la méthode int parseInt(String) de la classe Integer (Consulter l’API java).

 

2.3   Modifier le programme en initialisant les trois variables lors de leur déclaration. Pour premier et second, vous utiliserez la méthode readInt(String) de la classe Console qui permet de lire un nombre entier au clavier.

Attention :  vous devez créer un répertoire unsa et copier le fichier Console.class dans ce répertoire pour pouvoir appeler la méthode readInt(String).

 

2.4   Les opérandes seront maintenant générées automatiquement par le programme de façon aléatoire. Pour générer un nombre aléatoire vous pouvez utiliser la méthode random() de la classe Math (Consulter l’API java).

 

2.5   Vous allez maintenant rendre votre programme interactif. Après avoir afficher la multiplication à effectuer, on demandera à l’utilisateur de proposer sa réponse. Déclarer une nouvelle variable entière réponse. Si la réponse est correcte, afficher par exemple 3 x 7 = 21 : bonne réponse ! sinon, afficher 3 x 7 = 21 : 23 est faux !

 

2.6   Utiliser une nouvelle variable operation pour vous éviter d’évaluer plusieurs fois l’expression  premier + " x " + second + " = "

 

2.7   Modifier le programme pour permettre à l’utilisateur d’effectuer plusieurs multiplications.

 

2.8   Pour mesure la vitesse de calcul de l’utilisateur, on veut afficher le temps mis pour effectuer le calcul (durée entre l’affichage l’opération et la réponse). On pourra utiliser la méthode currentTimeMillis() de la classe System (Consulter l’API java). La durée sera affichée en secondes.

 


EXERCICE 3 : Recopier … (solution voir cours)


3.1   Ecrire un programme qui parcourt une String, copiant les caractères dans un buffer jusqu'à rencontrer la lettre 'g'. (le caractère ‘g’ n’est pas recopié)

 

3.2   Ecrire un programme qui parcourt une String, copiant les caractères dans un buffer jusqu'à rencontrer la lettre 'g'. (le caractère ‘g’ est recopié)

 

 

 

 


Haut du document