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

avec Java Discussion :

[Debutant] Méthode static


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 10
    Points
    10
    Par défaut [Debutant] Méthode static
    Bonjour,

    Afin d’écrire un programme de représentation de mots-croisés, j'ai besoin d'une méthode qui renvoie la position du debut d'un mot par rapport à un caractère c qui en représente une étoile ou une case noire. Mais j'ai un code très incohérent et je souhaite une aide pour l'améliorer. Merci d'avance à celui qui voudra bien m'aider.

    Le code:
    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
     
    static int positionMot(char [][]tab, int debut, char c){
    int pos = debut;
    for(int i = debut; i < tab.length; i++){
    	for(int j = debut; j < tab[i].length; j++){
    		if(tab[i][j]==tab[pos] && tab[pos]<(tab[i][j]==c)){
    			pos=i;
    		}
                              else if(tab[i][j]==tab[pos] && tab[pos]>(tab[i][j]==c)){
    			pos=i+1;
    				}
    		}
    	}
    	return pos;
    }

  2. #2
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    euh je capte pas la logique de ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[pos]<(tab[i][j]==c)

    tu compares la valeur d'un tableau avec un test logique ? ( docn au pire 0 ou 1 )

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(tab[i][j]==tab[pos] && tab[pos]<(tab[i][j]==c)){
    Je ne comprends pas du tout cette ligne :

    tab est un tableau de caratères à double entrée.

    tab[i][j] est un caractère, tab[pos] est un tableau de caractères à une entrée. Comment peux tu comparer les deux ?

    (tab[i][j]==c) va te donner un booléen et tu le compare à un tableau de caractères à une entrée. Même question.

  4. #4
    Membre habitué Avatar de fomazou
    Inscrit en
    Mars 2004
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 220
    Points : 151
    Points
    151
    Par défaut
    difficile de cerner ce que tu veux, mais le bout de code est déja pas mal incohérent comme dise les autres.
    tu as un tableau de dim 2 donc t'as besoins de deux int pour repérer la position d'un élément du tableau.
    de plus, dans les paramètres formels de ta méthode que contient la variable debut............
    bref soit un peu plus explicite. et tu n'a pas besoin du mots clé static.
    une méthode static est le point d'entré du programme....

  5. #5
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    comme je te le disais hier avant que ton message soit supprimé ...
    le plus simple serait que tu nous donnes un énoncé beaucoup plus clair ce ce que tu veux faire .... parce que avec cette phrase :

    Citation Envoyé par wxwally
    méthode qui renvoie la position du debut d'un mot par rapport à un caractère c qui en représente une étoile ou une case noire
    c'est impossible ...

    pour ta méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int positionMot(char [][]tab, int debut, char c)
    1. que représente début ?
    2. c c'est ce que tu cherches comme point de départ pour la recherche ?
    3. c'est quoi la différence entre une étoile et une case noire ?
    4. qu'appelles tu la position de mot par rapport à c ? un truc style +1, -1 (ligne suivante, colonne d'avant ?
    5. où est défini le mot dont tu veux connaitre la position par rapport à c ?
    6. si le mot est horizontal ou vertical, ça doit jouer non ?


    Essaie de décomposer en plusieurs sous problème. Je propose un début pour trouver l'emplacement de "c" mais comme je n'ai pas compris grand chose ... ça ne doit pas être la solution.

    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
    // on renvoie les "coordonnees" de c dans un tableau ... :?
    private int[] getPosition(char[][] tab, char c) {
    		int x = 0, y = 0;
    		boolean found = false;
    		for (char[] ligne : tab) {
    			for (char colonne : ligne) {
    				if(colonne == c) {
    					found = true;
    					break;
    				}
    				y++;	
    			}
    			x++;
    		}
    		if(!found) {x=-1; y=-1;}
    		return new int[] {x,y};
    bref, sans plus d'explication on peut pas aller bien loin ...

  6. #6
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    une méthode static est le point d'entré du programme....
    ???
    La méthode main est le point d'entré du programme.
    Le mot-clé static n'a rien à voir là dedans.
    Une méthode static d'une classe est une méthode qu'on peut appeler sans utiliser une référence à un objet de cette classe et donc même si on a pas créé d'objet de cette classe.
    Elle est donc accessible dès le lancement du programme, ce qui explique que la méthode main doive être static.

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/04/2007, 17h08
  2. [FLASH MX2004] [AS2] Classe méthodes static
    Par bolo dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 16/12/2004, 18h26
  3. [debutant] Méthode static
    Par iago dans le forum Langage
    Réponses: 12
    Dernier message: 25/11/2004, 17h09
  4. thread et méthodes static
    Par sylpichard dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 17h12
  5. [Debutant] Méthodes numériques
    Par griffu01 dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 24/05/2004, 21h21

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