IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Problème avec le Crible d'Eratosthène. :s


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut Problème avec le Crible d'Eratosthène. :s
    Bonjour à tous.
    J'ai un petit problème avec la compilation de ce petit programme (qui vous semblera bien basique ^^). Etant un novice, je m'en remet à votre aide =)

    Merci d'avance pour l'aide.

    j'ai essayé plusieurs methodes pour retourner les nombres premiers recherchés: retourner le tableau booleen completement et faire son analyse dans le programme principal... mais je n'ai pas réussi à retourner le tableau =( donc ensuite j'ai essayé de faire l'analyse du tableau directement dans mon sous programme tout en retournant les valeurs recherchées mais j'ai toujours une erreur:

    Eratosthene.java:18: missing return statement
    }
    ^
    1 error
    Voici le code...
    PS: je tiens à préciser que j'utilise la librairie TextWindow...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public class Eratosthene {
    	public static int premiers(int n) {
    		boolean t[] = new boolean[n];
    		t[0] = false;
    		t[1] = false;
    		for (int i=2;i<=n;i++)
    			t[i] = true;
    		for (int i=2;i*i<=n;i++) {
    			if (t[i]=true) {
    				for (int j=i*i;j<=n;i++)
    					t[j] = false;
    			}
    		}
    		for (int i=2;i<=n;i++) {
    			if (t[i]=true) 
    				return i;
    		}
    	}
    	public static void main(String[] args) {
    		TextWindow.printLine("Donnez un entier positif");
    		int n = TextWindow.readInt();
    		TextWindow.printLine(premiers(n));
    	}
    }
    je pense que mon programme est loin d'etre le programme idéal, c'est pourquoi je viens vous voir =D

    Merci d'avance
    Amicalement,

    Crunsky
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Par défaut
    tu dois obligatoirement retourner quelque chose lorsque ta méthode n'est pas défini avec void, dans ton tu ne retournes quelque chose que lors d'une condition, ce qui fait que si celle-ci n'est jamais respecté, jamais tu ne retourneras quelque chose.

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    Daccord, merci pour la réponse.

    Deuxieme question ^^:
    comment puis je retourner le tableau booleen ? :s je sais pas si vous voyez ce que je veux dire, ni si c'est possible mais j'aimerais faire un truc dans ce genre là ^^:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    import static java.lang.Math.*;
     
    public class Eratosthene {
    	public static int premiers(int n) {
    		boolean t[] = new boolean[n];
    		t[0] = false;
    		t[1] = false;
    		for (int i=2;i<=n;i++)
    			t[i] = true;
    		for (int i=2;i<=sqrt(n);i++) {
    			if (t[i]=true) {
    				for (int j=i*i;j<=n;i++)
    					t[j] = false;
    			}
    		}
    		return (t[]);
    	}
     
    	public static void main(String[] args) {
    		TextWindow.printLine("Donnez un entier positif");
    		int n = TextWindow.readInt();
    		boolean t[];
    		premiers(n);
    		for (int i=2;i<=n;i++) {
    			if (t[i]=true)
    				TextWindow.printLine(i);
    		}
    	}
    }
    et j'obtiens cette erreur ==>

    Eratosthene_2.java:16: illegal start of expression
    return (t[]);
    ^
    1 error
    je pense bien que l'erreur viens de "return (t[]);" parce que j'ai mis ça sans aucune conviction, en essayant mais j'avoue que je ne voit pas du tout comment faire =)

    Merci d'avance pour votre aide.

    Crunsky

  4. #4
    Membre chevronné Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public static boolean[] premiers(int n) {
    boolean[] t = new boolean[n];
    //code
    return t;
    }

  5. #5
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Il y avait eut une discussion sur le crible d'Heratostène ici.

    Une petite modification te permettra de retourner le tableau de booleen.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo