Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Classer du plus petit au plus grand
Tituya Hors ligne Rédacteur Points: 802 Défis: 16 Message

Classer du plus petit au plus grand

Posté le 25/08/2018 11:11

Bonjour, j'ai un programme qui créer des nombres aléatoires et les associe à A, B, C, D, E, F, G, H, I, J, K.
Il faudrait que je classe ces nombres du plus petit au plus grand.
En fait, le programme est pour créé une équipe de foot selon 11 personnes. Celui qui a la plus petit valeurs est le goal et la plus grande l'attaquant.

La variable de la plus grande valeurs est associé à Z.

Donc je sais pas si c'est possible, car j'avais une idée qui prendra beaucoup trop d'octets.


Lephenixnoir Hors ligne Administrateur Points: 17447 Défis: 142 Message

Citer : Posté le 25/08/2018 11:19 | #


Une idée très simple c'est de les mettre dans une liste et d'utiliser SortA() (Sort Ascending) !

{A,B,C,D,E,F,G,H,I,J,K}→List 1
SortA(List 1)→List 1
List 1[1]→A
...
List 1[11]→K

Évidemment le mieux serait que tu utilises une liste dès le début pour éviter d'avoir à récupérer toutes les variables une par une.
Tituya Hors ligne Rédacteur Points: 802 Défis: 16 Message

Citer : Posté le 25/08/2018 13:59 | #


D'accord, ça fonctionne mais je ne suis pas sur que j'en ai besoin. Ce n'es pas ce que je cherche, en effet, ça tri bel et bien mais remplace les valeurs de À, B....
Or, j'ai besoin de celle ci pour déterminer les noms.
A=Un nom
B=Un autre nom
...
En fait, ce qu'il me faudrait c'est quelque chose comme ça : ABCDEFGHIJK non trié qui donne par la suite quelque chose comme ceci BHIADFCKEGJ trié. Alors je sais que B est goal, H est défenseur etc.

J'allume mon ordi et je te montre le code pour que tu comprennes mieux
Casio VS Nokia 3310 ? Qui gagne ?



Ninestars Hors ligne Membre Points: 2255 Défis: 22 Message

Citer : Posté le 25/08/2018 14:09 | #


Ça c'est plus complexe. Je pense que tu peux rajouter une information dans la valeur même de tes variables.
Par exemple en rajoutant une partie fractionnaire (des nombres derrière la virgule) t'apportant la deuxième information dont tu as besoin.

Un exemple sera plus clair :
Tu as les valeurs goal=4 défenseur=2 et attaquant=7 à trier.
Si tu tries tu obtiens 2 4 7, mais qui est qui ?
Donc tu modifies les valeurs en ajoutant 0.1 pour le goal, 0.2 pour un défenseur et 0.3 pour un attaquant.
Ainsi tu dois trier les valeurs 4.1 2.2 et 7.3
Tu tries et tu obtiens 2.2 4.1 et 7.3
Tu récupères la partie et la partie fractionnaire et tu as les deux infos dont tu as besoin
Drak Hors ligne Rédacteur Points: 1925 Défis: 40 Message

Citer : Posté le 25/08/2018 14:11 | #


Informations que tu récupères respectivement avec les commandes :
Int A //Partie entière
10Frac A //Partie fractionnaire multipliée par 10

Eon the Dragon : version 1.2
Let's have a look!
Marre de ces RPGs qui t'imposent des classes, des compétences et des sorts ? Crée tes propres capacités sur Eon the Dragon ! Des monstres, des dragons et des combats aussi épiques que difficiles t'attendent !
Un RPG unique et immense t'attend ! Joue dès maintenant à Aventura, le Royaume Poudingue !
Vous aussi, soyez swag et rejoignez Planète Casio !
Tituya Hors ligne Rédacteur Points: 802 Défis: 16 Message

Citer : Posté le 25/08/2018 14:28 | #


