Bonjour,
Je suis débutant et je voudais savoir comment on fait pour dessiner un Z en *
Sachant qu'il faut tenir compte du nombre de ligne...
Merci d'avance
Version imprimable
Bonjour,
Je suis débutant et je voudais savoir comment on fait pour dessiner un Z en *
Sachant qu'il faut tenir compte du nombre de ligne...
Merci d'avance
Bonjour, l'écrire où? sur une interface swing, JSF, dans un fichier?
Je pense que c'est une sortie console. Un classique des exercices d'algo.
a mon avis c'est du ascii art.
le plus simple est de definit soit meme la matrice des caracteres a afficher.
La generation automatique en fonction un width/height dynamique est plus chaude.
Mais sur le principe, il faut diviser le nombre de colonnes par le nombre de lignes et tu aura le nombre de caracteres par ligne a ecrire (en decalage bien sur) pour afficher le "/" pour les barres horizontale, je te laisse faire c'est simple ;)
oui c'est un exercice qui est dans mon livre mais je ne trouve pas la solution.
Je suis un débutant qui essaye d'apprendre rapidement.
merci du conseil pour les colonnes je vais essayer.
Il faut obtenir cela par exemple:
****
*
****
Sur quoi tu bloque ?
Et bien je sais l'écrire en dur :
mais après pour utiliser avec la classe:Code:
1
2
3
4
5
6
7
8
9 public class Z { public static void main (String[]args){ System.out.println("*****"); System.out.println(" * "); System.out.println(" * "); System.out.println(" * "); System.out.println("*****"); ecrireZ("*", 10);
j'ai du mal je vois pas le fonctionnement.Code:
1
2
3
4 public static void ecrireZ(String c, int taille){ String s = ; return s }
.....
Désolé 19cmos83
je débute faut toujours une première fois !!
non non, pas du tout, je t'avais ecris ca au départ ...
Citation:
Voila, si tu veux une solution cassecou.
J'avais mal compris le problème.Code:
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
31
32
33 import java.io.*; public class test{ //Classe Interne qui va te permettre de pouvoir saisir un truc dans ta console public class ReadLine{ public String read(){ BufferedReader buf = new BufferedReader( new InputStreamReader( System.in ) ); String str = null; System.out.print("Tapez une lettre : "); try{ str = buf.readLine(); //Pour une ligne }catch (IOException ex){ ex.printStackTrace(); } return str; } } public static void main(String args[]){ test objTest = new test(); ReadLine lecteur = objTest. new ReadLine(); String str = lecteur.read(); if(str.equals("z")){ str = "*"; System.out.print("Lettre Tapez : " + str); } else System.out.print("Lettre Tapez : " + str); } }
Et nous avons tous commencé par les bases et les petits exos consoles, pas de honte à avoir.
@+.
Merci !!
Au moins j'ai une reponse pour comprendre comment faire
c'est surper sympa de ta part
merci !!:D
Sinon vous me conseillé quoi pour apprendre le plus vite possible sachant que j'ai 8h par jour à consacrer à Java !
Je dois faire tous les tutoriaux ??
Combien d'heure avant de se considérer comme niveau moyen ?
Salut
et qui ne passe pas par ce stade la première fois, ils nous cassent la tête avec des trucs pareils mais je trouve amusant
dans ce genre d'exercice il faut utiliser des tableau et regarder bien la relation qui existe entre les indices. (avec un petit dessin sur papier)
Voici une solution :
Bon apprentissage :)Code:
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
31
32
33
34
35
36
37 public class Z { public static void ecrire(char s , int taille) { for (int i = 0 ; i < taille ; i++) { for (int j = 0 ; j < taille ; j++) { if (( i == 0) || (i == taille -1)) { System.out.print(s); } else { if((i+j) == taille -1) { System.out.print(s); } else { System.out.print(" "); } } } System.out.println(); } } public static void main(String[] args) { ecrire('*',10); System.out.println(); } }
Citation:
Combien d'heure avant de se considérer comme niveau moyen ?
Si vous cherchez à maîtriser des techniques ou a influencer des personnes, votre but est limité. Mais si votre but est l'univers, alors il est sans limite.
La voie du guerrier:Iwata Ikkusai
« L’objectif de l’entraînement est de réduire la lenteur, de renforcer le corps et de polir l’esprit. »
La voie du guerrier:Ueshiba Morihei
« Si tu t'entraînes 100 jours alors tu ne seras sur la voie du Disciple, mais si tu t'entraînes 1000 jours alors, tu seras qu'à ce moment là, devant le pied de la porte des Maîtres, et si tu t'entraînes 10.000 jours alors tu ne seras qu'un Disciple des Maîtres ... . »
La voie du guerrier:inconnu
;)
pour java, 1 an c'est bon.
Merci pour vos réponse
Salut
C'est toi qui va dire au système où mettre les *
Voici une explication de mon code
imagine tu veux remplir un tableau de taille i par j ( i lignes et j colonnes) alors tu fais un dessin sur une feuille et tu y mes le Z en étoiles bien sur, tu vas remarquer que :
la première ligne va contenir des étoiles. (1)
la dernière ligne aussi. (2)
la diagonale secondaire (/) aussi (3)
et de là tu dégages une relation entre i et j dans et tu fais une boucle.
prenons un exemple de tableau 5 par 5
si on écrit
Les deux premières sont facilesCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 for (int i = 0 ; i < 5 ; i++) { for (int j = 0 ; j < 5 ; j++) { System.out.print('*'); } System.out.print(); // sauter une ligne à chaque changement de i } l'affichage va être (j'ai mis les couleur pour voir les étoiles en Z) ***** i=0 (j = 0 , 1, 2, 3, 4) ***** i = 1 ( ,, ) ***** etc.. ***** ***** mais dans cette notre exemple on veut éliminer les étoiles en noir
(1) ===> dans ce cas on a i=0
(2) ====> i = 4
C'est pour ça dans la boucle on met
Si i = 0 ou i = 4 dessine *
reste à penser comment faire pour (3)
on voit que les étoiles ne se dessinent que si
(i,j) = (1,3) ici on remarque que (i+j) = (taille -1) = 5-1 = 4
(i,j) = (2,2) ,, ,,
(i,j) = (3,1) ,, ,,
donc on continue
sinon
si (i+j) = (taille -1) dessine *
sinon dessine un espace
Bon continuation :)
Merci pour ton explication et pout le temps que tu passe pour m'expliquer
J'ai bien compris grâce à toi.
En avant pour la suite :P
Je vous embete à nouveau.:oops:
Le code marche nikel mais il y a un petit défaut que je voulais régler mais je suis débutant hé ouai .. ça craint..:roll:
en gros si je mets un seul caractère cela va afficher mon Z :yaisse2:mais si je mets deux caractères ou même trois... et bien mon Z n'est plus un Z.:bug:
Je vois ou est le problème, c'est au niveau de l'espace " " que l'on place dans les lignes qui fait la diagonale de Z.
Donc pour revenir à mon soucis après ce long discours.
Comment dois-je faire pour lui dire "si je met un caractère tu me met un espace et si je met 5 caractère tu me met 5 espaces" ????
merci d'avance
salut
Maintenant essaye de faire un N, U ... :)Code:
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
31
32
33
34
35
36
37 public class Z { public static void ecrire(String s , int taille) { for (int i = 0 ; i < taille ; i++) { for (int j = 0 ; j < taille ; j++) { if (( i == 0) || (i == taille -1)) { System.out.print(s); } else { if((i+j) == taille -1) { System.out.print(s); } else { for (int k = 0 ; k < s.length() ; k++) System.out.print(" "); } } } System.out.println(); } } public static void main(String[] args) { ecrire("****",10); System.out.println(); } }
d'accord merci du conseil
ça sera un bon entrainement
sans regarder le code du Z
je ferais le N
et le U
et aussi le T
Merci bobmidou
Pour le N
c'est pareil que le Z
Sauf qu'on affiche * quand j=0 et quand j= taille -1 pour avoir les barres de gauche et droite du N
Pour la diagonale il faut afficher * quand i=j
Pur U
c'est comme N sauf qu'au lieu de faire la diagonale
on dit ( i=taille-1) on ecrit *
Voila ça marche en plus :) merci pour les idées d'exo
héhéhé ça me fait pensé aux triangles version console que j'ai fait en 1ère année.
Pour mieux te représenter le fonctionnement, tourne la tête à 90° sur la droite et fait comme si tu jouais au puissance 4.
Chaque case est un caractère (l'espace ou l'étoile). tu peux donc faire toutes les formes que tu souhaite (et ça peux donner de belles choses, vive l'art ASCII ^^)
Tu saurais faire un pacman ? :D
KOI !! :aie:
:yaisse2:je vais plutôt bosser avec d'autres exercices sur les bases de java et après j'essaye le pacman promis ;)
un soir ou je m'ennuis le week end :P
Plus sérieusement je vois comment faire le "parcours" que pacman doit prendre
Mais animer des ptits fantomes et le pacman qui les mange :?
Pas pour mainenant...ça sera une marche plus lointaine à franchir sur l'escalier de JAVA !!
ha nan je te parlais de l'image de pacman :)
la ptite boule avec sa bouche grande ouverte.
Pour y arriver, le mieux est de penser à pythagore :)
salut
tu peux faire ça aussi tant qu'à y être
********
*******
******
*****
****
***
**
*
et dans les autres sens aussi tu choisira la taille que tu veux
Bon bouclage :)