Exercice java

Fermé
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 - Modifié par TheRogerFederer le 3/03/2016 à 11:25
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 - 10 mars 2016 à 10:00
Bonjour, je requiert votre aide sur un exercice car je ne comprends pas trop.......

Énoncé :

Vous avez à votre disposition la classe suivante :

classe Assert
public à portée de classe :
 // affiche le message d’erreur si la proposition est fausse
 // ou rien si la proposition est vraie
 estVrai(proposition : booléen, messageErreur : chaîne) 



Vous avez écrit en Java la fonction suivante qui doit permettre de convertir un objet en Integer. Le but est de retourner 0 si l’objet est null quel que soit son type, ou s’il n’est pas de type Integer ou String. Dans le cas d’un objet de type Integer, il est retourné sans changement. Dans le cas d’un objet de type String, une tentative de conversion en Integer est faite (avec Integer.parseInt qui tente cette conversion). Si la conversion de String en Integer n’est pas possible, il faut retourner 0 (le catch s’exécute si la conversion n’est pas possible).

public static Integer convertToInteger(Object unObjet) {
if (unObjet instanceof Integer) {
 return (Integer)unObjet ;
}
if (unObjet instanceof String) {
 try {
 Integer i = Integer.parseInt((String)unObjet);
 return i ;
 } catch(NumberFormatException e) {
 return 0 ;
 }
}
return 0 ;
} 


1. Écrire toutes les lignes de tests nécessaires pour assurer la couverture de code, en utilisant la classe Assert.

2. Préciser les éventuels messages obtenus lors des tests précédents, identifier les problèmes et donner une nouvelle version de la fonction.


Pour la 1) je sais qu'il faut utiliser Assert comme dis dans l'énoncé comme ceci :

Assert.estVrai(convertToInteger(...) = "...", "erreur pour ...") mais je ne vois pas quoi mettre à la place des pointillés ?? Pour convertToInteger(...), peut-être objet mais je ne sais pas trop.

la question 2) dépend de la question 1) donc je ne peut rien en dire pour le moment....
A voir également:

3 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
3 mars 2016 à 10:55
Bonjour,

Comme tu le sais CCM ne fait pas les devoirs et exercices... Il est toléré que tu proposes tes propres démarches à la critique et aux suggestions des autres.
0
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 1
3 mars 2016 à 11:20
C'est ce que j'ai fais !! J'ai mis un début de réponse dans la question 1 mais je ne vois pas quoi mettre dans les pointillés, je ne vais pas mettre n'importe quoi pour dire "voilà, j'ai mis qqch pouvons nous regarder ensemble ?"

Je veux juste des éléments de réponse............., un début de proposition, une orientation ??
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 325
3 mars 2016 à 14:13
C'est bien... Un début, certes, mais vraiment court, tu sembles attendre qu'on te dise quoi faire de ces pointillés. Tu ne vois pas quoi y mettre, mais as-tu fait des tests ? Avec quels résultats (erreur, vide,...) ?
0
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 1 > Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023
3 mars 2016 à 14:52
Je voudrais bien mais avec quoi je test comme programme ? Car c'est de l'écris et quand je serai en situation de devoir je n'aurais pas de programme à ma dispo pour tester malheureusement. Non effectivement je ne vois pas trop..... Disons que la matière viens de commencer, j'ai bien lu le cours mais je le trouve un peu trop succinct........... dans le premier pointillé j'avais pensé à Objet mais après je vois pas trop.............!! Parce qu'on attend des exemples d'objets mais lesquelles ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
3 mars 2016 à 19:11
j'ai bien lu le cours mais je le trouve un peu trop succinct
Aucun cours ne pourra t'apprendre tout Java, il faut aller chercher la documentation sur internet pour connaître chaque subtilité (il ne s'agit pas de les apprendre par coeur).

Pour compléter ton cours tu peux regarder le tutoriel officiel de Oracle
https://docs.oracle.com/javase/tutorial/java/index.html

quand je serai en situation de devoir je n'aurais pas de programme à ma dispo pour tester
Tu ne pourras pas apprendre à programmer si tu ne programmes pas.
La théorie en informatique c'est très utile (je ne vais pas cracher dessus j'adore ça) mais à un moment il faut mettre les mains dans le cambouis...
0
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 1
3 mars 2016 à 20:05
Je me doute bien mais ceci fait partie d'un cours ou la pratique ne porte absolument pas sur java mais plutôt sur le html et la création de sites locaux........ Rien sur java
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 3/03/2016 à 20:17
De toute façon, le code en Java on te le fournit... la seule chose qu'on te demande c'est de faire les jeux de tests pour vérifier que ça fonctionne.
Je ne sais pas comment fonctionne une télé, ça ne m'empêche pas de savoir que quand j'appuie sur la télécommande elle est censée s'allumer !

C'est un peu ça le but de ton exercice, tu as un code (à la limite peu importe que tu saches ou non comment il fonctionne), on te demandes de vérifier qu'il fait ce que t'on demande.

Assert.estVrai( somme(1,2) = 3, "erreur pour la somme 1+2=3")
Assert.estVrai( appuyerTélécommande("bouton marche") = laTeleEstAllumée(), "erreur la télé ne s'allume pas avec la télécommande")

On appelle ça faire des tests unitaires...
0
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 1
Modifié par TheRogerFederer le 3/03/2016 à 23:40
Très bien mais ça ne m'aide pas beaucoup pour la compréhension du tout..............! quand tu met :
Assert.estVrai( somme(1,2) = 3, "erreur pour la somme 1+2=3")


pourquoi on met la phrase "erreur pour la somme 1+2=3" alors que c'est vrai ??

de même pour :
Assert.estVrai( appuyerTélécommande("bouton marche") = laTeleEstAllumée(), "erreur la télé ne s'allume pas avec la télécommande")


Pourquoi ?? Puisque la télé est censé être allumé grâce au bouton marche, pourquoi cela renverrai une erreur ??
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
4 mars 2016 à 09:16
pourquoi on met la phrase "erreur pour la somme 1+2=3" alors que c'est vrai ??

C'est vrai uniquement si la fonction somme est bien codée... Si
somme(1, 2)
ne renvoie pas 3 il faut afficher une erreur.

Le but d'un test unitaire est de vérifier que le code répond bien au besoin dans tout les cas.
0
TheRogerFederer Messages postés 256 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 10 mars 2016 1
4 mars 2016 à 09:19
D'accord mais quand on me dis de faire la trace à la main comment je peux faire pour savoir si la fonction est bien codé et qu'elle va renvoyer ce qu'on attend d'elle ? Tout simplement comment faire pour savoir si elle fonctionne ?
0