"Boucle Imbriqué et Appels de méthodes "

Fermé
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017 - 6 avril 2017 à 22:12
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 24 mai 2017 à 21:11
Bonjour je suis sur un Algorithme qui consiste a construire 6 "Forme" de Tailles variables.

Les Voici :



Cependant je suis un peut perdu quant a l'algorithme à avoir pour crées ces formes , j'ai voulu partir sur la base que chaque ligne est un multiple 4 Mais sa m'aide pas d'avantage :/ , Pour ce Faire une classe Forme nous a étés fournis la voici :


public class Forme {
	public static void main(String[] arg) {
		
		int debut = 4;
		int fin = 10;
		int i = debut;
		do {
		   constructForme(i);
		   i++;
		   System.out.println(" ");
                }while (i != end) ;
	    }
	 }
	
	private static void constructForme(int f) {
           construireUneLigne(4);			 
	}
	
	private static void constructLigne(int f) {
		for(int i = 1; i <= n; i++){	
			System.out.print("X");
		}
             }	
	}


Quelqu'un d'assez aimable Pourrait-il aiguillier Merci d avance ?

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
6 avril 2017 à 23:28
Bonjour,

Déjà tes 6 formes sont indépendantes donc il te faut 6 méthodes de constructions, une pour chaque forme.

Ensuite, chacune de tes méthodes devra prendre un paramètre, mais ça ne veut pas dire que ce paramètre est obligatoirement la taille de la forme.

Donc si tu veux que ta taille soit un multiple de 4, tu peux dire que ton paramètre f va te donner une forme de taille 4f.
Mais il faut que f reste quelconque, ce serait une mauvaise idée d'imposer que f soit un multiple de 4 par exemple.
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
8 avril 2017 à 04:23
Merci pour votre intervention ! , Oui mais ce que j'ai du mal a comprendre c'est que si le paramètre ne définit pas forcément la taille de la forme qu'elle en est son intérêt dans ce cas ?

J'ai "Réussi" a "reproduire" la forme du premier mais je ne sais pas si c'est le bon algorithme a adopté

  
private static void constructForme(int f) {		
	construireUneLigne(4);
}



private static void constructLigne(int f) {
	for(int i = 1; i <= n; i++){	
		System.out.print("X");
	}
 }


J'ai aussi du mal a comprendre le procédé de construction , Et quand déterminé si on va besoin d'avoir une boucle ou plus :/
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
8 avril 2017 à 12:46
"je ne sais pas si c'est le bon algorithme a adopté"
Dans ton premier code tu mets 4 en dur, c'est faux, tu dois utiliser f.

"quand déterminé si on va besoin d'avoir une boucle ou plus"
Tu auras forcément besoin de deux boucles puisque tu travailles en 2D...

Si on prends la première forme, c'est un rectangle de largeur 4 et de hauteur 3.
On peut donc en déduire un paramétrage de rectangles de largeur X+1 et de hauteur X, l'exemple étant paramétré par X=3.

X=1 :
FF

X=2 :
FFF
FFF

X=3 :
FFFF
FFFF
FFFF

X=4 :
FFFFF
FFFFF
FFFFF
FFFFF
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
18 avril 2017 à 02:35
Oui mais ce que je veut dire C'est si nous aurons besoins de 2 boucles pour chacun des exercices et Je n'ai pas pas très bien compris votre exemple de paramétrage , sachant que l'algorithme en une construction de ligne puis en une construction de la forme pouvez -vous m'éclaircir d'avantage s'il vous plait ?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
18 avril 2017 à 07:51
"l'algorithme en une construction de ligne puis en une construction de la forme"
Donc deux boucles imbriquées. Celle qui construit la forme (par exemple sur la hauteur X du rectangle) et une qui construit chaque ligne (par exemple sur la largeur X+1 du rectangle).

Afficher un rectangle de largeur X+1 et de hauteur X ce n'est quand même pas bien sorcier... Ça ne devrait pas prendre plus de 2 minutes.
0
Jiko-java Messages postés 186 Date d'inscription dimanche 25 septembre 2016 Statut Membre Dernière intervention 22 juillet 2017
26 avril 2017 à 01:32
Bonjour , ayant eu un peut de temps j'ai continuer sur cette exercice Mais j'ai encore beaucoup de mal a visualisé le déroulement lors des constructions des formes , pour le premier j'ai "bidouille" un peut , j'ai essayé d'utiliser des boucles imbriqués cependant il affiche seulement en quelques sortes la forme du F2 du coup je l'ai fait comme j'ai pu pouvez-vous me dires si c'est une mauvaise pratique ou pas ? :/


private static void constructForme(int f) {
           construireUneLigne(f);			 
     }
	
private static void constructLigne(int f) {
     for(int i = 1; i <= f-(f-4); i++){	
	     System.out.print("X");
	}
    }
0