Forum Liberty Basic France

Débutant » Températures Converti Celcius To Farenheit
Le 25/10/2017 à 10h29

Libertynaute Débutant

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 23
C'est la réaction entre deux TextBox qui m'a intéressé dans cette petite application.
Cela arrive lorsqu'on réfléchi trop sur un sujet sur lequel on travaille. Alors on fait une pause en
se rabattant sur autre chose ... c'est peut être cela, aussi, la motivation, et de penser à de nouvelles manières de faire.

[code=vb]
'------------------------------------------------------------------------------
' Programme C&F.bas
' Convertir une Température en Degrés Celcius en Degrés Fahrenheit et vice-versa
' Formules utilisées:
' Degrés Celcius = (Degrés Fahrenheit - 32) / 1.8
' Degrés Fahrenheit = (Degrés Celcius * 1.8) + 32
' Terminé le 25 Octobre 2017
'------------------------------------------------------------------------------
[Variables]
global a1, a2
a1 = 0 : a2 = 0
'------------------------------------------------------------------------------
[InitColors]
ForegroundColor$ = "Black"
BackgroundColor$ = "Buttonface"
'------------------------------------------------------------------------------
[WindowSetup]
nomainwin
WindowWidth = 300 : WindowHeight = 185
UpperLeftX = int((DisplayWidth - 300) /2) 'Centre la fenêtre H à l'écran
UpperLeftY = int((DisplayHeight - 185) /2) 'Centre la fenêtre V à l'écran
'------------------------------------------------------------------------------
[ControlSetup]
'Avec le caractère & Devant ---> Touches directes avec ALT + e ou E
button #main.button1, "&Exit", [quit], UL, 20, 15, 250, 30
'------------------------------------------------------------------------------
button #main.button2, "Up", [Haut2], UL, 90, 80, 45, 25
button #main.button3, "Down", [Bas3], UL, 90, 105, 45, 25
button #main.button4, "Up", [Haut4], UL, 230, 80, 45, 25
button #main.button5, "Down", [Bas5], UL, 230, 105, 45, 25
'------------------------------------------------------------------------------
TextboxColor$ = "Cyan"
textbox #main.textbox1, 20, 82, 70, 45
TextboxColor$ = "Green"
textbox #main.textbox2, 160, 82, 70, 45
'------------------------------------------------------------------------------
statictext #main, "Degrés Celcius", 20, 60, 150, 20
statictext #main, "Degrés Fahrenheit", 160, 60, 150, 20
'------------------------------------------------------------------------------
'open "Convert Celcius <°> Fahrenheit" for window_nf as #main
open "Convert Celcius <°> Fahrenheit" for dialog as #main
#main, "trapclose [quit]"
#main, "font ms_sans_serif 8 bold"
#main.textbox1, "!font ms_sans_serif 18 bold"
#main.textbox2, "!font ms_sans_serif 18 bold"
'------------------------------------------------------------------------------
'Syntaxe pour Retarder (Delay ou Temporisateur) Ici 500 ms ou 1 demi seconde
calldll #kernel32, "Sleep", 500 as ulong, result as void
'Ici dans ce cas ne sert à rien, mais cela montre comment l'utiliser
'------------------------------------------------------------------------------
#main.textbox1, using("####", 0)
#main.textbox2, using("####", 32)
goto [InputLoop]
'------------------------------------------------------------------------------
[InputLoop]
'Attente d'un évennement ...
Wait
'------------------------------------------------------------------------------
[Haut2]
'Calcul de Celcius à Farhrenheit Plus 1
#main.textbox1, "!contents? a1";
a1 = a1 + 1
#main.textbox1, using("####", a1)
a2 = traiteCtF(a1)
#main.textbox2, using("####", a2)
wait
'------------------------------------------------------------------------------
[Bas3]
'Calcul de Celcius à Farhrenheit Moins 1
#main.textbox1, "!contents? a1";
a1 = a1 - 1
#main.textbox1, using("####", a1)
a2 = traiteCtF(a1)
#main.textbox2, using("####", a2)
wait
'------------------------------------------------------------------------------
[Haut4]
'Calcul de Farhrenheit à Celcius Plus 1
#main.textbox2, "!contents? a2";
a2 = a2 + 1
#main.textbox2, using("####", a2)
a1 = traiteFtC(a2)
#main.textbox1, using("####", a1)
wait
'------------------------------------------------------------------------------
[Bas5]
'Calcul de Farhrenheit à Celcius Moins 1
#main.textbox2, "!contents? a2";
a2 = a2 - 1
#main.textbox2, using("####", a2)
a1 = traiteFtC(a2)
#main.textbox1, using("####", a1)
wait
'------------------------------------------------------------------------------
'Fonction de Calcul de Celcius à Farhrenheit
function traiteCtF(a1)
x = int((a1 * 1.8) + 32)
traiteCtF = x
end function
'------------------------------------------------------------------------------
'Fonction de Calcul de Farhrenheit à Celcius
function traiteFtC(a2)
x = int((a2 - 32) / 1.8)
traiteFtC = x
end function
'------------------------------------------------------------------------------
[inputLoop]
wait
'------------------------------------------------------------------------------
[quit]
'-----[Option pour confirmer si l'on veut vraiment sortir du programme]-----
'confirm " Sortir de ce Programme ? "; ANSWER$
'if ANSWER$ = "no" then Goto [InputLoop]
'---------------------------------------
close #main
End
'----------------------- Fin du programme -------------------------------------
[/code
____________________
Castel

   
Le 25/10/2017 à 22h24

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1942
JB sait aussi temporiser avec "timer" en ms
Par contre si on veut savoir combien font 600°C en Farhrenheit...?! :drool
J'ai LB, mais je reste en JB car je présume que les visiteurs sont des débutants qui n'ont pas LB
Alors j'en ai fait une version en Jb avec une autre méthode
Code VB :
 
  nomainwin
   WindowWidth = 300 : WindowHeight = 185
   UpperLeftX = int((DisplayWidth - 300) /2) 'Centre la fenêtre H à l'écran
   UpperLeftY = int((DisplayHeight - 185) /2) 'Centre la fenêtre V à l'écran
'Avec le caractère & Devant ---> Touches directes avec ALT + e ou E
   button #main.button1, "&Exit", [quit], UL, 20, 15, 250, 30
   TextboxColor$ = "Cyan"
   textbox #main.textbox1, 20, 82, 70, 45
   TextboxColor$ = "Green"
   textbox #main.textbox2, 160, 82, 70, 45
   GRAPHICBOX #main.m, 5, 5, 285, 140
  open "Convert Celcius <°> Fahrenheit" for window_nf as #main
    #main, "trapclose [quit]"
    #main.m, "down;fill lightgray"
    #main.m, "when leftButtonMove [scanne]" 'Down
    #main, "font ms_sans_serif 8 bold"
    #main.textbox1, "!font ms_sans_serif 18 bold": #main.textbox1, using("####", 0)
    #main.textbox2, "!font ms_sans_serif 18 bold": #main.textbox2, using("####", 32)
    #main.m, "place 20 60": #main.m, "\Click and  Move Mouse on Up or Down"
    #main.m, "place 90 80": #main.m, "\ Up   ": #main.m, "place 90 120": #main.m, "\ Down"
    #main.m, "place 230 80": #main.m, "\ Up   ": #main.m, "place 230 120": #main.m, "\ Down"
    '#main.textbox1, "0": #main.textbox2, "32"
  wait
  [scanne]
    mx = MouseX: my = MouseY
   ' gosub [pause]
    if mx>90 and mx<130 and my>65 and my<80 then
       #main.textbox1, "!contents? cel$": cel=val(cel$)
       cel=cel+1: #main.textbox1, str$(cel):fah=int((cel*1.8)+32): #main.textbox2, str$(fah)
    end if
    if mx>90 and mx<125 and my>105 and my<120 then
       #main.textbox1, "!contents? cel$": cel=val(cel$)
       cel=cel-1
       #main.textbox1, str$(cel):fah=int((cel*1.8)+32): #main.textbox2, str$(fah)
    end if
    if mx>228 and mx<270 and my>65 and my<80 then
       #main.textbox2, "!contents? fah$": fah=val(fah$)
       fah=fah+1: #main.textbox2, str$(fah):cel=int((fah-32)/1.8): #main.textbox1, str$(cel)
    end if
    if mx>228 and mx<270 and my>105 and my<120 then
       #main.textbox2, "!contents? fah$": fah=val(fah$)
       fah=fah-1
       #main.textbox2, str$(fah):cel=int((fah-32)/1.8): #main.textbox1, str$(cel)
    end if
  wait
  [quit]
    close #main
end
 
____________________
Roro

   
Le 26/10/2017 à 09h46

Libertynaute Débutant

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 23
Pour savoir combien font 600°C en Fahrenheit, il faut cliquer dans la TextBox Celsius, effacer le contenu, mettre la valeur de 600 et cliquer sur Up ou Down. Ajuster à 600 degrés Celsius.
Le résultat sera: 1112 degrés Fahrenheit.
C'est une manière d'accéder plus rapidement de la Valeur connue, au lieu de cliquer pendant X temps sur Up ou Down, selon.
____________________
Castel

   
Le 26/10/2017 à 09h51

Libertynaute Débutant

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 23
Avant d'acquérir LB, j'ai utilisé un peu JB.
Ce qui me gène dans JB, c'est cette fenêtre qui apparait lorsqu'on le lance.
Et je n'est pas trouvé comment la faire disparaitre.
____________________
Castel

   
Le 26/10/2017 à 18h04

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1942
Citation:
cliquer dans la TextBox Celsius, effacer le contenu, mettre la valeur

A ben ouais, suis-je bèèèèète.
Mais bon, de ce point de vue là, ma méthode n'est pas meilleure puisqu'il faut "savonner" longtemps sur "Up" pour atteindre 600.
Quand à la méthode "Bourrin" des "if then", j'ai tenter du select. case sans succès et comme ça ramait avec: "Leftbutton Down" je suis passé au: "LeftbuttonMove" qui décoince mieux. Y a toujours une solution...
Citation:
Ce qui me gène dans JB, c'est cette fenêtre qui apparait lorsqu'on le lance

C'est vrai que c'est gonflant; mais il suffit de l'ignorer (et de la laisser ouverte), puisqu'elle est masquée dès qu'on clique dans l'éditeur.
Mais je reconnais que j'ai dû faire un effort intellectuel et métaphysique pour me résoudre à la laisser ouverte; après l'avoir fermée en râlant pendant des années.
____________________
Roro

   
Le 05/11/2017 à 23h17

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 401
Et ma version, façon "ligne de commande".

C'est pour le gag ;)

Il n'y a pas de changement de couleurs possibles pour la mainwin, c'est un peu dommage, mais tant pis.

Dans la console, taper "convertemp" et laissez-vous guider :

Code VB :
 
'ligne de commande
    mainwin 80
    prefixe$=""
 
[lire_clavier]
    input "console:>"+prefixe$;commande$
    comreconnue=0
    cmd$=prefixe$+commande$
    if word$(cmd$,1)="convertemp" then gosub [convertemp_main]
    if cmd$="exit" then print "console quittée, bye !":end
    if comreconnue=0 then print cmd$;":commande inconnue"
    goto [lire_clavier]
 
[convertemp_main]
    prefixe$="convertemp "
    comreconnue=1
    arg$=word$(cmd$,2)
    argreconnu=0
    if arg$="-h" or arg$="-help" or arg$="" then gosub [convertemp_help]
    if left$(arg$,2)="-f" then gosub [convertemp_farenheit_vers_celsius]
    if left$(arg$,2)="-c" then gosub [convertemp_celsius_vers_farenheit]
    if arg$="-exit" or arg$="-e" then gosub [convertemp_exit]
    if argreconnu=0 then print arg$;":-option inconnue"
    return
 
[convertemp_help]
    argreconnu=1
    print
    print "convertemp, bonjour !"
    print "Conversion degrés Celsius en Fahrenheit et vice-versa"
    print "version 0.12a"
    print "licence GPL/GNU2"
    print ""
    print "Commandes disponibles :"
    print "    -help ou -h : affiche cette aide"
    print "    -fxx : convertit des °F en °C, xx=température"
    print "    -cxx : convertit des °C en °F"
    print "    -exit ou -e: quitte tempconv"
    print
    return
 
[convertemp_farenheit_vers_celsius]
    argreconnu=1
    'Degrés Celcius = (Degrés Fahrenheit - 32) / 1.8
    degF=val(right$(arg$,len(arg$)-2))
    degC=(degF-32)/1.8
    print "Conversion : ";degF;"°F=";using("######.##",degC);"°C"
    return
 
[convertemp_celsius_vers_farenheit]
    argreconnu=1
    ' Degrés Fahrenheit = (Degrés Celcius * 1.8) + 32
    degC=val(right$(arg$,len(arg$)-2))
    degF=degC*1.8+32
    print "Conversion : ";degC;"°C=";using("######.##",degF);"°F"
    return
 
[convertemp_exit]
    argreconnu=1
    prefixe$=""
    return
 


;)
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia5 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 06/11/2017 à 00h01

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1942
Citation:
Et ma version, façon "ligne de commande

On reconnais le linuxien barbu à la ligne de commande.
Hey...ça fait trente ans qu'il y a des interfaces graphiques, vive le: "Tout Souris"!
Mais bon, y a encore des puristes qui codent en ASM. Il ne faut s'étonner de rien.
____________________
Roro

   
Le 06/11/2017 à 22h47

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 401
En fait, à la base, la ligne de commande, c'est une histoire de chat. Donc, plus de souris=plus de chat, plus de chat=utilisation tranquille... au clavier.

Nan, c'est pour rire, je n'ai rien contre les chats :top
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia5 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Débutant » Températures Converti Celcius To Farenheit  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie