Malicia |
Le 23/03/2008 à 10:23 |
|
|
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 |
Anthony |
Le 23/03/2008 à 10:39 |
|
 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);
} -- 
|
Malicia |
Le 23/03/2008 à 10:45 |
|
|
pourrais tu m'expliquer comment tu fais car je ne comprends pas trés bien merci |
Anthony |
Le 23/03/2008 à 11:08 |
|
 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. -- 
|
Malicia |
Le 23/03/2008 à 11:14 |
|
|
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 ^^ |
Anthony |
Le 23/03/2008 à 12:18 |
|
 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 :) -- 
|
Malicia |
Le 23/03/2008 à 12:34 |
|
|
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(" "); } } |
Anthony |
Le 23/03/2008 à 14:16 |
|
 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). -- 
|
Raph707 |
Le 05/05/2008 à 21:16 |
|
|
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 |