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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 11 oct. 2011 à 22:25
Bonjour,
en fait je dois faire un programme qui affiche un chiffre sur deux d'une suite de chiffre
exple 12345 = 24;

mais l'erreur m'indique dans le main que la variable res est inconnue;

voici mon script en question:

import objetMathematique.*;
import algorithmes.*;
import ordinateur.*;

public class espace

{


public static suiteDeChiffres unSurDeux (suiteDeChiffres s)

{ s = new suiteDeChiffres ();
suiteDeChiffres aux = new suiteDeChiffres();
suiteDeChiffres res;



while (!aux.estVide())

{ res = new suiteDeChiffres();
aux = new suiteDeChiffres(s);
res.ajouterLeChiffreDevant(aux.premierChiffre());
aux.enleverLePremierChiffre();
}



}

public static void main (String [] args)

{
ecran.afficher ("entrer un nombre");
suiteDeChiffres unSurDeux = clavier.lireUneSuiteDeChiffres ();
ecran.afficher ( "" + res);


}
}



3 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
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 !

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
2
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 à 20:27
j'ai essayer la methode de KX mais il affiche maintenant "null" :(
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018 > pcforever01 Messages postés 53 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 2 décembre 2012
Modifié par KX le 11/10/2011 à 20:32
S'il affiche quelque chose c'est déjà un début...
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 ?
0
pcforever01 Messages postés 53 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 2 décembre 2012 2 > 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 à 20:35
en fait il est sur mon pc via la fac, à par te l'envoyer par mail, je ne sais pas trop comment faire
0
pcforever01 Messages postés 53 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 2 décembre 2012 2 > 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 à 20:44
en fait tu parles d'une sorte de notice explicative qu'est la javadoc? si c'est ça elle est dans mon cours;
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018 > 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 à 21:07
J'ai trouvé un PDF sur Google, ça a l'air de ressembler à tes bibliothèques : SINF1160-2.pdf
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.
0
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
ps: c'est en java
0
Utilisateur anonyme
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
-1