Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » S.O.S Je sèche sur la syntaxe !


bob91 Invité

S.O.S Je sèche sur la syntaxe !

Posté le 04/05/2008 17:31

Salut à tous
J'ai un programme sur Graph 35+,et je sèche sur la méthode à suivre !
Je vous expose le problème:
Nous avons:
- une Mat A[32,8]
- une List3[8]
- une List4[32]
Il s'agit d'un questionnaire de 8 questions sur 32 personnes.
La matrice comprend les réponses des 32 personnes au 8 questions.
Une 33e personne vient de faire ce questionnaire et a rempli la Liste 3 avec ses réponses.
Les réponses sont sous la forme 1,2,3 ou 4.
Donc la Liste 3 est remplie par exemple disons par: 3,3,3,1,2,1,3,3 .
J'ajoute que la Matrice A est remplie seulement par des1,2,3 ou 4.
Voilà.
Je souhaite cette 33e personne recherche le nom de la personne qui a déjà fait le questionnaire (et donc dont les réponses sont dans la matrice) et qui a le plus de réponses en commun.
Pour cela, le programe devrait faire ceci:
Pour toutes les cellules de la matrice et toutes les cellules de la liste 3.
Je voudrais que le programme compare comme suit:
If MatA[1,1]=List3[1] : Then List4[1]+1->List4[1]
Et ainsi de suite...( C'est à dire MatA[1,2]
avec List3[2]
Puis MatA[1,3] avec List3[3]
Puis MatA[1,4] avec List3[4]
.... Puis MatA[1,8] avec List3[8]
Puis MatA[2,1] avec List3[1] mais la valeur "1" s'ajoute à la List4[2]
Et ainsi de suite jusqu'à :
MatA[32,8] avec List3[8], où la valeur 1 s'ajoute à List4[32]

C'est cette partie ci-dessus qui me pose problème, je ne sais pas comment rédiger tout ça en programme, sans rentrer dans la calculette toutes les commandes pour demander de faire les comparaisons une à une.
Y a-t-il une solution ?

La suite est sans problèmes:
On obtient donc une Liste 4 (dont chaque ligne est égale à une personne: de1 à 32), remplie:
En effet, plus une personne a un "score" élevé, plus il a de points en commun avec la 33e personnne.
Il suffit donc de calculer le maximum de la liste 4 pour savoir quelle personne ale plus de points en commun avec la 33e personne.

Merci d'avance pour les précisions que vous saurez me donner pour écrire cette partie difficile de programme sans détailler toutes les comparaisons.



Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 10/02/2017 07:48 | #


Salut,

Tu m'excuseras de répondre en vitesse...

Effectivement, comparer le cases une à une est possible, mais tu peux aller un poil plus vite en calculant les écarts "personne par personne". Par exemple tu découpes ta Matrice en autant de List qu'elle n'a de ligne (32 personnes donc), et tu viens chercher celle dont la somme des carrés des différences terme à terme avec la List 3 est minimale.

Sinon, et même dans tous les cas je dirais, je te conseille d'utiliser des boucles et des indices. Tu peux tout à fait faire varier un paramètre A par exemple, et l'utiliser comme indice pour la lecture d'une case : List[A] ou Mat[A, B] (cf les tutoriels à ce sujet).

Bon courage.




Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Breizh_craft Hors ligne Modérateur Points: 1157 Défis: 7 Message

Citer : Posté le 10/02/2017 08:50 | #


Wow. Presque 9 ans.
Breizh.pm – Un adminsys qui aime les galettes.
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 10/02/2017 12:53 | #


Ne0tux a écrit :
Tu m'excuseras de répondre en vitesse...
Et encore, il s'est dépêché haha

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
: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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 103 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