Probleme "programme affichant suiteDeChiffre"
Résolu/Fermé
pcforever01
Messages postés
53
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
2 décembre 2012
-
11 oct. 2011 à 10:01
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 11 oct. 2011 à 22:25
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 11 oct. 2011 à 22:25
A voir également:
- Probleme "programme affichant suiteDeChiffre"
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Sms programmé - Guide
3 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 11/10/2011 à 19:35
Modifié par KX le 11/10/2011 à 19:35
unSurDeux doit renvoyer un résultat de type suiteDeChiffres.
Il faut donc faire return res; à la fin de ta méthode.
Et le res que tu utilises dans le main est en fait le résultat d'un appel à unSurDeux.
Tant que j'y suis, il ne faut pas faire de new à chaque instruction. Par exemple s est un paramètre de ta méthode, si tu fais un new tu écrases la valeur, et de même pour les autres, à chaque tour de boucle tu recréés res et aux effaçant leurs précédentes valeurs !
Remarque : ne connaissant aucun de tes packages personnalisés (objetMathematiques, algorithmes et ordinateur) cette "correction" est purement théorique... En particulier, je ne sais pas si cela fait ce que tu veux.La confiance n'exclut pas le contrôle
Il faut donc faire return res; à la fin de ta méthode.
Et le res que tu utilises dans le main est en fait le résultat d'un appel à unSurDeux.
Tant que j'y suis, il ne faut pas faire de new à chaque instruction. Par exemple s est un paramètre de ta méthode, si tu fais un new tu écrases la valeur, et de même pour les autres, à chaque tour de boucle tu recréés res et aux effaçant leurs précédentes valeurs !
public class espace { public static suiteDeChiffres unSurDeux(suiteDeChiffres s) { suiteDeChiffres aux = new suiteDeChiffres(s); suiteDeChiffres res = new suiteDeChiffres(); while (!aux.estVide()) { res.ajouterLeChiffreDevant(aux.premierChiffre()); aux.enleverLePremierChiffre(); } return res; } public static void main (String[] args) { ecran.afficher("entrer un nombre"); suiteDeChiffres s = clavier.lireUneSuiteDeChiffres(); suiteDeChiffres res = unSurDeux(s); ecran.afficher(res); } }
Remarque : ne connaissant aucun de tes packages personnalisés (objetMathematiques, algorithmes et ordinateur) cette "correction" est purement théorique... En particulier, je ne sais pas si cela fait ce que tu veux.La confiance n'exclut pas le contrôle
pcforever01
Messages postés
53
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
2 décembre 2012
2
11 oct. 2011 à 10:02
11 oct. 2011 à 10:02
ps: c'est en java
Utilisateur anonyme
11 oct. 2011 à 18:39
11 oct. 2011 à 18:39
Salut,
Pour que la variable res soit visible de la méthode main et de la méthode suiteDeChiffres il faudrait qu'elle soit déclarée (en static) au niveau de la classe espace (qu'il serait mieux de nommer Espace...)
Cordialement,
Dan
Pour que la variable res soit visible de la méthode main et de la méthode suiteDeChiffres il faudrait qu'elle soit déclarée (en static) au niveau de la classe espace (qu'il serait mieux de nommer Espace...)
Cordialement,
Dan
11 oct. 2011 à 20:27
Modifié par KX le 11/10/2011 à 20:32
Mais dans la mesure où les packages que tu utilises ne sont pas standards il est impossible de savoir pourquoi cela renvoit null ! Est-ce que tu aurais un lien vers la javadoc de ces bibliothèques ?
11 oct. 2011 à 20:35
11 oct. 2011 à 20:44
11 oct. 2011 à 21:07
La Javadoc c'est une présentation html référençant une information exhaustive de toutes les classes.
Par exemple, la Javadoc de l'API de Java 7 est disponible ici.
Si je me réfère au PDF (page 35 et plus) je ne vois pas d'erreur au niveau de la méthode unSurDeux, sauf que tu recopies toute la chaîne au lieu d'un chiffre sur deux.
Je penserai plutôt à une erreur sur la ligne clavier.lireUneSuiteDeChiffres() mais je n'ai pas trouvé d'info sur cette méthode dans le PDF.