Page 1 sur 1

Problemes d'affichage de variable

Publié : lun. 27/oct./2008 12:48
par castaway
Bonjours, j'ai un petit souci avec ce code :

Code : Tout sélectionner

;

    text$  = "Created by Quibel Julien"     
    dlay   = 10000           

    OpenConsole()                           
    ConsoleTitle ("PureBasic")                                                   
    EnableGraphicalConsole(1)


     
    Print ("Saisisez la largeur du rectangle:   ") 
    larg$=Input()                                                
    Print ("Saisisez la longueur du rectangle: ")
    long$=Input()
    result.f=larg.f*long.f
    ConsoleLocate (24,12)                    
    PrintN ("Superficie " + result$)
    Delay (dlay)                               

    CloseConsole()
End
en fait, le PrintN ("Superficie " + result$) devrait affiché la valeur de result$(si je me trompe pas) seulement ca n'affiche rien

quelqu'un peut il m'aider ?

merci d'avance ;)

Publié : lun. 27/oct./2008 12:56
par tmyke
Tu confonds en fait pas mal les types de variables entre elles. (par exemple long$ n'est pas long.f...)
Ton code fonctionnerait plutôt comme ça:
(je te laisse analyser ce qui suit, si tu ne t'y retrouve toujours pas, alors quelques explications suivront)

Code : Tout sélectionner

    text$  = "Created by Quibel Julien"     
    dlay   = 10000           

    OpenConsole()                           
    ConsoleTitle ("PureBasic")                                                   
    EnableGraphicalConsole(1)


     
    Print ("Saisisez la largeur du rectangle:   ")
    larg$=Input()                                               
    Print ("Saisisez la longueur du rectangle: ")
    long$=Input()
    result.f= ValF(larg$)*ValF(long$)
    ConsoleLocate (24,12)                   
    PrintN ("Superficie " + StrF(result))
    Delay (dlay)                               

    CloseConsole()
End

Publié : lun. 27/oct./2008 13:12
par castaway
et bien en fait j'aimerais bien avoir quelque explication ^^

Publié : lun. 27/oct./2008 13:26
par tmyke
Petite piste:

quand tu ecris var$="123.0", et que tu fait var.f = var.f *2, alors tu obtiens dans var.f le résultat 0, et non pas 246.0.

Car var$ et var.f n'on en fait rien à voir entre-elles, même si elle portent le même nom si on peut dire.
(une est alphanumérique et l'autre numérique de type float)

Quand tu a en entré une variable alphanumérique, comme var$, si tu veux en exploiter le valeur au format numérique, il
te faut alors en passer par une transformation, et ecrire par exemple var.f = ValF(var$).
Et pour éviter la confusion, ecrire 'res.f = ValF(var$)' serait d'ailleurs plus sain (employer un autre nom donc)

D'ailleurs c'est souvent le piège avec les variable de type '$', car si tu avais écris ceci
var.s = "123.2"
var.f = 2

le compilateur aurait génèrer une erreur (normal).
Identifie bien de manière explicite tes donnée, cela évite les erreurs de ce type. Et par la même occasion, employer un
'EnableExplicit' en début de code est une bonne habitude à prendre (cf la doc)

Publié : lun. 27/oct./2008 13:36
par castaway
Merci, c'est devenu beaucoup plus clair pour moi ;)