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 » Echelle des temps géologiques en Add-In (Graph 35e+II)
Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Echelle des temps géologiques en Add-In (Graph 35e+II)

Posté le 18/02/2022 16:38

Salutations

Voici un projet (dont LePhenixnoir est au courant), que j'aimerais bien mener à bien...

Je souhaite faire un add-in façon Physium, avec des fonction de recherche détails, bref façon Physium, avec une possibilité de navigation, façon Physium...

Je souhaite y faire apparaitre ceci:
https://i.pinimg.com/474x/ec/ee/eb/eceeeb3875282291d6bb79ced52f7eaa--ent-alpine.jpg

Voici tous nos échanges... Si quelqu'un veut collaborer avec moi...

Nos échanges
Cliquer pour enrouler
>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-11 15:32:10

Salut,

Idéalement tu peux demander sur le forum ; ici en privé il n'y a que moi qui peux répondre. Mais c'est déjà pas mal

Quel type de programme veux-tu créer ? Un programme Basic dans PRGM ? Un programme Python ? Un programme Basic dans C.Basic ? Ou un add-in en C/C++ ? L'approche est différente pour chacune des options.

En Basic dans PRGM tu as accès à pas mal de fonctionnalités, et tu pourras notamment dessiner à l'écran des textes/formes complexes. Vu que ta frise contient beaucoup d'informations la taille de l'écran va te limiter un peu donc c'est bien d'avoir accès à du dessin complexe pour bien exploiter la place disponible. L'inconvénient c'est que c'est assez lent. L'add-in C.Basic fournit une sorte de PRGM alternatif qui élimine cet inconvénient en allant beaucoup plus vite, mais il faut installer C.Basic d'abord (ce qui est facile).

En Python les programmes interactifs sont un peu limités, parce que quand on fait du dessin à l'écran la seule touche qu'on peut détecter c'est AC/ON ; pour avoir plus d'interactivité il faut utiliser la console. Par contre c'est un langage avec lequel les gens sont généralement familiers, et le dessin en Python est sensiblement plus rapide qu'en Basic.

En C/C++ tu peux faire ce que tu veux sans problèmes de vitesse, et le résultat est une application comme Physium ; par contre il faut de l'expérience en C, tout prend un peu des plombes à coder, et le SDK est pas facile à installer.

Si tu n'as pas d'idée préalable de l'approche que tu veux, je suggère de regarder ce avec quoi tu as de l'expérience et le temps que tu penses investir dans le projet pour décider ; les options les moins risquées sont probablement Basic/Python, je ne conseille un add-in que si tu veux y passer longtemps ou que tu as déjà pas mal d'expérience.

Lephe'

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-11 17:39:10

Merci pour ta réponse rapide.
(pour info, je suis AESH )

Dans l'idéal, j'aurais préféré un add-in, mais je ne connais pas le C...
Je me débrouille en Basic, même si je ne le maîtrise pas parfaitement.
Je me débrouille aussi en JavaScript... Python, je découvre grâce à la calto.
Pour finir, SDK ne marche pas sur mon PC...
C.Basic, c'est un logiciel ?

Merci pour ton aide et ta sympathie

A bientôt

N

>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-11 18:23:56

Pas de souci. Oh un adulte sur Planète Casio ! Bienvenue, tu verras on est tous des enfants ici (22 ans moi ).

Si tu ne connais pas le C, ça va être un peu douloureux. Essayons de voir dans un premier temps si tu peux faire une version fonctionnelle de ta frise en Basic/Python, et éventuellement le porter après.

Pour finir, SDK ne marche pas sur mon PC...


"SDK" tout seul veut juste dire "un ensemble d'outils pour coder des programmes", c'est un terme utilisé non seulement avec les calculatrices, mais aussi les ordis, téléphones, etc. Comme je n'ai pas nommé de SDK pour Graph 35+E II (ça pourrait être le fx-9860G SDK de CASIO ou mon fxSDK) je ne sais pas trop ce que tu as essayé d'installer. Mais oui c'est forcément un peu compliqué à installer dans tous les cas.

C.Basic (topic ici, wiki ici) est un add-in de Sentaro21 que tu peux voir en gros comme "PRGM en mieux". Tu peux prendre un programme Basic normal et le lancer dans C.Basic et il va 5 fois plus vite. Il y a plein d'autres fonctions en plus mais c'est moins important pour nous.

Note que les programmes Basic sont compatibles avec tous les vieux modèles de Graph monochrome, alors que Python n'est quasiment disponible que sur la Graph 35+E II ; si tu comptes partager ta frise avec d'autres personnes ça peut impacter ton choix.

Avant de décider, est-ce que tu peux décrire comment tu imagines ton application ? Comment se passerait une utilisation classique du programme (recherche du nom d'une époque à partir de la date ? l'inverse ? visualisation de la frise complète ?), comment on contrôlerait le programme, ce à quoi ça ressemblerait à l'écran...

Lephe'

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-12 08:14:44

Hello

J'en ai 24

Merci pour tes explications !

Effectivement je n'ai pas dû chercher au bon endroit... Je vais aussi regarder les lien que tu m'as mis.

Pour répondre à tes questions:

J'imagine le programme ainsi:

On peut naviguer sur la frise, un peu comme dans Physium.
Une page avec la frise complète avec les dates, éons, périodes, bref, les données que je t'ai montré...
Une deuxième qui permettrait de trouver la donnée complète en fonction d'une date.
Les contrôles se feraient comme sur Physium, avec les tableau de recherche et détails... Un menu en bas de l'écran et le tout se contrôlerait avec les flèches et les touches lettres et chiffres.

Je suis sans doute un peu gourmand, mais mon cerveau à faim...

Comme dit, si ce n'est pas faisable, ce n'est pas dramatique, mais j'ai envie d'essayer

A +

N

>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-12 09:39:27

Ok ! Merci pour les détails.

Donc pour ce que tu souhaites faire en termes de contrôles, notamment avec les touches du clavier, les menus etc. ça ne sera pas possible en Python. En Python, on n'a qu'une touche en mode graphique (AC/ON) et que la saisie de texte dans la console ; jamais on ne peut contrôler avec les flèches ou les touches F1-F6. (C'est très dommage et on demande à CASIO à toutes les occasions possibles d'arranger ça.)

A priori ta meilleure option pour l'instant c'est de coder en Basic. Pour avoir un niveau de réactivité à la Physium il faudra coder avec C.Basic, mais tu peux aussi commencer dans PRGM et juste ignorer la relative lenteur pour l'instant. (Tu verras vite ce que je veux dire ; en mode texte ça va mais en mode graphique pour afficher la mini-version de la table périodique ça prendrait genre ~1.5 seconde).

Il ne sera pas trop tard ensuite pour réécrire ton code en C si tu veux faire un add-in, mais au moins tu auras déjà une version fonctionnelle.

Si ça te tente, tu peux commencer par le tutoriel de programmation Basic CASIO qui utilise PRGM, même si tu te débrouilles sans doute assez bien pour attaquer tout de suite. Les programmes que tu écris dans PRGM peuvent être lancés dans C.Basic sans modification donc tu auras toujours accès aux deux.

Du coup, pour revenir à ta question originale :

J'aurais un projet, mais je ne sais comment m'y prendre, bien que j'aie des bases en programmation.

