A voir également:
- Figure losange java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
- Java décompiler - Télécharger - Langages
1 réponse
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
9 nov. 2008 à 20:29
9 nov. 2008 à 20:29
Bonsoir,
Voici un code qui a l'air de fonctionner mieux :
Pour le faire, j'ai écrit la matrice qui définissait le losange, et j'ai tenté de trouver les équations qui la composaient.
- pour max/2, l'équation est toujours vraie
- pour les lignes et colonnes inférieures à max/2, il faut que la somme ligne+colonne soit supérieure ou égale à max/2
- pour les colonnes inférieures à max/2 et les lignes supérieures à max/2, il faut que colonne-ligne soit inférieure ou égale à max/2 ...
Une fois toutes ces équations trouvées, il est possible de faire 4 blocs if pour tester toutes ces conditions, mais étant donné les symétries de la figure, elles peuvent être réunies dans un seul bloc si on trouve la formule qui va bien (ici on a notamment besoin de la valeur absolue).
Cordialement,
Voici un code qui a l'air de fonctionner mieux :
public static void main(String[] args) { int max = 5; for (int ligne = 0; ligne < max; ligne++) { for (int colonne = 0; colonne < max; colonne++) { if (colonne >= Math.abs(max / 2 - ligne) && colonne <= max - 1 - Math.abs(max / 2 - ligne)) { System.out.print("*"); } else { System.out.print(" "); } } System.out.println(""); }
Pour le faire, j'ai écrit la matrice qui définissait le losange, et j'ai tenté de trouver les équations qui la composaient.
- pour max/2, l'équation est toujours vraie
- pour les lignes et colonnes inférieures à max/2, il faut que la somme ligne+colonne soit supérieure ou égale à max/2
- pour les colonnes inférieures à max/2 et les lignes supérieures à max/2, il faut que colonne-ligne soit inférieure ou égale à max/2 ...
Une fois toutes ces équations trouvées, il est possible de faire 4 blocs if pour tester toutes ces conditions, mais étant donné les symétries de la figure, elles peuvent être réunies dans un seul bloc si on trouve la formule qui va bien (ici on a notamment besoin de la valeur absolue).
Cordialement,
9 nov. 2008 à 20:39
9 nov. 2008 à 21:12
La définition mathématique de la valeur absolue abs(x), c'est :
- abs(x) = x si x>=0
- abs(x) = -x si x<0
Voici une méthode qui fonctionne uniquement avec des "si" en cascade :
Cordialement,
ps: il est préférable d'utiliser des for que des while lorsque tu sais exactement quand tu vas finir ta boucle. En terme de fonctionnalité et de performances, les deux structures sont totalement équivalentes.
9 nov. 2008 à 21:45
9 nov. 2008 à 20:44
mais que représente la commande Math.abs?
9 nov. 2008 à 20:49
merci.