Enseignements 1ère annéeJava |
Gilles GesquièreIUT de Provence - Site d'ArlesTel.: 04 90 52 24 10 gilles.gesquiere@up.univ-mrs.fr |
Programmation Java- Cours (2004-2005) |
Chapitre 1 : Introduction |
Chapitre 2 : Stocker une information |
Chapitre 3 : Communiquer une information |
Chapitre 4 : Faire des choix |
Chapitre 5 : Faire des répétitions |
Chapitre 6 : Les sous-Programmes |
Chapitre 7 : Les sous-Programmes; Notions avancées |
Chapitre 8 : Les classes et les objets |
Chapitre 9 : Les principes du concept objet |
Chapitre 10 : Collectionner un nombre fixe d'objets |
Chapitre 11 : Collectionner un nombre indéterminé d'objets |
Chapitre 12 : Archivage des données |
Chapitre 13 : Les paquetages |
Chapitre 14 : Notions objets avancées |
Chapitre 15 : Les exceptions |
Chapitre 16 : Interface graphique |
Programmation Java- tp (06-07) |
||||||||||||||
Tp N° 1Exercice 1 : Création, compilation et exécution d'un programme Java
public class Hello {
} Compilez ce programme en tapant la commande : javac Hello.java. Vous obtenez le fichier « Hello.class » Exécutez ce programme en tapant la commande : java Hello
Exercice 2 : Somme des n entiers Ecrire un algorithme, puis un programme qui permet de calculer la somme des n entiers, n étant entré au clavier. Testez différentes solutions (for, while, do while) (Correction 1, Correction 2, Correction 3). Remarque 1 : Pour utiliser les fonctions de saisie au clavier, copiez dans votre répertoire le fichier « Lire.java » se trouvant sur ma page. Il faut ensuite compiler ce fichier afin de pouvoir l'utiliser. Remarque 2 : Vous avez une solution, votre voisin en a une autre. Nous vous en proposons encore une troisième. Il est important de prendre du temps à lire les corrections avec les commentaires et de les tester. Exercice 3 : Suite de Fibonacci La suite de Fibonacci est une suite de termes entiers Fi donnée par : Fi = Fi-2 + Fi-1 pour tout i supérieur ou égal à 2, avec F0 = 1 et F1 = 1. Ainsi : F0 = 1, F1 = 1, F2 = 2, F3 = 3, F4 = 5, F5 = 8, F6 = 13, F7 = 21, ... Ecrire le programme qui permet de calculer Fn, pour n saisi au clavier (Correction) Exercice 4 : Installer Java chez vous. Nous vous conseillons d'installer d'abord Java, puis JCreator (afin de ne pas avoir de problème de liens). Les téléchargements ci-dessus sont pour windows. Vous trouverez une version de java pour Linux sur le site de sun |
||||||||||||||
Tp N° 2Exercice 1 : Nombre premier Par ex : 2, 3, 5, 7, 11 sont premiers. Pour déterminer si un entier a est divisible par un entier b , il faut que le reste (modulo) de la division de a par b soit nul, ce qui s'écrit en java : a%b = = 0 . (Correction) Exercice 2 : Recherche des nombres premiers compris entre 1 et 1000 Exercice 3 : Division entière Par exemple 4 Div 3 = 1; 5 Div 2 = 2. (Correction) |
||||||||||||||
Tp N° 3Exercie 1 : Nombre premier
Exercice 2 : Ecrire un programme qui permet de vérifier qu'un nombre est parfait. Un nombre n est parfait s'il est égal à la somme de ses diviseurs, sauf lui-même. Par exemple : 6 est égal à la somme de ses diviseurs (1, 2, 3) Exercice 3 : Fonction sans paramètre Ecrire un algorithme, puis un programme en Java, qui fait appel à une fonction affiche_bienvenue() que vous écrirez. Cette fonction ne reçoit aucun paramètre et se contente d'afficher « Bienvenue ».
Exercice 4 : Fonction à un paramètre Ecrire un algorithme, puis un programme en Java, demandant dans la fonction main() à l'utilisateur d'entrer un réel. Ce réel est passé en paramètre à une fonction doubler() que vous écrirez, qui multiplie ce réel par 2 et le retourne. Dans la fonction main() , on affichera la valeur retournée par la fonction.
Exercice 4 : Fonction à plusieurs paramètres Ecrire un algorithme, puis un programme en Java, demandant à l'utilisateur d'entrer deux réels. Ces réels sont passés en paramètre à une fonction minimum() qui retourne la plus petite des deux. On affichera la valeur retournée par la fonction.
Exercice 5 : Fonction appelant une autre fonction 5.1 Calcul de factorielle Ecrire un algorithme, puis un programme en Java, demandant à l'utilisateur d'entrer un entier. Cet entier est passé en paramètre à une fonction factorielle() que vous écrirez, qui calcule puis retourne la factorielle de cet entier. On affichera la valeur retournée par la fonction.
5.2 Calcul d'arrangement On souhaite maintenant utiliser cette fonction factorielle() pour écrire une autre fonction, arrangement() . Cette fonction reçoit en paramètre deux entiers n et p . Elle calcule et retourne le nombre d'arrangements de p éléments parmi n différents selon la formule : 5.3 Calcul de combinaison On souhaite utiliser la fonction arrangement() et la fonction factorielle() pour écrire une autre fonction, combinaison() .Cette fonction reçoit en paramètre deux entiers n et p . Elle calcule et retourne le nombre de combinaisons de p éléments parmi n différents selon la formule :
Notes : Soit E un ensemble non vide de n éléments (n est supérieur ou égal à 1). Un arrangement de p éléments de E est une suite ordonnée de p éléments distincts de E (p est supérieur ou égal à 1 et inférieur ou égal à n). Exemple : si p = 2, on a {A, B}, {B, A}, {A, C}, {C, A}, {B, C} et {C, B} Le nombre d'arrangements de p éléments de E est Une combinaison de p éléments de E est une suite de p éléments distincts de E (p est supérieur ou égal à 0 et inférieur ou égal à n). Exemple : si p = 2, on a {A, B}, {A, C} et {B, C} Le nombre de combinaisons de p éléments de E est |
||||||||||||||
TP n°4Exercice 1 : Ecrire un algorithme, puis un programme en Java qui permette de réaliser certaines opérations sur une fonction mathématique :
Exercice 2 : La conjecture de Goldbach veut que tout nombre pair strictement supérieur à 2 soit la somme de deux nombres premiers. Ecrire un programme qui demande un entier à l'utilisateur, vérifie qu'il soit pair (écrire une fonction) et > 2. Cet entier sera passé en paramètre à une fonction qui calculera et affichera les deux nombres premiers dont la somme produit cet entier. Exercice 3 : On souhaite écrire un programme vérifiant si un code de carte bleue est valide. Cet algorithme fait un premier contrôle de validité, en aucun cas il ne dit si la carte est encore valable. Un code de carte bleue est composé de 16 chiffres. Il faut multiplier chaque chiffre de position impaire par 2, puis si le résultat est supérieur à 9 retirer 9, et ajouter cette valeur à un total. Ajouter à ce total les numéros de position paire. Ce résultat doit être un multiple de 10. Ecrire une fonction recevant en paramètre un code à 16 chiffres et retournant une valeur booléenne indiquant si le code est valide ou non. Vous utiliserez une chaine de caractère (String) afin de stocker le numéro de carte bleue. Exercice 4 : Le numéro de sécurité sociale (NIR : Numéro d'Inscription au Répertoire) est un numéro de 13 chiffres suivit d'un code de contrôle de 2 chiffres. Ex : 2 83 09 75 073 015 89
Le code de contrôle sert à vérifier la validité du numéro à 13 chiffres. Il se calcule de la manière suivante : Code = 97 - (numéro_13_chiffres modulo 97) Ex : 89 = 97 – (2830975073015 % 97) 4.1 : Ecrire une fonction recevant le numéro à 13 chiffres ainsi que le code de contrôle, et qui retourne une valeur booléenne indiquant si le code est valide ou non. 4.2 : Ecrire une fonction recevant le numéro à 13 chiffres, qui calcule et retourne le code de contrôle. 4.3 : Ecrire une fonction recevant le numéro à 13 chiffres et affichant si il s'agit d'un homme ou d'une femme, l'année de naissance, le mois de naissance (sous forme littérale), le département et la commune de naissance (chiffres), le numéro d'ordre. |
||||||||||||||
TP n°5Exercice 1: Tableau à une dimension On écrit un programme permettant de suivre l'évolution de la température pour chaque mois de l'année en utilisant un tableau de 12 réels.
Exercice 2 : Tableau à deux dimensions On veut maintenant suivre l'évolution de la température sur plusieurs années. On utilise un tableau à deux dimensions, la première dimension correspondant aux années et la seconde correspondant aux mois.
Exercice 3 : Vector On veut manipuler une liste de noms au moyen de la classe Vector .
|
||||||||||||||
TP n°6Exercice 1 – Ligne de commande Ecrire un programme permettant d'afficher tous les paramètres de la ligne de commande (contenus dans le tableau String[] args , paramètre de la fonction main ). Ex : si pour exécuter le programme on tape : java programme val1 123 val2 Alors le tableau args contiendra les 3 chaînes de caractères «val1 », « 123 » et « val2 ». (Solution)
Exercice 2 – Classes et objets (éléments de solutions dans le répertoire TP06)
|
||||||||||||||
TP n°7Exercice : Classes et objets On veut écrire un logiciel destiné à gérer un ensemble de taxis appartenant à une société.
Voici des éléments de corrections |
||||||||||||||
TP n°8Des informations sur l'héritage peuvent être trouvées sur les transparents du chapitre 09 ci-dessus. Exercice : On veut écrire un programme de gestion de médiathèque. Dans cette médiathèque, on pourra trouver deux types de médias : des livres et des DVD.
Voici des éléments de corrections
|
||||||||||||||
TP N°9 (en option)? Le but de ce TP est de programmer le jeu du morpion . Ce jeu se joue sur un damier 3x3 de 9 cases. Chaque joueur pose successivement ses pions, X ou O, sur les cases du damiers. Le premier joueur qui aligne trois pions, horizontalement, verticalement ou en diagonale, a gagné. Pour arriver à écrire ce programme assez complexe, il faut décomposer le problème en de nombreuses fonctions : Affichage du damier
7 8 9 4 5 6 1 2 3
Pose d'un pion
Gagnant
où gagnant est une variable de type char , qui aura été initialisée par exemple à ‘-‘ , signifiant « match nul ». ? Penser à la présentation du jeu : Afficher un titre (par exemple « JEU DU MORPION ») au début du jeu. A la fin de la partie, indiquer quel joueur a gagné, ou bien « match nul ».
Match comportant plusieurs parties ? Pour ceux qui auront fini le jeu du morpion, on se propose d'améliorer le programme pour pouvoir jouer un match en plusieurs parties : On demandera tout d'abord en combien de parties on veut jouer le match. Puis, le premier joueur est tiré au hasard. Ensuite, pour les parties suivantes, on alterne le joueur qui commence. Le gagnant est celui qui a gagné le plus grand nombre de parties.
Copier/coller la fonction main précédente, et la renommer char PartieMorpion(char premier) . Cette fonction prend comme argument le joueur qui doit jouer en premier, et renvoie le joueur gagnant. Ecrire une fonction char PartieAleatoire( char premier ) qui a les même entrées/sorties que la précédente, mais qui tire simplement le gagnant au hasard. Attention, il peut y avoir match nul, et le gagnant est donc 'X' , 'O' ou '-' . Ecrire la fonction main qui permet de joueur un match en n parties. Pour tester l'algorithme du match, on pourra utiliser la fonction PartieAleatoire , ce qui est beaucoup plus rapide que de joueur une partie de morpion !
|
Derniére modification : mardi 19/12/06 8:38 | Envoyez vos commentaires |