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 » Avancement programme de probabilités
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Avancement programme de probabilités

Posté le 27/06/2014 18:15

Bonjour à tous !!
Voici la première partie de mon programme de probabilité
Cette partie gère les arbres binaires (représentation de l'arbre jusqu'à une profondeur de 3 / dans le cas où la profondeur est supérieure à 3, les résultats sont affichés dans un tableau).
Ce programme n'est pas optimisé, vous verrez par vous même, si vous téléchargez
Cette partie du programme est en pièce jointe (dites moi comment vous trouvez ça )
Je suis toujours bloqué pour les arbres non binaires à cause du SCROLL et du problème de l'AFFICHAGE SANS ?.
Bon test

Fichier joint


Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 27/06/2014 18:15 | #


Mais enfin, tu as reçu plein de réponses sur comment faire ton affichage sans ?
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 27/06/2014 18:21 | #


Je parle de ça : http://www.planet-casio.com/Fr/forums/topic11721-1-Saisie-en-temps-reel-(sans-le-)-avec-un-code-court-.html
Ce code marche parfaitement, quand je clique sur un chiffre, il s'affiche là où je le souhaite. Mais impossible d'affiche un autre chiffre à un autre endroit !!! Si je clique sur un autre chiffre il remplace le premier au même endroit ...
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 27/06/2014 18:27 | #


Il faut mettre un strjoin pour ça

Ajouté le 27/06/2014 à 18:27 :
Ou simplement une concatenation avec le +, ça marche aussi
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 27/06/2014 19:07 | #


Tu peux écrire le code ? j'ai déjà essayé un truc avec StrJoin ( mais ça marchait pas, je me suis sûrement trompé ...
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 27/06/2014 20:01 | #


Voilà comment cela fonctionne :

StrJoin (Str [maroon]1[/maroon], Str [maroon]2[/maroon]) [b]->[/b] Str [maroon]3[/maroon]


C'est identique à :
Str [maroon]1[/maroon]+ Str [maroon]2[/maroon] [b]->[/b] Str [maroon]3[/maroon]

Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Lephenixnoir En ligne Administrateur Points: 24233 Défis: 170 Message

Citer : Posté le 27/06/2014 20:24 | #


Je ne savais pas que le Basic supportait la surcharge d'opérateurs.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 28/06/2014 12:36 | #


Lephenixnoir a écrit :
Je ne savais pas que le Basic supportait la surcharge d'opérateurs.



Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 28/06/2014 12:53 | #


