Posté le 30/09/2006 à 13:17 Membre depuis le 15/03/2005, 3470 messages
Utilise les "Output(", avec tu peut afficher ou tu veux sur l'écran, et pour les coordonnés, pour X, tu peut utiliser une variable et idem pour Y, genre :
1->A:1->B:3->C Output(A,B,C


Ce code va marquer "3" en haut à gauche de l'écran. (Après c'est à toi de calculer où il faut l'afficher pour qu'il soit avant ou après le résultat de Str1.)
Posté le 30/09/2006 à 15:00 Membre depuis le 11/09/2006, 20 messages
Ha, ok, les "Output(", j'ai compris comment sa marchait (tout mon prgm est fait avec)

J'avais compris que Very parlais des Disp.
Posté le 30/09/2006 à 15:12 Membre depuis le 15/03/2005, 3470 messages
Oui, tu peut faire avec des Disp (donc le sroll se fait automatiquement, mais bon, ça doit être dur à faire cheeky).
Posté le 30/09/2006 à 16:01 Membre depuis le 09/07/2003, 21783 messages
Hum je remarquais juste que (sous réserve, j'ai pas retesté depuis une éternitée), tu peux afficher plusieurs strings/variables à la suite –gauche-droite– sans forcément calculer explicitement leur longeur (ce qui peut être parfois assez lourd, pex lorsque l'on passe par les int(log(n)+1) etc.. ), avec les fonctions text(, Output(, et je crois Disp(.

En gros, je voulais juste remarquer que l'on pouvait faire des trucs genre text(15,15,str1,A,str2," ",B), ce qui peut être assez sympa. (et limite par là-même l'intérêt des conversions var->string )
Posté le 30/09/2006 à 16:20 Membre depuis le 15/03/2005, 3470 messages
Par contre, avec "Output(" on ne peut pas faire ça : tu ne peut qu'afficher une chose en même temps, genre :
Output(A,B,C,"TRUC"


Ne marchera pas (et vu que Disp met les nombres d'un coté et le texte de l'autre, il reste que "Text(" à utiliser...).
Posté le 30/09/2006 à 19:36 Membre depuis le 09/07/2003, 21783 messages
Arf effectivement: je doutais beaucoup du Disp, un peu du Output, mais j'en était sur pour le Text( – y'a certains programmes que l'on n'oublie pas hehe

Bon, reste soit à utiliser le Text(, qui pootre vraiment pour peu que le programme soit légérement conséquent, soit la méthode pédestre (de la prog spaghetti quoi) soit y aller à la main, c'est à dire des trucs comme:

Output(A,B,C
Output(A,B+int(log(C)+1),"TRUC"

Si les Hypothèses_Qui_Vont_Bien sont vérifiées, i.e principalement : C entier > 0 – traiter les cas négatifs n'est pas trop un pb, il suffit de pendre la valeur absolue et de compter la place du signe (1) , et on peut ruser pour le cas nul (2) – et A+int(log(C)+1) < 16-taille_du_string_à_afficher.

En général (un compteur, un nombre connu) le signe peut être connu à l'avance, l'interval de taille est à peu près connu, ce qui peut éviter de perdre du temps à faire quelques manipes...

Mais dans le cas général:

(1) On peut obtenir le signe en faisant par exemple x/abs(x) si x est différent de 0, – si le cas nul est possible, on peut toujours ruser, cf (2)–, et l'on peut donc obtenir le "taille" du signe (on dit que `-` prend 1 place et + aucune puisqu'il n'est pas affiché) avec par exemple: (1-S)/2, où S désigne x/abs(x)

(2) En effet log(0) n'est pas vraiment définit, et 1/0 non plus.Il suffit alors de modifier très légérement la variable sans pour autant trop modifier le résultat: par exemple si notre variable est entière, faire log(C+0.1) suffira à éviter ce problème. Si la variable comporte n décimales, il suffit en génral de rajouter un truc de la forme 1*10^(-(n+1)). Pour la division par 0, on applique le même principe, ( même si un petit rajout sera bcp plus sensible lors d'une division qu'un log..), c'est à dire que l'on fera par exemple int(abs(x)/(x+0.1)+0.2), si on veut être très précis on choisi le couple ici pris comme (0.1,0.2) en fonction de l'interval possible... En pratique, on aura tendance à calculer par exemple abs(x)/(x+0.001) en fix 0 (en faisant l'arrondi à 0 décimale quoi..)

(3) Si on n'a pas un entier, il faut distinguer deux cas: soit on affiche toujours le même nombre de décimales même si elles sont nules (donc par exemple on applique la méthode pr les nombre entier et on rajoute la taille constante du nombre de décimales), soit on veut adapter la largeur en fonction des décimales nulles ou non: c'est encore plus lourd, mais ça se fait à peu à peu près se faire normalment...

Posté le 30/09/2006 à 22:11 Membre depuis le 11/09/2006, 20 messages
Houlala, c'est vachement plus compliqué déjà grin

Enfin, je devrais m'en sortire. Je vais lire sa en detail.
Merci bien.
Posté le 30/09/2006 à 22:22 Membre depuis le 15/03/2005, 3470 messages
Oui mais après c'est plus un programme à tapper lol. T'as toujours pas de câble sinon ?
Posté le 30/09/2006 à 22:31 Membre depuis le 09/07/2003, 21783 messages
Heu si y'en a qui comprenent pas pourquoi_ça_marche, ( notemment le rapport entre le log et le nombre de chiffre, etc..) , n'hésitez pas à demander.
Posté le 01/10/2006 à 09:13 Membre depuis le 11/09/2006, 20 messages
si y'en a qui comprenent pas le rapport entre le log et le nombre de chiffre, etc..


Euh...justement, puisque tu en parle grin
...je demande.

Sinon, non, j'ai toujours pas de cable, et j'ai peur que sa dure encors, un moment, mes parent sont plutôt allergique au achat sur le net et bon, comme je suis en 1er...
Quand a en faire un...va faloir que je m'y mette.
Posté le 01/10/2006 à 09:52 Membre depuis le 15/03/2005, 3470 messages
J'ai acheter le mien ici (j'ai pris le troisième à 10 euros), ça fait 2 ans que je l'ai et il marche toujours aussi bien (je fait pas de la pub, je conseil juste cheeky).
Posté le 01/10/2006 à 11:54 Membre depuis le 09/07/2003, 21783 messages
./>68 pour ce qui est de l'achat sur le net, y'a certains site ou tu peux payer en chèque.

Pour ce qui est de la focntion log, (qui est juste la fonction logarithme en base 10: log = ln/ln10), disons que c'est une fonction continue croissante sur ]0,+Inf[ dont on peut plus ou moins dire que c'est "l'inverse" de la fonction "x |-> 10^x" ( exponentiation en base 10..), Grosso modo ça revient à "compter les puissance de 10", c'est à dire:

log(1)=log(10^0)=0
log(10)=log(10^1)=1
log(100)=log(10^2)=2
log(1000)=log(10^3)=3

Or log est (strictement) croissante, donc par exemple comme 42 est compris entre 10 et 100, on va avoir:
log(10) < log(42) < log(100)
1 < log(42) < 2

Donc si on prend la partie entière, Int(log(42))=1, comme 10, et donc plus particulièrement Int(log(42)+1)=2 , comme le nombre de chiffre.
De même, 1000 < 4242 < 10 000 donc log(1 000) < log(4242) < log(10 000) <=> 3 < log(4242) < 4, donc Int(log(4242))=3, et Int(log(4242)+1))=4, on est donc bon...
En fait, comme on sait que l'on a "un chiffre de plus" à chaque nouvelle puissance de 10 ( 1 entre 0 et 9, puis 2 entre 10 et 99, puis 3 entre 100 et 999, etc...), la fonction Int(log(C)+1) convient très bien (regarder l'exemple plus haut...), si C est positif et >= 1

Par contre faut faire gaff à l'interval: log(0)= -infnini , et log n'est absolument pas définit si x est négatif (du moins n'a pas valeur dans le corps des réels pour les pinailleurs )