Voila le code (barbare et non optimisé je pense)
Cliquez pour découvrir
Cliquez pour recouvrir
Filename:FOOT
1ãAÙ
2ãBÙ
3ãCÙ
4ãEÙ
5ãFÙ
6ãGÙ
7ãHÙ
8ãIÙ
9ãJÙ
10ãKÙ
11ãLÙ
0ãZÙ
Lbl 1Ù
Z+1ãZÙ
RanBin#(1,11)ãDÙ
If D=1 And A=1Ù
Then "BENJAMIN"Ù
ZãAÙ
Goto 1Ù
IfEndÙ
If D=2 And B=2Ù
Then "ELEA"Ù
ZãBÙ
Goto 1Ù
IfEndÙ
If D=3 And C=3Ù
Then "FRANCK"Ù
ZãCÙ
Goto 1Ù
IfEndÙ
If D=4 And E=4Ù
Then "LAURA"Ù
ZãEÙ
Goto 1Ù
IfEndÙ
If D=5 And F=5Ù
Then "MATHIAS"Ù
ZãFÙ
Goto 1Ù
IfEndÙ
If D=6 And G=6Ù
Then "ANGELINE"Ù
ZãGÙ
Goto 1Ù
IfEndÙ
If D=7 And H=7Ù
Then "YANN"Ù
ZãHÙ
Goto 1Ù
IfEndÙ
If D=8 And I=8Ù
Then "SEVERINE"Ù
ZãIÙ
Goto 1Ù
IfEndÙ
If D=9 And J=9Ù
Then "ROMAIN"Ù
ZãJÙ
Goto 1Ù
IfEndÙ
If D=10 And K=10Ù
Then "DAISY"Ù
ZãKÙ
Goto 1Ù
IfEndÙ
If D=11 And L=11Ù
Then "MYLENE"Ù
ZãLÙ
Goto 1Ù
IfEndÙ
Ù
If AÈ1 And BÈ2 And CÈ3 And EÈ4 And FÈ5 And GÈ6 And HÈ7 And IÈ8 And JÈ9 And KÈ10 And LÈ11Ù
Then Goto 2Ù
IfEndÙ
Ù
Ù
If D=1 And AÈ1Ù
Then Goto 1Ù
IfEndÙ
If D=2 And BÈ2Ù
Then Goto 1Ù
IfEndÙ
If D=3 And CÈ3Ù
Then Goto 1Ù
IfEndÙ
If D=4 And EÈ4Ù
Then Goto 1Ù
IfEndÙ
If D=5 And FÈ5Ù
Then Goto 1Ù
IfEndÙ
If D=6 And GÈ6Ù
Then Goto 1Ù
IfEndÙ
If D=7 And HÈ7Ù
Then Goto 1Ù
IfEndÙ
If D=8 And IÈ8Ù
Then Goto 1Ù
IfEndÙ
If D=9 And JÈ9Ù
Then Goto 1Ù
IfEndÙ
If D=10 And KÈ10Ù
Then Goto 1Ù
IfEndÙ
If D=11 And LÈ11Ù
Then Goto 1Ù
IfEndÙ
Ù
Ù
Lbl 2Ù
ClrTextÙ

Casio VS Nokia 3310 ? Qui gagne ?



Lephenixnoir Hors ligne Administrateur Points: 17447 Défis: 142 Message

Citer : Posté le 25/08/2018 14:38 | #


En fait, ce qu'il me faudrait c'est quelque chose comme ça : ABCDEFGHIJK non trié qui donne par la suite quelque chose comme ceci BHIADFCKEGJ trié. Alors je sais que B est goal, H est défenseur etc.

En fin de compte tu veux trier mais « conserver l'identité ». La méthode de Ninestars est ce qu'il te faut.
Tituya Hors ligne Rédacteur Points: 802 Défis: 16 Message

Citer : Posté le 25/08/2018 14:43 | #


Je n'ai pas trop compris sa méthode, je ne vois pas trop comment l'appliquer
Casio VS Nokia 3310 ? Qui gagne ?



Lephenixnoir Hors ligne Administrateur Points: 17447 Défis: 142 Message

Citer : Posté le 25/08/2018 15:03 | #


L'idée c'est que tu vas indiquer un peu plus d'informations dans chaque variable. À la valeur de A, tu ajoutes 0.1 pour dire que c'était, à l'origine, ton premier élément ; à B tu ajoutes 0.2, pour indiquer que c'était le deuxième, et ainsi de suite.

Il faut bien comprendre que la valeur décimale ne nous intéresse pas ; tout ce qu'on veut c'est ajouter un petit supplément d'information. Ce petit supplément va identifier un joueur.

Ensuite, tu tries. Comme le suppléments sont tous plus petits que un, le résultat du tri reste le même.

Une fois ta chose triée, tu obtiens par exemple 3.2 4.6 8.1 ..., et tu peux comprendre ce qui s'est passé pendant le tri :
- La valeur la plus faible était 3, et comme elle a reçu 0.2 de supplément, c'est qu'à l'origine elle était stockée dans B
- La suivante est 4, elle était associée au supplément 0.6 soit la variable F
- Ensuite 8, qui vient de la variable A

À la fin tu as bien A < B < ... < K car on a trié, mais en regardant la partie décimale tu peux savoir qui est le joueur de l'équipe qui occupe cette position.

Est-ce plus clair ?

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 38 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd