Bon voilà, je m'attaque au Basic z80 pour le concours !
Je voulais savoir comment on fait pour afficher un nombre dans l'écran graphique ?
Ou comment transformer un nombre en chaîne de caractères, sachant que la fonction equstring( ne s'applique pas aux variables, mais aux Yx !
Merci bien !
Basic z80
28 messages
• Page 1 sur 3 • 1, 2, 3
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Messages: 1985
- Images: 8
- Inscription: 02 Aoû 2009, 00:00
- Localisation: 54, près de Metz
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Ingé Logiciel chez Amazon
Re: Basic z80
2 solutions:
- faire un algorithme qui étudie le nombre chiffre par chiffre et crée la chaîne (besoin de diverses boucles, dont certaines peuvent être économisées/accélérées par utilisation du logrithme décimal)
- le plus simple et rapide: créer une variable Yx contenant ce nombre (programme de Tle ES - il faut faire une régression linéaire de données statistiques bien choisies pour enregistrer une équation de droite dont l'un des 2 paramètres sera ce nombre - tu convertis en chaîne et tu découpes)
AUTOCALC utilise cette dernière solution dans le sous-programme Z1NUMSTR.
http://tiplanet.org/index.php?mod=ar ... voirid=981
A adapter...
- faire un algorithme qui étudie le nombre chiffre par chiffre et crée la chaîne (besoin de diverses boucles, dont certaines peuvent être économisées/accélérées par utilisation du logrithme décimal)
- le plus simple et rapide: créer une variable Yx contenant ce nombre (programme de Tle ES - il faut faire une régression linéaire de données statistiques bien choisies pour enregistrer une équation de droite dont l'un des 2 paramètres sera ce nombre - tu convertis en chaîne et tu découpes)
AUTOCALC utilise cette dernière solution dans le sous-programme Z1NUMSTR.
http://tiplanet.org/index.php?mod=ar ... voirid=981
A adapter...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41909
- Images: 15444
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Basic z80
Pour afficher dans l'ecran graphique, j'utilise Text(coord vert.,coord hor.,"Mon texte")
tu n'as qu'à remplacer "Mon texte" par ta variable S, genre Text(13,25,S
Les guillemets c'est pour la chaine de caractères mais ça je pense que t'as compris ^^
Les coordonnées sont en pixels (62*94), ( 0,0 en haut à gauche ) et Text( est ici :
tu n'as qu'à remplacer "Mon texte" par ta variable S, genre Text(13,25,S
Les guillemets c'est pour la chaine de caractères mais ça je pense que t'as compris ^^
Les coordonnées sont en pixels (62*94), ( 0,0 en haut à gauche ) et Text( est ici :
La procrastination, c'est rigolo.
-
WellenPremium
Niveau 11: LV (Légende Vivante)- Messages: 447
- Inscription: 17 Déc 2010, 00:00
- Localisation: Compiègne (Picardie)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: étudiant UTC
Re: Basic z80
Wellen a écrit:Pour afficher dans l'ecran graphique, j'utilise Text(coord vert.,coord hor.,"Mon texte")
tu n'as qu'à remplacer "Mon texte" par ta variable S, genre Text(13,25,S
Les guillemets c'est pour la chaine de caractères mais ça je pense que t'as compris ^^
Tu n'as pas du utiliser souvent Text( pour afficher un nombre alors...
Text( ne comprend pas les nombres aussi bien que Disp.
Il y a plein d'inconvénients et d'impossibilités...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41909
- Images: 15444
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Basic z80
Ca marche assez bien pour moi..
Tu veux parler du fait que text( affiche le premier chiffre du nombre et pas son dernier à l'endroit indiqué, et donc que ca décale tout lors de passage au centaines et milliers ?
Tu veux parler du fait que text( affiche le premier chiffre du nombre et pas son dernier à l'endroit indiqué, et donc que ca décale tout lors de passage au centaines et milliers ?
La procrastination, c'est rigolo.
-
WellenPremium
Niveau 11: LV (Légende Vivante)- Messages: 447
- Inscription: 17 Déc 2010, 00:00
- Localisation: Compiègne (Picardie)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: étudiant UTC
Re: Basic z80
De façon non exhaustive:
- Text( ignore le mode courant (normal, scientifique, ingénieur, nombre de décimales) et affiche le nombre comme il veut sans aucun contrôle (particulièrement embêtant si tu t'es tapé toute une interface graphique, et que tu dois afficher dans un cadre bien précis)
- Text( ne pemet pas d'afficher sous forme frationnaire
- Text( ne sait pas afficher les nombres complexes
- Text( ne sait pas afficher les listes ou matrices
- ...
(et tout ça ne cause aucun problème avec Disp)
D'où l'intérêt de convertir les nombres en chaînes, car les chaînes on sait les contrôler.
- Text( ignore le mode courant (normal, scientifique, ingénieur, nombre de décimales) et affiche le nombre comme il veut sans aucun contrôle (particulièrement embêtant si tu t'es tapé toute une interface graphique, et que tu dois afficher dans un cadre bien précis)
- Text( ne pemet pas d'afficher sous forme frationnaire
- Text( ne sait pas afficher les nombres complexes
- Text( ne sait pas afficher les listes ou matrices
- ...
(et tout ça ne cause aucun problème avec Disp)
D'où l'intérêt de convertir les nombres en chaînes, car les chaînes on sait les contrôler.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41909
- Images: 15444
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: Basic z80
Bah je pense que je vais me contenter de l'afficher avec Text car il ne s'agit que d'un entier !
Merci à vous deux !
Merci à vous deux !
Mes programmes => ici !
-
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)- Messages: 1985
- Images: 8
- Inscription: 02 Aoû 2009, 00:00
- Localisation: 54, près de Metz
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Ingé Logiciel chez Amazon
Re: Basic z80
Oui voilà en fait moi j'ai fait surtout des jeux et pas des programmes "calculatoires" donc je n'avais besoin que d'entiers.
Mais c'est vrai que vu comme ça..
Mais c'est vrai que vu comme ça..
La procrastination, c'est rigolo.
-
WellenPremium
Niveau 11: LV (Légende Vivante)- Messages: 447
- Inscription: 17 Déc 2010, 00:00
- Localisation: Compiègne (Picardie)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: étudiant UTC
Re: Basic z80
Dites, est-ce possible de sauver le contenu d'une matrice dans une chaine de caractères ? Ou par un autre moyen ?
Parce que pour un jeu en Basic, necessitant 1 matrice pour le dessin d'un niveau.. Bah on se retrouve vite bloqué non ?
S'il était possible de sauver le contenu d'une matrice et de faire l'inverse(injecter une chaine dans une matrice), on n'aurait plus besoin que d'une voire deux matrices que l'on effacerait à chaque niveau..
Dommage qu'il y ait pas de variable locales à un programme en Basic (quoi il y en a ? où ça ?)
Parce que pour un jeu en Basic, necessitant 1 matrice pour le dessin d'un niveau.. Bah on se retrouve vite bloqué non ?
S'il était possible de sauver le contenu d'une matrice et de faire l'inverse(injecter une chaine dans une matrice), on n'aurait plus besoin que d'une voire deux matrices que l'on effacerait à chaque niveau..
Dommage qu'il y ait pas de variable locales à un programme en Basic (quoi il y en a ? où ça ?)
La procrastination, c'est rigolo.
-
WellenPremium
Niveau 11: LV (Légende Vivante)- Messages: 447
- Inscription: 17 Déc 2010, 00:00
- Localisation: Compiègne (Picardie)
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: étudiant UTC
Re: Basic z80
Oui, il est possible de sauvegarder une matrice dans une chaîne.
Tu pars donc d'une chaîne vide.
Il te faut parcourir la matrice, et tu convertis chaque nombre en chaîne,avant de le concaténer (addition) à ta super chaîne.
Pour la conversion nombre chaîne, il n'y a pas de fonction pour faire ça sur z80.
Il faut donc un petit programme.
L'algorithme "naturel" sera extrêmement lent.
Il faut donc se montrer malin, ce que je fais dans le sous-programme ZNUMSTR d'AutoCalc.
Si on doit convertir un nombre A, créons 2 liste:
L1: {0,A}
L2: {1,A}
L'équation de la droite reliant les points de coordonnées (0;A) et (1;A) est y=0*x+A.
Il suffit donc de demander une régression linéaire LinReg(), qui va enregistrer cette équation dans Y1.
Y1 est une variable de type "EXPR", et il y a sur z80 une instruction de conversion des expressions en chaînes de caractères.
Et voilà, tu as ton nombre sous forme de chaîne.
Tu pars donc d'une chaîne vide.
Il te faut parcourir la matrice, et tu convertis chaque nombre en chaîne,avant de le concaténer (addition) à ta super chaîne.
Pour la conversion nombre chaîne, il n'y a pas de fonction pour faire ça sur z80.
Il faut donc un petit programme.
L'algorithme "naturel" sera extrêmement lent.
Il faut donc se montrer malin, ce que je fais dans le sous-programme ZNUMSTR d'AutoCalc.
Si on doit convertir un nombre A, créons 2 liste:
L1: {0,A}
L2: {1,A}
L'équation de la droite reliant les points de coordonnées (0;A) et (1;A) est y=0*x+A.
Il suffit donc de demander une régression linéaire LinReg(), qui va enregistrer cette équation dans Y1.
Y1 est une variable de type "EXPR", et il y a sur z80 une instruction de conversion des expressions en chaînes de caractères.
Et voilà, tu as ton nombre sous forme de chaîne.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41909
- Images: 15444
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
28 messages
• Page 1 sur 3 • 1, 2, 3
Qui est en ligne
Utilisateurs parcourant ce forum: ClaudeBot [spider] et 4 invités