Donc là dedans, pour que je clique une première fois et que mon premier chiffre s'affiche, puis que je clique une deuxième fois et que mon deuxième nombre s'affiche autre part, je mets mon StrJoin( où ?
Désolé de vous embêter avec ça je suis désolé mais je découvre les Str(

"369       258      0147"→Str 2
While 1
Getkey→G
If G And G>51:Then
StrMid(Str 2,G-51,1)→Str 1
ClrText
Locate 1,1,Str 1
IfEnd
WhileEnd

JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 28/06/2014 13:05 | #


"369 258 0147"→Str 2
While 1
Getkey→G
If G And G>51:Then
[b]Str 1+[/b]StrMid(Str 2,G-51,1)→Str 1
ClrText
Locate 1,1,Str 1
IfEnd
WhileEnd

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 28/06/2014 13:20 | #


Merci !! Je teste et encore désolé de vous déranger tout le temps
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

Calculatrice : Graph 75
Cartix Hors ligne Membre Points: 2748 Défis: 98 Message

Citer : Posté le 28/06/2014 13:24 | #


Lancelot a écrit :
Lephenixnoir a écrit :
Je ne savais pas que le Basic supportait la surcharge d'opérateurs.

Il veut dire par la le fait qu'un "+" puisse additionner les nombres ET les strings, en sachant que ce sont des procédés différents (enfin je suppose)
Scientifix a écrit :
Merci !! Je teste et encore désolé de vous déranger tout le temps

Tkt, c'est comme ça que le forum reste vivant
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 28/06/2014 13:25 | #


Mon frère a fais un algo pour les arbres mais c'est en Basic TI et tu peux dessiner n'importe quel arbre
In Arch, I trust ! And you ?
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 28/06/2014 13:55 | #


Florian, je veux bien !!!!
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

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

Citer : Posté le 28/06/2014 14:58 | #


Salut Scientifix,

Je pense que tu veux aller trop vite.


Tu nous a demandé une idée pour un projet qui t'occuperai tout au long des vacances, mais tu voudrais déjà l'avoir fini.

Pour être honnête, l'entreprise dans laquelle tu t'es lancée, si elle doit être menée à bien avec toutes les fonctionnalités dont on a parlé, n'est pas des plus faciles... Je ne sais pas ce qu'en pense le reste de la communauté mais je sais que personnellement, je n'y parviendrais pas en moins de 48H, et pas sans une réflexion plutôt conséquente.

Comme je te le disais, il s'agit d'un projet complexe, et en cela, il est nécessaire de prendre une feuille et un crayon (ou autre, si tu préfères le bloc note Windows ), et d’identifier dans cet ordre :

-> Le(s) besoin(s) au(x)quel(s) va répondre ton programme
-> La façon dont tu vas acquérir les données
-> La façon dont tu vas stocker les données
-> La façon dont tu vas gérer les données
-> La façon dont tu vas afficher les données

De ce que j'ai compris, tu as débuté par la dernière étape de la démarche.

Je te conseille vivement d'effectuer ce petit travail, qui permet une "organisation" du projet, t'apportant rigueur et efficacité.


Une fois ce petit "plan de travail" effectué, tu auras probablement identifié les fonctions que tu utiliseras par la suite (DrawStat, String etc...).

Il est tout à fait légitime de ne pas connaitre/maîtriser tous les outils que l'on projette d'utiliser (les chaînes de caractère pour toi en l’occurrence). Il n'y a pas de mal à ça, bien au contraire ! Un projet, c'est avant tout l'occasion de progresser, et cette avancée passe par l'apprentissage de nouvelles fonctions, la découverte d'astuces etc... Du moins c'est ce que je m'efforce humblement de faire dans mes travaux, puisque chacune de mes créations m'a permis d'aborder de nouveaux outils et de mettre en place des techniques dont je n'avais pas encore idée.

En cela, je pense à nouveau qu'il est nécessaire de prendre le temps de s'approprier les fonctions qui nous sont inconnues. Planète Casio a maintenant assez de contenu (de qualité, qui plus est), pour que les programmeurs puissent acquérir seuls les connaissances qui leur manquent, et ce, quel que soit leur expérience en la matière.

En complément à ces connaissances "figées", le forum apporte une dimension "vivante" aux compétences que quiconque peut acquérir librement. Ce qui suit est très important pour moi, et c'est ce qui m'a motivé à rédiger ces conseils. Je pense qu'il ne faut pas se tromper sur l'utilisation du forum. Le forum est là pour nous guider (il a bien d'autres fonctions), pas pour faire le boulot à notre place, ou nous pondre la solution à tous nos problèmes. De ce qu'il m'a semblé, et je peux certainement me fourvoyer, mais tu ouvres un topic sur le forum sitôt une difficulté rencontrée (les Str), ou sitôt qu'une question sans réponse s'offre à toi (Comment faire du scrolling ?). En soit c'est tout à fait normal, et c'est très bien de penser à demander l'avis et/ou l'aide de la communauté, qui est là justement pour prodiguer une aide spontanée et généreuse. Mais j'ai le sentiment que cette démarche, celle qui consiste à poster sur le forum, n'est pas la bonne ici. C'est par exemple ce type de messages qui me gêne :

Scientifix a écrit :
Tu peux écrire le code ? j'ai déjà essayé un truc avec StrJoin ( mais ça marchait pas, je me suis sûrement trompé ..


Es-tu sûr de ce que tu cherches à faire avec la fonction "StrJoin" ? Es-tu sûr que cette fonction correspond à ton besoin ? Si tel est le cas, pourquoi ne pas prendre le temps de lire les quelques lignes très bien écrites au sujet de cette fonction, de t'exercer sur des applications plus simples avant de l'implémenter dans ton programme ? Si telle a été ta démarche, pourquoi ne pas nous présenter ton code ? Nous pourrions alors t'aider à identifier d'éventuelles corrections/améliorations !

Cette série d'interrogations est bien plus formatrice et bénéfique que la question "Tu peux écrire le code ?", et c'est là toute la signification de mon message. Tu ne devrais pas chercher à tout prix à arriver immédiatement à un résultat, mais plutôt chercher à cibler ton besoin, en déduire l'outil adéquat, en comprendre ses conditions d'utilisation et son fonctionnement pour enfin l'appliquer à ton problème réel.

C'est vraiment comme ça que tu progresseras, du moins c'est ainsi que ça s'est passé pour moi, d'autres pourrons confirmer et/ou parler de leur expérience. Et ça ira bien pus vite que ce que tu pourrais imaginer...


Enfin, et ça n'est pas négligeable de mon point de vue, l'ensemble des programmes dont regorge Planète Casio sont là pour fournir à quiconque une énorme quantité d'exemples. Oui car la théorie a aussi besoin d'exemples, et fort heureusement, tu pourras en trouver de très nombreux ici. Je te suggère de chercher des programmes qui abordent les mêmes problématiques que le tien, ou plus simplement ceux qui utilisent des outils dont tu ne maîtrises pas entièrement le fonctionnement. Attention cependant, pour rester en accord avec ce que j'exposais plus haut, il ne s'agit pas de "copier" des bouts de code, mai s bel et bien d'en saisir le fonctionnement, afin de l'adapter à son propre projet, voire même de l'améliorer.


J'ai eu envie par le passé de poster un tel message sur le forum, à diverses occasions . Je l'ai fait ici aujourd'hui, et ça n'a strictement rien de personnel avec toi Scientifix. Disons que c'est l’intérêt que je porte à ton projet qui a fini de me motiver à le faire, et parce que je veux apporter du sens aux efforts de ceux qui comme toi travaillent et s'investissent dans de très beaux projets. Je tiens à exprimer, pour finir, que ces démarches dont je parle plus haut me semblent essentielles dans la "construction" d'un programmeur. On lit parfois sur Planète Casio que le Basic ne vaut rien, qu'on ne peut rien faire avec, que c'est trop facile etc... et que le C vaut mieux. Certes. Mais le Basic Casio est un langage extrêmement bien adapté à l'acquisition des "bons réflexes de programmation". Il permet de mettre en place tous les automatismes et les bases nécessaires à l’appréhension de langages plus bas niveaux, et constitue une merveilleuse introduction au monde de la programmation pour ceux qui le découvre.
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 !
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

Citer : Posté le 28/06/2014 14:59 | #


Encore un pavé de ne0
In Arch, I trust ! And you ?
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 28/06/2014 15:06 | #


C'est rigolo, mais à chaque fois que je poste maintenant, j'ai le droit à ce genre de message ou à des corrections orthographiques (et pas toujours de la part des mieux placés). C'est sympathique, mais pas très constructif au final.

D'autant plus que je m'efforce justement de ne pas faire de "pavés" : je fais mon possible pour "découper" et organiser mes propos.

Après peut-être que je fais ça mal, dans ce cas j'en suis désolé, alors n'hésitez pas à me le dire !

Ajouté le 28/06/2014 à 15:17 :
@Sicentifix : pour revenir à ton problème originel, si je comprends bien, tu veux afficher du texte à plusieurs endroits différents ? Si tel est bien le cas, tu seras obligé d’utiliser plusieurs fois la fonction "Text", ou du moins d'utiliser la fonction "Text" à des coordonnées différentes.


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 !
Scientifix Hors ligne Membre Points: 762 Défis: 30 Message

Citer : Posté le 28/06/2014 16:54 | # | Fichier joint


Ne0tux,
Merci beaucoup pour ton message que j'ai lu avec beaucoup d'intérêt et qui m'a permis de cerner les problèmes que j'ai face à la programmation
C'est très gentil de ta part et je tire beaucoup d'enseignement de ce que tu as écrit !! Je vais commencer les schémas de mon programme et me pencher sur les outils dont j'ai besoin pour mener à bien mon projet !! J'ai déjà imprimé les explications de chaque fonctions pour pouvoir y jeter un coup d'œil rapidement
Merci pour tes nombreux conseils, je vais mettre le frein en place et réfléchir plutôt que de foncer dans le brouillard et de m'égarer
Que penses tu de ma partie du programme qui gère les arbres binaire (pièce jointe) ?
Merci encore !!
Et bonne programmation

@-florian66- : je veux bien le programme de ton frère pour l'étudier en détail !!
JE SERAI ABSENT POUR 2 ANS A+

Je suis fan de Mathématiques et de Sciences en général (d'où mon nom ). Consultez mes programmes en rapport avec les Maths
--------------------------------------------------------

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

Citer : Posté le 28/06/2014 22:49 | #


Je suis soulagé de constater que mes propos n'ont pas été mal pris, car après coup j'ai eu quelques craintes.

Je me suis permis de donner des conseils alors que je ne suis pas forcément le mieux placé pour le faire, et que tu sais peut-être parfaitement ce que tu fais : j'espère que tu ne m'en porteras pas rigueur.

J'ai regardé ton programme et je dois dire que pour les arbres de profondeur 1 à 3 c'est bien sympa.

L'idée de représenter l'arbre d'un côté et le tableau de l'autre est à garder je pense. D'ailleurs avec ce système tu pourrais peut-être faire des arbres beaucoup plus "denses" et de profondeur supérieure sur un seul et même écran. Par exemple tu condense l'arbre sur les 3/4 de l'écran à gauche, et à droite tu dessine une sorte d'écran qui affiche les données relatives au point sélectionné, par curseur qui permet de se balader sur l'arbre.

Il y a quelquechose que je n'ai pas compris : dans les arbres binaires, est-ce que renseigner qu'une seule des deux probabilités ne suffit pas (pardonne moi, je n'ai pas fait de probabilités depuis belle lurette) ?

Au niveau du code, je pense qu'il serait plus intéressant de faire quelquechose de "dynamique". Ton programme actuel fonctionne bien, mais il ne gère que des "cas particuliers". De ce que j'ai pu saisir, tu as fait un bout de code pour chaque profondeur (1, 2, 3 et plus). Il serait plus raisonnable de faire un seul morceau qui est capable d'afficher le texte et les branches de l'arbre directement en fonction de la profondeur choisie. Ce n'est pas très compliqué à faire si tu veux rester sur le schéma actuel, tout peut se faire avec des lois affines normalement.

Ou du moins, il y a des portions de code qui reviennent à plusieurs reprises et je suis persuadé que tu peux éviter ça (je pense à l'entrée des probabilités par l'utilisateur, tu le fais 3 fois actuellement, par exemple).

Il y a d'autres morceaux qui mériteraient d'être simplifiés. Par exemple tu as souvent des successions de lignes qui se ressemblent beaucoup, à une ou deux coordonnées près : tu pourrais faire une petite boucle pour gagner de la place !

Locate 11,1,"-"
Locate 11,2,""
Locate 11,3,"-"
Locate 11,4,"-"
Locate 11,5,"-"
Locate 11,6,"-"
Locate 11,7,"-"


devient

For 1->r To 7
Locate 11,r,"-"
Next
Locate 11,2,""


Le bout de code qui suit cet exemple peut aussi être bien raccourci par le même procédé, idem pour l'affichage du tableau (les numéro de ligne, les "x"...).

En appliquant cette astuce optimisation tu gagneras déjà presque 500 octets. Ensuite, en essayant de faire en sorte qu'un bout de code ne soit pas recopié par la suite dans le programme, tu en gagneras 1000 autres. L'avantage de faire quelquechose de "dynamique" comme je le disais plus haut, c'est que si ça fonctionne, et bien ça fonctionne aussi bien pour 2 que pour 10 ou 100, et c'est là tout l’intérêt de la programmation !

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 !

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 109 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