Problemes d'affichage de variable

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
castaway
Messages : 3
Inscription : lun. 27/oct./2008 12:27

Problemes d'affichage de variable

Message 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 ;)
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message 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
Force et sagesse...
castaway
Messages : 3
Inscription : lun. 27/oct./2008 12:27

Message par castaway »

et bien en fait j'aimerais bien avoir quelque explication ^^
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message 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)
Force et sagesse...
castaway
Messages : 3
Inscription : lun. 27/oct./2008 12:27

Message par castaway »

Merci, c'est devenu beaucoup plus clair pour moi ;)
Répondre