Bonjour,
J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10];
int tirage;
tirage = 1;
while (tirage <=10)
{
nombre = (int)(Math.random()*10000)+1;
for (i=0; i<10; i++)
{
mylist[10] = nombre + i;
}
tirage = tirage + 1;
}
System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
Si tu veux mon avis, je pense que vu le niveau de l'exercice ce n'est pas un tri comme on l'entends qui est recherché mais plutôt la construction d'un algo pour voir si on maitrise la notion d'indexe dans les tableaux.
Ce que le formateur veut sans doute voir réaliser est l'algo suivant: on tire un nb au hasard qu'on range dans le 1er indice du tableau. Puis pour les indices suivants, on tire un nombre au hasard, on le compare avec la valeur stockée à l'indice précédent. Si plus petit ou égal, on le place dans l'indice courant et on incrémente l'indice, sinon on retire un nombre au hasard qu'on re-compare etc..
Bref au final, on aura des valeurs aléatoire *croissantes* sans avoir à faire de tris. Ce qui est précisément ce qui a été dit dans le 1er message:
J'écrit un programme qui génère 10 nombre et qui doit les *ranger
dans l'ordre croissant*
Bref on fait fausse route avec Array, tri par insertion etc. Je pense vraiment que c'est un exercice de débutant pour voir si on est clair au niveau des boucles, des tableaux et de leurs indexes.
Les tris ce sera dans plusieurs leçons. Même si répondre à l’exercice avec un Array.sort() peut épater le prof, ca n'est très probablement pas ce qui est recherché IMHA.
sam.
Le 01/03/2013 14:42, Toxico Nimbus a écrit :
Renseigne toi d'abord sur les techniques de tri,
Si tu veux mon avis, je pense que vu le niveau de l'exercice ce n'est
pas un tri comme on l'entends qui est recherché mais plutôt la
construction d'un algo pour voir si on maitrise la notion d'indexe dans
les tableaux.
Ce que le formateur veut sans doute voir réaliser est l'algo suivant: on
tire un nb au hasard qu'on range dans le 1er indice du tableau. Puis
pour les indices suivants, on tire un nombre au hasard, on le compare
avec la valeur stockée à l'indice précédent. Si plus petit ou égal, on
le place dans l'indice courant et on incrémente l'indice, sinon on
retire un nombre au hasard qu'on re-compare etc..
Bref au final, on aura des valeurs aléatoire *croissantes* sans avoir à
faire de tris. Ce qui est précisément ce qui a été dit dans le 1er message:
J'écrit un programme qui génère 10 nombre et qui doit les *ranger
dans l'ordre croissant*
Bref on fait fausse route avec Array, tri par insertion etc. Je pense
vraiment que c'est un exercice de débutant pour voir si on est clair au
niveau des boucles, des tableaux et de leurs indexes.
Les tris ce sera dans plusieurs leçons. Même si répondre à l’exercice
avec un Array.sort() peut épater le prof, ca n'est très probablement pas
ce qui est recherché IMHA.
Si tu veux mon avis, je pense que vu le niveau de l'exercice ce n'est pas un tri comme on l'entends qui est recherché mais plutôt la construction d'un algo pour voir si on maitrise la notion d'indexe dans les tableaux.
Ce que le formateur veut sans doute voir réaliser est l'algo suivant: on tire un nb au hasard qu'on range dans le 1er indice du tableau. Puis pour les indices suivants, on tire un nombre au hasard, on le compare avec la valeur stockée à l'indice précédent. Si plus petit ou égal, on le place dans l'indice courant et on incrémente l'indice, sinon on retire un nombre au hasard qu'on re-compare etc..
Bref au final, on aura des valeurs aléatoire *croissantes* sans avoir à faire de tris. Ce qui est précisément ce qui a été dit dans le 1er message:
J'écrit un programme qui génère 10 nombre et qui doit les *ranger
dans l'ordre croissant*
Bref on fait fausse route avec Array, tri par insertion etc. Je pense vraiment que c'est un exercice de débutant pour voir si on est clair au niveau des boucles, des tableaux et de leurs indexes.
Les tris ce sera dans plusieurs leçons. Même si répondre à l’exercice avec un Array.sort() peut épater le prof, ca n'est très probablement pas ce qui est recherché IMHA.
sam.
natdy
Le jeudi 28 Février 2013 à 23:12 par natdy :
Bonjour, J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10]; int tirage;
tirage = 1;
while (tirage <) { nombre = (int)(Math.random()*10000)+1; for (i=0; i<10; i++) { mylist[10] = nombre + i; } tirage = tirage + 1; } System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
Merci de votre aide
pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma liste pour le placer mais je sais pas comment faire
Le jeudi 28 Février 2013 à 23:12 par natdy :
Bonjour,
J'écrit un programme qui génère 10 nombre et qui doit les
ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas.
voici mon code:
int nombre, i;
int [] mylist = new int [10];
int tirage;
tirage = 1;
while (tirage <=10)
{
nombre = (int)(Math.random()*10000)+1;
for (i=0; i<10; i++)
{
mylist[10] = nombre + i;
}
tirage = tirage + 1;
}
System.out.println("Voici les nombres dans l'ordre croissant :" +
mylist[10] + "");
Merci de votre aide
pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma liste pour le placer mais je sais pas comment faire
Bonjour, J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10]; int tirage;
tirage = 1;
while (tirage <) { nombre = (int)(Math.random()*10000)+1; for (i=0; i<10; i++) { mylist[10] = nombre + i; } tirage = tirage + 1; } System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
Merci de votre aide
pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma liste pour le placer mais je sais pas comment faire
Toxico Nimbus
Le 01/03/2013 21:52, Samuel DEVULDER a écrit :
Le 01/03/2013 14:23, natdy a écrit :
J'ai mi sa et sa me sort qu'un nombre
aie pas de SMS s'il vous plait
for ( tirage=0; tirage < 10; tirage--)
Que voulez vous faire avec cette boucle?
Elle est quasi infinie. Pourquoi? Bon exercice: * tirage démarre à 0, * ne fait que décroitre (tirage--) * tirage est donc toujours "<10".
Bref, non, elle ne peut pas tourner qu'une seule fois.
Et pourtant si, au premier indice négatif, pan, RunTimeException...
Le 01/03/2013 21:52, Samuel DEVULDER a écrit :
Le 01/03/2013 14:23, natdy a écrit :
J'ai mi sa et sa me sort qu'un nombre
aie pas de SMS s'il vous plait
for ( tirage=0; tirage < 10; tirage--)
Que voulez vous faire avec cette boucle?
Elle est quasi infinie. Pourquoi? Bon exercice:
* tirage démarre à 0,
* ne fait que décroitre (tirage--)
* tirage est donc toujours "<10".
Bref, non, elle ne peut pas tourner qu'une seule fois.
Et pourtant si, au premier indice négatif, pan, RunTimeException...
Elle est quasi infinie. Pourquoi? Bon exercice: * tirage démarre à 0, * ne fait que décroitre (tirage--) * tirage est donc toujours "<10".
Bref, non, elle ne peut pas tourner qu'une seule fois.
Et pourtant si, au premier indice négatif, pan, RunTimeException...
Yliur
Le Fri, 01 Mar 2013 16:43:13 -0600 natdy a écrit :
Le jeudi 28 Février 2013 à 23:12 par natdy : > Bonjour, > J'écrit un programme qui génère 10 nombre et qui doit les > ranger dans l'ordre croissant puis les afficher mais celui ne > fonctionne pas. voici mon code: > > int nombre, i; > > int [] mylist = new int [10]; > int tirage; > > tirage = 1; > > while (tirage <) > { > nombre = (int)(Math.random()*10000)+1; > for (i=0; i<10; i++) > { > mylist[10] = nombre + i; > } > tirage = tirage + 1; > } > System.out.println("Voici les nombres dans l'ordre > croissant :" + mylist[10] + ""); > > Merci de votre aide pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma liste pour le placer mais je sais pas comment faire
C'est plus facile si tu réponds aux remarques directement plutôt que dans un nouveau message, ça permet de développer plusieurs points et de bien suivre les échanges sur le sujet.
Je pense vraiment que tu devrais faire une décomposition par étapes, sans rien coder. C'est le meilleur moyen d'apprendre et de comprendre comment écrire des algorithmes.
Pour répondre à ta question (mais je ne sais pas si ça va t'avancer, si tu n'as pas fait le reste) : - Le nombre sorti se trouve dans la variable nombre. - Pour obtenir la valeur de la case de numéro n dans le tableau, tu écris mylist[n]. => Pour savoir si le nombre tiré est supérieur à la valeur de la première case du tableau, tu peux écrire : if (nombre > mylist[0]) { ... }
Le Fri, 01 Mar 2013 16:43:13 -0600
natdy <nospam_dylan.natier@wanadoo.fr.invalid> a écrit :
Le jeudi 28 Février 2013 à 23:12 par natdy :
> Bonjour,
> J'écrit un programme qui génère 10 nombre et qui doit les
> ranger dans l'ordre croissant puis les afficher mais celui ne
> fonctionne pas. voici mon code:
>
> int nombre, i;
>
> int [] mylist = new int [10];
> int tirage;
>
> tirage = 1;
>
> while (tirage <)
> {
> nombre = (int)(Math.random()*10000)+1;
> for (i=0; i<10; i++)
> {
> mylist[10] = nombre + i;
> }
> tirage = tirage + 1;
> }
> System.out.println("Voici les nombres dans l'ordre
> croissant :" + mylist[10] + "");
>
> Merci de votre aide
pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma
liste pour le placer mais je sais pas comment faire
C'est plus facile si tu réponds aux remarques directement plutôt que
dans un nouveau message, ça permet de développer plusieurs points et de
bien suivre les échanges sur le sujet.
Je pense vraiment que tu devrais faire une décomposition par étapes,
sans rien coder. C'est le meilleur moyen d'apprendre et de comprendre
comment écrire des algorithmes.
Pour répondre à ta question (mais je ne sais pas si ça va t'avancer, si
tu n'as pas fait le reste) :
- Le nombre sorti se trouve dans la variable nombre.
- Pour obtenir la valeur de la case de numéro n dans le tableau, tu
écris mylist[n].
=> Pour savoir si le nombre tiré est supérieur à la valeur de la
première case du tableau, tu peux écrire :
if (nombre > mylist[0])
{
...
}
Le Fri, 01 Mar 2013 16:43:13 -0600 natdy a écrit :
Le jeudi 28 Février 2013 à 23:12 par natdy : > Bonjour, > J'écrit un programme qui génère 10 nombre et qui doit les > ranger dans l'ordre croissant puis les afficher mais celui ne > fonctionne pas. voici mon code: > > int nombre, i; > > int [] mylist = new int [10]; > int tirage; > > tirage = 1; > > while (tirage <) > { > nombre = (int)(Math.random()*10000)+1; > for (i=0; i<10; i++) > { > mylist[10] = nombre + i; > } > tirage = tirage + 1; > } > System.out.println("Voici les nombres dans l'ordre > croissant :" + mylist[10] + ""); > > Merci de votre aide pour faire cela, je doit comparer le nombre sortie avec ma ceux de ma liste pour le placer mais je sais pas comment faire
C'est plus facile si tu réponds aux remarques directement plutôt que dans un nouveau message, ça permet de développer plusieurs points et de bien suivre les échanges sur le sujet.
Je pense vraiment que tu devrais faire une décomposition par étapes, sans rien coder. C'est le meilleur moyen d'apprendre et de comprendre comment écrire des algorithmes.
Pour répondre à ta question (mais je ne sais pas si ça va t'avancer, si tu n'as pas fait le reste) : - Le nombre sorti se trouve dans la variable nombre. - Pour obtenir la valeur de la case de numéro n dans le tableau, tu écris mylist[n]. => Pour savoir si le nombre tiré est supérieur à la valeur de la première case du tableau, tu peux écrire : if (nombre > mylist[0]) { ... }
Marc Petit-Huguenin
On 02/28/2013 02:12 PM, natdy wrote:
Bonjour, J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10]; int tirage;
tirage = 1;
while (tirage <) { nombre = (int)(Math.random()*10000)+1; for (i=0; i<10; i++) { mylist[10] = nombre + i; } tirage = tirage + 1; } System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
Merci de votre aide
System.out.println("Voici les nombres dans l'ordre croissant :"); for (int i = 0, j = 0; i < 10; i++) { System.out.println(j += Math.random() * 1000); } }
On 02/28/2013 02:12 PM, natdy wrote:
Bonjour,
J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre
croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10];
int tirage;
tirage = 1;
while (tirage <)
{
nombre = (int)(Math.random()*10000)+1;
for (i=0; i<10; i++)
{
mylist[10] = nombre + i;
}
tirage = tirage + 1;
}
System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] +
"");
Merci de votre aide
System.out.println("Voici les nombres dans l'ordre croissant :");
for (int i = 0, j = 0; i < 10; i++) {
System.out.println(j += Math.random() * 1000);
}
}
Bonjour, J'écrit un programme qui génère 10 nombre et qui doit les ranger dans l'ordre croissant puis les afficher mais celui ne fonctionne pas. voici mon code:
int nombre, i;
int [] mylist = new int [10]; int tirage;
tirage = 1;
while (tirage <) { nombre = (int)(Math.random()*10000)+1; for (i=0; i<10; i++) { mylist[10] = nombre + i; } tirage = tirage + 1; } System.out.println("Voici les nombres dans l'ordre croissant :" + mylist[10] + "");
Merci de votre aide
System.out.println("Voici les nombres dans l'ordre croissant :"); for (int i = 0, j = 0; i < 10; i++) { System.out.println(j += Math.random() * 1000); } }