Est-ce qu'il y a des points particuliers qui t'échappent (par exemple, comment avoir une frise plus grande que l'écran et la faire défiler, ou bien comment organiser/séparer le code, ou bien comment coder la recherche) ou c'était plus des problèmes sur le code en lui-même ?

Lephe'

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-12 10:00:25

Disons que quand j'étais au lycée j'étais plutôt bon programmation, mais il y a des trucs que j'ai oublié et j'en ai fait des programmes (ils étaient sur une autre calto que j'ai revendue) mais pas d'aussi compliqué...

C.Basic... Ca se met sur la calto ou sur le pc? Je l'ai téléchargé, mais je ne vois pas où aller...

C'est très vaste, parce qu'il y a tout un tout... Ce sont des notions que je n'ai peut-être encore jamais utilisé, donc je t'avoue que je ne sais pas trop par quoi commencer...

PS: Merci pour ton commentaire sur mon programme que j'ai posté ce matin. Je ferais sans doute ça plus tard

>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-12 10:27:29

Ok, alors C.Basic c'est un add-in. De mémoire le téléchargement c'est une archive ; tu prends le .g1a dedans, et tu l'installes dans la mémoire de stockage (tutoriel ici). Ensuite ça apparaît comme une icône dans le menu principal. Tu peux utiliser C.Basic pour lancer et/ou éditer des programmes, mais si tu n'as plus trop l'habitude PRGM est plus simple pour démarrer.

Pour ce qui est de ton application, une bonne pratique c'est de commencer par réfléchir aux données.

Quelles sont les données que tu vas manipuler ?
Ce sont les informations sur les ères/périodes géologiques, avec des noms (à savoir du texte), des années (à savoir des nombres), et peut-être des relations "parent/enfant" (pour nommer les sous-périodes/époques/étages).

Une des questions les plus importantes ça va être comment tu stockes ces données dans des variables du programme. Et ça, ça dépend de leur taille, quantité, et de ce que tu vas faire dessus.

Par exemple, le texte. Le plus simple serait que ton programme dise [Locate 1, 1, "Mésozoïque"]. Mais ça ça ne te permettra pas de faire des recherches d'ères par nom, pour ça il faut que le nom soit stocké dans une variable. En Basic CASIO tu as accès à des chaînes de caractères (tutoriel ici), mais elles sont limitées à 255 caractères, donc tu ne pourras pas mettre tous les noms dans une seule variable. Donc déjà tu sais que ce sera compliqué d'avoir tous les noms dans des variables en même temps.

En réfléchissant un peu, on peut par exemple choisir la façon suivante : tu aurais un sous-programme (disons "NOM") dont le rôle est de donner le nom de chaque étage, qui prendrait en entrée un identifiant d'étage, et retournerait en sortie le nom de l'ère, période, époque, étage correspondant dans Str 1... Str 4.

// Version très peu efficace pour exemple
// On suppose que le numéro de l'étage est dans N
If N=3
Then "Cénozoïque"→Str 1
"Tertiaire Néogène"→Str 2
"Pilocène Sup."→Str 3
"Gélacien"→Str 4
Else
...

Un inconvénient de ça c'est que tu n'auras pas aisément de représentation visuelle, et tu peux voir que j'ai séparé "Tertiaire" en "Tertiaire Paléogène" et "Tertiaire Néogène".

Pour les années c'est moins difficile, il te suffit de faire une liste (tutoriel ici) puisque tu peux mettre jusqu'à 999 valeurs dans une liste, ce qui est amplement suffisant pour toute la frise.

Dis-moi si ça te parle tout ça. La question suivante normalement c'est "quelles opérations tu fais sur les données". Par exemple là avec l'approche que j'ai esquissée tu pourras faire des recherches dans les deux sens, mais reproduire la frise à l'identique sera plus difficile.

Lephe'

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-12 11:24:49

Aïe... Il m'est impossible de l'installer... Pas assez de mémoire alors que je n'ai quasiment rien...
Tant pis pour la lenteur... Quitte à avoir plusieurs programmes liés.

Il y a des choses qui me reviennent et ça ressemble un peu au JS, même si je suis pur amateur...

Par contre, je n'ai pas compris comment on 'lie' les programme entre eux...

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-12 13:02:22

Re

Bonne nouvelle, j'ai réussi à mettre CBasic.
C'est vrai que ça a l'air un peu différent.
J'espère que je ne vais pas faire de fausse manip'...

A+
N

>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-12 13:29:32

Bien joué pour l'installation. Tu n'es pas obligé de t'en servir dans un premier temps, c'est juste une aide pour accélérer les programmes.

Pour "lier" les programmes entre eux tu peux utiliser la commande Prog (description ici) qui appelle un autre programme comme sous-programme. (L'exécution reprendra toute seule une fois le sous-programme fini, tu ne peux pas revenir au programme principal avec un autre Prog.)

Lephe'

<< Objet : Aide pour un projet, de Nirsab reçu à 2022-02-12 19:20:32

Merci !!
(Je n'avais pas vu que tu m'avais répondu )
Je crois que je n'ai plus qu'à rentrer mes variables et à plancher...
Ca peut marcher aussi si je fais un genre de base de donnée, stp ?

PS: J'ai ajouté ta proposition au programme que j'ai posté ce matin

>> Objet : Aide pour un projet, de Lephenixnoir reçu à 2022-02-12 22:04:19

Un genre de base de données... on aimerait ! Mais il n'y a pas vraiment de mécanisme en Basic CASIO pour faire ça. Tu as juste accès à tes variables. Au fond le programme que je donnais en exemple tout à l'heure implémente une sorte de requête à cette supposée base de données... mais je ne crois pas que tu puisses faire beaucoup mieux comme ça.

Lephe'



Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/02/2022 17:03 | #


J'ai remis les échanges dans l'ordre naturel. Tu as bien fait des les inclure

Pour coder des add-ins la seule chose à choisir actuellement c'est entre le fx-9860G SDK (développé par CASIO, qui tourne sous Windows et avec une interface graphique), et le fxSDK (développé par euh... moi, qui tourne sous Linux et en ligne de commande).

La paire fxSDK/gint est assez populaire mais aussi un peu galère à installer, la ligne de commande étant pas naturelle pour tout le monde. Maintenant, dans tous les cas tu risques de souffrir un peu pour faire marcher ton code C, à voir si ça suffit déjà ou si t'es plus à ça près... x)
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Tituya En ligne Administrateur Points: 2138 Défis: 26 Message

Citer : Posté le 18/02/2022 17:08 | #


Salut !

Je viens de lire vos échanges avec Lephé et je me permets de donner mon avis.
Ce projet est relativement imposant, si tu souhaites avoir une navigation à la manière de physium, des détails lorsque tu cherches une date ou encore afficher cette frise simplement gigantesque, cela risque d'être compliqué en Basic pur.

C.basic est une alternative intéressante et surtout pratique, permettant d'outrepasser la lenteur de PRGM en ne demandant pas une connaissance particulière de la programmation. Mais niveau ergonomie et programmation ce n'est vraiment pas pratique.

Programmer avec le fxsdk (et gint) reste selon moi la solution t'offrant le plus de liberté et de facilité compte tenu du stockage des informations et des opérations (je pense notamment à la recherche d'une période en fonction d'une date.). De plus l'affichage de cette frise serait grandement simplifié de cette manière.
Cependant le C ce n'est pas une tasse de thé.. Le temps de développement pour ce projet risque de te prendre beaucoup plus longtemps qu'avec C.basic.

Si tu es motivé·e et que tu n'as pas peur du temps, je te conseille de partir sur un add-in

Au passage, sympa d'être AESH, ce n'est pas un métier facile
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Citer : Posté le 18/02/2022 17:29 | #


Merci, je souhaite faire un add-in, justement...

Il faut juste que trouve quoi télécharger (réessayer, du moins...)...
La réussite commence avec la volonté d'essayer

Mes programmes
Clique APRES y avoir jeté un oeil

Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 18/02/2022 17:32 | #


Tu peux commencer par là (pour le fxSDK) : https://www.planet-casio.com/Fr/forums/topic16614-last-giteapc-installer-et-mettre-a-jour-automatiquement-des-projets-gitea.html

Si tu es sous Windows il faut que tu utilises WSL.

Pour le fx-9860G SDK c'est le lien dans mon message précédent.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Citer : Posté le 18/02/2022 17:52 | #


Utiliser WSL? c'est à dire ?
La réussite commence avec la volonté d'essayer

Mes programmes
Clique APRES y avoir jeté un oeil

Potter360 En ligne Rédacteur Points: 1219 Défis: 2 Message

Citer : Posté le 18/02/2022 18:47 | #


WSL (en très gros) est un logiciel (presque) intégré à Windows qui te permet de pouvoir avoir un terminal Linux (la distro que tu veux, je crois qu’il y en a pas mal) sous Windows. Je te laisse regarder sur internet (tu cherche « install wsl » sur Google) comment installer WSL c’est assez facile.
Globalement, coder. Mal, mais coder.

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