Exercice IOI Table de multiplication

IOI France

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je me retrouve (encore :( ) bloqué dans un exercice. Il est ici .

Je suis débutant dans l’algorithmie et la programmation. Mon problème est souvent le même: je comprends ce qu’on demande mais je n’arrive pas à "traduire ma pensée en code" le plus dur pour moi étant la boucle for. Pourtant, je pense avoir compris. Chaque ligne de code est lue de haut en bas. Dans le cas d’une boucle for, j’ai compris que lorsqu’on arrive au bout de l’accolade de "fermeture", la lecture du code recommence de haut en bas à partir de la ligne:

for(int variable = ; variable <= ; variable = variable +1).

Dans le cas ou il y a encore du code à lire notamment dans le cas d’une boucle imbriquée, la lecture du code se poursuit jusqu’à fin de la "boucle principale" (première boucle) pour ensuite recommencer au début de celle-ci.

(Hésitez pas à me dire si vous constatez que je fait fausse route à propos des boucles).

Au départ j’ai pensé qu’il fallait agir comme avec l’exercice "Jeu de Dame". Il faut une boucle principale et deux boucles pour les lignes horizontales.

Mais dans l’exemple donné sur l’exercice, on constate rapidement que les chiffres puis les nombres des lignes horizontale et verticale se multiplient afin de créer la table de multiplication…Et c’est là qu’est mon problème!

J’ai essayé maintes et maintes fois sur Eclipse mais rien y fait. Je n’arrive pas à faire se multiplier les deux lignes.

Voici mon code:


public static void main (String[] args) {
		
		int ligne2 = 0;
		int ligne1  = 1;
				
			
				for (int loop2 = 1; loop2 <=20; loop2 = loop2 +1) {
					ligne2 = ligne2 + 1;
						System.out.print(ligne2+ " ");
					}
					System.out.println();
			
				
				for (int loop4 = 1; loop4 <=19; loop4 = loop4 +1) {
					ligne1 = ligne1 +1;
						System.out.println(ligne1);
					}
					System.out.println();
				}	
			}

C’est la seconde fois en deux jours que je demande de l’aide et j’ai l’impression de ne pas avancer… :( :(

Salut \o,

C’est la seconde fois en deux jours que je demande de l’aide et j’ai l’impression de ne pas avancer… :( :(

Ça n’a rien à voir. Prend ton temps. Même si on apprend plus en trouvant soit même, mieux vaut se débloquer que chercher pendant des heures.

Tout est une histoire de décomposition.

Imagine :

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

La première ligne est :

1 2 3 4 5

Ça déjà, est-ce que tu peux le faire ? Maintenant tu devrais trouver ça simple, si ce n’est pas le cas effectivement tu devrais revoir le début du cours et reprendre plus lentement, mais je suis certain que tu n’as aucun problème pour afficher la première ligne.

Bon grosso modo, tu as appelé ta variable disons i (certainement que tu l’as appelé loop1 …).

Maintenant regardons la deuxième ligne.

2 4 6 8 10

On se rend compte que c’est :

2*1 2*2 2*3 2*4 2*5

Donc en fait, c’est :

2*i

Et sur la troisième ligne, tu obtiens 3*i !

Ça te sugères donc de faire 2 boucles, une qui va contenir le numéro de la ligne, l’autre qui fa effectivement afficher la ligne. Celle qui affiche la ligne est une petite modification de la boucle qui affiche :

1 2 3 4 5

Celle qui parcourt le numéro de ligne a dans son corp, l’autre boucle et à la fin, elle affiche un saut de ligne (pour allez à la ligne suivante).

Voilà ! En espérant t’avoir aidé.


Tu as encore un problème d’indentation, de plus, tes boucles ne sont pas imbriqué, c’est pour ça que tu as du mal.

+1 -0

Merci pour ta réponse encore une fois ache! T’as réponse est extrêmement claire et compréhensible. Pour le moment, je dois m’occuper de ma petite fille mais je vais me remettre à coder vers 20h.

Merci encore! je te dit si j’ai réussit dans la soirée

+0 -0

Désolé de répondre si tard.

Problème résolu! Merci beaucoup encore une fois ache!

Concernant mon indentation:

En vrai, j’ai compris le principe mais pas les normes d’indentation Java. Je vais faire des recherches mais si tu as des liens, je suis preneur.

J’ai été tellement content quand j’ai réussit l’exercice!

Je pense que mon véritable problème c’est pas les boucles mais plutôt la façon dont fonctionne les variables à l’intérieur.

Je suis tombé sur cet exercice (qui l’explique) et je l’ai raté. Du coup vu que la solution est donnée je vais essayé de comprendre et je pense que je vais revoir cet exercice, puis essayer de comprendre le fonctionnement dans tous les exercices que j’ai fait jusqu’à maintenant.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte