DEUG MIAGE

Structure de Données et Programmation

 

Travaux dirigés

Série n°3


EXERCICE 1 : Nombre mystérieux

EXERCICE 2 : Nombre mystérieux (bis)

EXERCICE 3 : Factoriel

EXERCICE 4 : Fusion

 


EXERCICE 1 : le nombre mystérieux Exo1.java


Ecrire un algorithme qui permette de jouer au "nombre mystérieux". Il s'agit pour l'utilisateur de trouver un nombre entier inconnu dont la valeur est fixée dans le programme (on pourra, par exemple, supposer que la valeur est comprise entre 0 et 100). L'utilisateur propose des solutions tant qu'il n'a pas trouvé. L'application répond TROP PETIT, TROP GRAND, ou BRAVO VOUS AVEZ TROUVE. Le score (nombre d'essais) sera affiché à la fin de la partie.

Traduire cet algorithme en Java (fichier source Exo1.java) et tester votre solution.

 

import unsa.Console ;

public class Test1{

 public static void main (String args[]){

  int inconnu     = (int) (Math.random()*100) ;

  int score       = 0 ;

  int proposition ;

  ???

  System.out.println("BRAVO vous avez trouve en "+score+" coups") ;

  System.exit(0) ;

 }

} 

 


EXERCICE 2 : le nombre mystérieux Exo2.java   Exo2d.java


A) Il s'agit maintenant de concevoir un algorithme pour trouver un nombre entier inconnu. Ce sera à vous (utilisateur) de choisir le nombre à deviner et à le « gardez dans votre tête » (on supposera que la valeur est comprise entre 0 et 100). L’ordinateur propose des solutions tant qu'il n'a pas trouvé. Vous répondez TROP PETIT, TROP GRAND, ou BRAVO TU AS TROUVE. Le score (nombre d'essais) sera affiché à la fin de la partie.

Traduire cet algorithme en Java (fichier source Exo2.java) et tester votre solution.

 

B) Modifier le programme précédant pour passer les valeurs extrêmes en paramètre de la ligne de commande.

 

C) Ecrire un programme qui regroupe les exercices 1 et 2.B. Le programme commencera par demander qui de l’ordinateur et de l’utilisateur devinera le nombre inconnu.

 

D) Reprendre la question C en utilisant deux nouvelles méthodes static void joueurDevine() et static void ordinateurDevine().

 


EXERCICE 3 : Factoriel   Exo3.java


A)    Proposer un algorithme itératif qui calcule le factoriel d’un entier.

B)     Proposer un algorithme récursif qui calcule le factoriel d’un entier.

C)     Pour chacun des types de base byte, short, int et long déterminer le plus grand entier pour lequel on peut calculer son factoriel.

 


EXERCICE 4 : Fusion       Exo4.java


On considère deux tableaux de nombres entiers, le premier contient les 10 premiers nombres positifs paires et le second les 10 premiers nombres positifs impaires. Ecrire un algorithme qui permette de fusionner ces deux tableaux en un unique tableau contenant les 20 premiers nombres entiers positifs. Afficher le résultat de la fusion. Traduire cet algorithme en Java (fichier source Exo4.java) et tester votre solution.

  


Haut du document