Aide en java
Hors ligneMalicia Le 23/03/2008 à 10:23 Profil de Malicia Configuration de Malicia

Salut tous le monde, voila, est ce que vous pouvez m'aider a trouver la solution pour réaliser ceci merci bcp

voila je dois a l'aide d'une méthode et de la boucle for réaliser ceci :

exemple je rentre 5

j'obtient

*****
* *
* *
* *
*****

( bouh la présentation marche pas quand je poste :( en gros il s'agit d'un carré avec l'intérieur tout vide )

j'ai trouvé le programme pour le faire avec le carré plein, le voila

import java.util.*;

class Ligne{

static void triangle2(int x)
{
for (int i=0;i<x;i++)
{System.out.println("");
for (int y=1;y<x;y++)
{
System.out.print("*");}
}
}

public static void main(String[] argv){
Scanner sc = new Scanner(System.in);
System.out.print("Entrer une valeur : ");
int x = sc.nextInt();
System.out.println("valeur de x = "+x);
triangle2(x);
System.out.println(" ");
}
}

Par la suite je dois aussi réalisé un triangle comme ça toujours avec 5 :

*
**
***
****
*****

mais j'ai pas trop d'idée non plus :s

et apres dans un autre exo je dois pouvoir afficher toujours avec les méthodes et si je prends 5 un triangle comme
ceci

*
**
***
****
*****

( ici non plus la mise en page marche pas, il s'agit d'un carré qui comment par une étoile, en dessous il y a 2 étoile mais bien centrées, puis 3 bien centrées, en gros ça fait un sorte de pyramide, c'est plus simple dit comme ça :) )

Merci bcp d'avance pour votre aide :D
Hors ligneAnthony Le 23/03/2008 à 10:39 Profil de Anthony Configuration de Anthony

Admin
Salut,

public void mamethode(int nb)
{
        int i;
        String chaine = "";

            for(i = 0; i < nb; i ++)
            {
                  chaine +="*";
            }

            System.out.println(chaine);

            for(i = 2; i < nb; i ++)
            {
                  System.out.println("**");
            }

            System.out.println(chaine);
}
--

Hors ligneMalicia Le 23/03/2008 à 10:45 Profil de Malicia Configuration de Malicia

pourrais tu m'expliquer comment tu fais car je ne comprends pas trés bien merci
Hors ligneAnthony Le 23/03/2008 à 11:08 Profil de Anthony Configuration de Anthony

Admin
Bah si j'ai bien compris ce que tu dois afficher c'est deux lignes avec cinq étoiles (donc avec "nb" étoiles, ici on prendra nb = 5). Pour générer ces deux lignes, je concatène le nombre d'étoiles dans une chaîne avec une première boucle for. J'aurais donc une variable qui va contenir *****

Je fais un System.out.println pour l'afficher, ensuite un deuxième for qui va de i=2 et non pas i=0 car on aura n-2 lignes contenant 2 étoiles, et j'affiche ça dans la boucle for directement.

Ensuite un System.out.println() pour réafficher la variable "chaine" pour faire la dernière ligne.
--

Hors ligneMalicia Le 23/03/2008 à 11:14 Profil de Malicia Configuration de Malicia

j'ai tjr pas compris, je ne vois pas pourquoi on se sert de chaine ? et pourquoi après quand i=2 on doit faire apparaitre deux étoiles ? on parle du carré ou du triangle ici ? par ailleurs j'arrive pas a compilé :s merci bcp pour ton aide en tout cas ^^
Hors ligneAnthony Le 23/03/2008 à 12:18 Profil de Anthony Configuration de Anthony

Admin
Je t'ai donné la méthode pour le premier truc, pour compiler c'est normal il faut mettre ta méthode dans ton fichier avec une méthode main() et appeler la méthode dans la méthode main()

Mon but n'est pas de faire tes exos mais de te faire comprendre comment on peut faire en t'expliquant la solution du premier

Je me sers de la variable chaîne pour ne pas refaire la même boucle pour la dernière ligne, vu que la dernière ligne est la même que la première, et cette première ligne est générée à l'aide d'une boucle :)
--

Hors ligneMalicia Le 23/03/2008 à 12:34 Profil de Malicia Configuration de Malicia

voila je l'ai inséré dans mon code, j'ai compris pour la premiere et la derniere ligne d'étoile, mais je ne comprends tjr pas pour le i partant de 2, quand j'essaye de le compilé ça me met = non-static methode(int) cannot be referenced from a static context methode(x) et je comprends pas d'ou ça vient ? merci d'avance

import java.util.*;

class Ligne{

  public void methode(int x)
{
        int i;
        String chaine = ""; // création d'une ligne complete d'étoile

            for(i = 0; i < x; i ++)
            {
                  chaine +="*";
            }

            System.out.println(chaine); // j'affiche la ligne complete d'étoile

            for(i = 2; i < x; i ++)
            {
                  System.out.println("**");
            }

            System.out.println(chaine);// ligne complete d'étoile
}


    public static void main(String[] argv){
     Scanner sc = new Scanner(System.in);
     System.out.print("Entrer une valeur : ");
     int x = sc.nextInt();
     System.out.println("valeur de x = "+x);
       methode(x);
       System.out.println(" ");
    }
}
Hors ligneAnthony Le 23/03/2008 à 14:16 Profil de Anthony Configuration de Anthony

Admin
Ca te marque cette erreur car ça n'est pas une méthode statique, il faut donc que tu crées ton objet avant d'appeler la méthode (avec objet.methode).

Pour ce qui est du i partant de 2, je ne le fais pas partir de 0 car on crée deux lignes de moins (vu qu'il y a une ligne au début et une à la fin, ça fait deux lignes en moins à créer).
--

Hors ligneRaph707 Le 05/05/2008 à 21:16 Profil de Raph707 Configuration de Raph707

Malicia a écrit :
Salut tous le monde, voila, est ce que vous pouvez m'aider a trouver la solution pour réaliser ceci merci bcp

voila je dois a l'aide d'une méthode et de la boucle for réaliser ceci :

exemple je rentre 5

j'obtient

*****
* *
* *
* *
*****

( bouh la présentation marche pas quand je poste :( en gros il s'agit d'un carré avec l'intérieur tout vide )

j'ai trouvé le programme pour le faire avec le carré plein, le voila

import java.util.*;

class Ligne{

static void triangle2(int x)
{
for (int i=0;i<x;i++)
{System.out.println("");
for (int y=1;y<x;y++)
{
System.out.print("*");}
}
}

public static void main(String[] argv){
Scanner sc = new Scanner(System.in);
System.out.print("Entrer une valeur : ");
int x = sc.nextInt();
System.out.println("valeur de x = "+x);
triangle2(x);
System.out.println(" ");
}
}

Par la suite je dois aussi réalisé un triangle comme ça toujours avec 5 :

*
**
***
****
*****

mais j'ai pas trop d'idée non plus :s

et apres dans un autre exo je dois pouvoir afficher toujours avec les méthodes et si je prends 5 un triangle comme
ceci

*
**
***
****
*****

( ici non plus la mise en page marche pas, il s'agit d'un carré qui comment par une étoile, en dessous il y a 2 étoile mais bien centrées, puis 3 bien centrées, en gros ça fait un sorte de pyramide, c'est plus simple dit comme ça :) )

Merci bcp d'avance pour votre aide :D


bon pour toi :

EDIT : pas de spam
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels