SVP URGENT problème en java débutant

Fermé
alex5105 Messages postés 5 Date d'inscription samedi 14 novembre 2009 Statut Membre Dernière intervention 15 novembre 2009 - 14 nov. 2009 à 17:16
alex5105 Messages postés 5 Date d'inscription samedi 14 novembre 2009 Statut Membre Dernière intervention 15 novembre 2009 - 15 nov. 2009 à 14:05
Bonjour a tous,
J'ai un partiel en programmation java la semaine prochaine et aussi un problème de comprehension dans un domaine. Le genre de problème lors de celui ci sera du type:
afficher grâce a une boucle les etoiles suivantes
.........................................*
.......................................***
.....................................*****
J'arrive à le faire sur n colonnes voulues mais je n'arrive pas à incrementer chaque ligne de * etoiles
Merci pour votre aide.


public class tp1
{public static void main(String args[])
{int x=0,c=1;
System.out.println("Donner une valeur");
x=Lire.i();
String et=new String("*"),vide=new String(" "),sr3=new String();
sr3=vide.concat(et);
while(c<=x){
System.out.println(sr3);
c++;
}
}
}
A voir également:

5 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
14 nov. 2009 à 18:40
Salut,
D'après ce que tu montres tu affiche à chaque itération la même variable (sr3) qui ne varie pas dans la boucle, donc chacune des x lignes sont identiques.
Il faut donc que tu t'interroges sur le moyen de "retirer" un espace et "d'ajouter" un étoile à chaque tour.
Retirer et ajouter entre "" car tu auras plus vite fait de recréer pour chaque ligne une suite d'espace et d'étoile....

NB :
En entourant ton code de < code > et </ code > (sans espace) tu conservera l'indentation :
public class tp1{
  public static void main(String args[]){
    int x=0, c=1;
    System.out.println("Donner une valeur");
    x=Lire.i();
    String et=new String("*"), vide=new String(" "), sr3=new String();
    sr3=vide.concat(et);
    while(c<=x){
      System.out.println(sr3);
      c++;
    }
  }
}
0
alex5105 Messages postés 5 Date d'inscription samedi 14 novembre 2009 Statut Membre Dernière intervention 15 novembre 2009
14 nov. 2009 à 23:07
Merci de ta réponse mais en fait je n'est pas compris justement comment il est possible d'incrémenter un string. C'est à dire en gros faire *=*+2; a chaque boucle qui recommence et également de décrémenter le string espace. J'ai déja essayé plusieurs syntaxes mais lors de la compilation on m'affiche plusieurs messages d'erreur.
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
15 nov. 2009 à 11:05
Comme je le disais, il ne faut pas chercher à ajouter ou retirer des caractères à chaque lignes mais plutôt recréer une ligne contenant un certain nombre d'espaces et d'étoiles.
0
alex5105 Messages postés 5 Date d'inscription samedi 14 novembre 2009 Statut Membre Dernière intervention 15 novembre 2009
15 nov. 2009 à 11:32
Oui ca j'ai compris grace a la boucle tant que la boucle sera inferieur à x, le programme recréera une nouvelle ligne.Nos cours sont assez pauvres en informations et j'ai cherché 1 moment sur internet mais je n'arrive pas à trouver la syntaxe qui permet l'incrémentation comme pour un entier. et=et+2; vide=vide-1;
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
15 nov. 2009 à 12:40
Bon voila une piste
String et=new String("*"), vide=new String(" "), laligne=new String();
int espaces = 5;
int etoiles = 2;
for (int c=1 ; c<= espaces; c++){
  laligne = laligne.concat(vide);
}
for (int c=1 ; c<= etoiles; c++){
  laligne = laligne.concat(et);
}
System.out.println(laligne);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alex5105 Messages postés 5 Date d'inscription samedi 14 novembre 2009 Statut Membre Dernière intervention 15 novembre 2009
15 nov. 2009 à 14:05
Ok merci pour le renseignement moi j'étais pas parti sur la même logique.Je pensais pouvoir facilement incrémenter et=et+2 par exemple mais je pense desormais avoir compris.
0