Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Conversion PSI <=>BAR Mar 25 Juin 2024 - 15:01 | |
| Bonjour à tous ! Le programme ci-dessous converti une valeur PSI en BAR et inversement. Les deux zones de saisie sont des objets système EDIT. Chaque EDIT possède un contrôle de saisie, déclenché par l’événement ON_CHANGE, qui interdit tout caractère ou valeur non numérique. La conversion s’effectue en temps réel. Elle est formatée avec deux chiffres décimaux maximum. Les deux boutons sont des objets système PICTURE. Un clic sur le bouton « Reset » efface les champs de saisie. Un clic sur le bouton « Quit » ferme le programme. - Code:
-
' conversion PSI <=> BAR ' Marc - Juin 2024 ' Ecrit en langage Panoramic 0.9.29.i9
dim psi$,bar$
label conversionPSI2BAR, conversionBAR2PSI, reset, quitter
dessinerManometre(250,250)
end ' ------------------------------------------------------------------------------ sub dessinerManometre(x_centre%,y_centre%) dim_local angle%, x%, y%, x1%, y1%, rayon%, i%
' dimensionner FORM 0 width 0,width(0) - width_client(0) + 500 height 0,height(0) - height_client(0) + 500
' centrer FORM 0 à l'écran left 0,(screen_x - width(0)) / 2 top 0,(screen_y - height(0)) / 2 ' Titre du FORM 0 caption 0,"Panoramic PSI <=> BAR" ' les angles sont exprimés en degrés degrees ' le FORM 0 est recouvert d'un PICTURE pour pouvoir dessiner dessus picture 10 width 10,500 height 10,500 color 10,250,250,250 2d_target_is 10
rayon% = 200 2d_pen_width 10 for angle% = 0 to 360 step 10 x% = rayon% * sin(angle%) + x_centre% y% = rayon% * cos(angle%) + y_centre% x1% = rayon% * sin(angle%+180) + x_centre% y1% = rayon% * cos(angle%+180) + y_centre% 2d_line x%,y%,x1%,y1% next angle%
rayon% = rayon% - 10
for angle% = 5 to 365 step 10 x% = rayon% * sin(angle%) + x_centre% y% = rayon% * cos(angle%) + y_centre% x1% = rayon% * sin(angle%+180) + x_centre% y1% = rayon% * cos(angle%+180) + y_centre% 2d_line x%,y%,x1%,y1% next angle%
2d_pen_width 1 2d_fill_color 30,30,30 2d_circle x_centre%,y_centre%,185 2d_fill_color 56,199,83 2d_circle x_centre%,y_centre%,155 2d_pen_color 255,204,0 2d_fill_color 255,205,0 2d_rectangle 210,431,290,463
2d_pen_color 255,255,0 2d_fill_color 255,255,0 2d_rectangle 221,463,280,500
2d_pen_color 220,180,0 for i% = 465 to 503 step 3 2d_line 219,i%,282,i%-3 next i%
' zone de saisie en "PSI" edit 1 top 1,160 left 1,176 width 1,150 color 1,50,50,50 font_color 1,255,255,255 font_name 1,"Consolas" font_size 1,18 text 1,"35" on_change 1,conversionPSI2BAR ' zone de saisie en "BAR" edit 2 top 2,255 left 2,176 width 2,150 color 2,50,50,50 font_color 2,255,255,255 font_name 2,"Consolas" font_size 2,18 text 2,"2.41" on_change 2,conversionBAR2PSI ' Sérigraphie print_target_is 10 2d_fill_color 56,199,83 font_color 10,0,0,0 font_name 10,"Arial" font_size 10,8 print_locate 223,102 print "PSI <=> BAR" print_locate 206,116 print "Panoramic language"
font_size 10,18 print_locate 231,200 print "PSI" print_locate 226,295 print "BAR" ' bouton "Reset" picture 3 width 3,40 height 3,40 left 3,165 top 3,335 color 3,56,199,83 2d_target_is 3 2d_pen_color 255,255,0 2d_fill_color 255,255,0 2d_circle 20,20,20 2d_pen_color 255,255,230 2d_fill_off 2d_circle 20,20,18 print_target_is 3 font_name 3,"Arial" font_size 3,10 print_locate 3,13 print "Reset" cursor_point 3 on_click 3,reset ' bouton "Quit" picture 4 width 4,40 height 4,40 left 4,296 top 4,335 color 4,56,199,83 2d_target_is 4 2d_pen_color 230,0,0 2d_fill_color 230,0,0 2d_circle 20,20,20 2d_pen_color 230,100,100 2d_fill_off 2d_circle 20,20,18 font_color 4,255,255,255 print_target_is 4 font_name 4,"Arial" font_size 4,10 font_bold 4 print_locate 7,12 print "Quit" cursor_point 4 on_click 4,Quitter set_focus 1 caret_position 1,len(text$(1))
end_sub ' ------------------------------------------------------------------------------ conversionPSI2BAR: off_change 1 off_change 2 if text$(1) = "" text 2,"" psi$ = "" bar$ = "" on_change 2,conversionBAR2PSI on_change 1,conversionPSI2BAR return end_if if numeric(text$(1)) = 1 if right$(text$(1),1) = "e" or right$(text$(1),1) = "E" text 1,left$(text$(1),len(text$(1))-1) caret_position 1,len(text$(1)) end_if psi$ = text$(1) text 2,arrondi$((val(text$(1))/14.5038)) else text 1,psi$ caret_position 1,len(text$(1)) end_if on_change 2,conversionBAR2PSI on_change 1,conversionPSI2BAR return ' ------------------------------------------------------------------------------ conversionBAR2PSI: off_change 2 off_change 1 if text$(2) = "" text 1,"" psi$ = "" bar$ = "" on_change 1,conversionPSI2BAR on_change 2,conversionBAR2PSI return end_if if numeric(text$(2)) = 1 if right$(text$(2),1) = "e" or right$(text$(2),1) = "E" text 2,left$(text$(2),len(text$(2))-1) caret_position 2,len(text$(2)) end_if bar$ = text$(2) text 1,arrondi$((val(text$(2))*14.5038)) else text 2,bar$ caret_position 2,len(text$(2)) end_if on_change 1,conversionPSI2BAR on_change 2,conversionBAR2PSI return ' ------------------------------------------------------------------------------ reset: off_change 1 off_change 2 text 1,"" text 2,"" psi$ = "" bar$ = "" on_change 2,conversionBAR2PSI on_change 1,conversionPSI2BAR return ' ------------------------------------------------------------------------------ fnc arrondi$(a) a=(INT((a*100)+0.5))/100 result str$(a) end_fnc ' ------------------------------------------------------------------------------ quitter: terminate return
Bonne programmation à tous ! | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion PSI <=>BAR Ven 28 Juin 2024 - 22:55 | |
| Salut tout le monde. A cause de problèmes de santé, je n'interviens pas souvent, mais je suis presque régulièrement ce qui se passe sur le forum. Comme la pression (atmosphérique entre autre) faisait partie de ma spécialité, je réponds brièvement.
Le PSI (Pound per Square Inch) représente une livre par pouce carré : Le psi est une unité de pression anglo-saxonne largement utilisée pour mesurer la pression des pneumatiques. 1 psi équivaut à environ 6894,76 Pa (pascal). 1 psi = 0.0689476 bar 1 psi = 0.070 kgf/cm² 1 psi = 51.7 mmHg 1 psi = 703.1 mmH2O 1 psi = 0.068 atmosphère
Unités dérivées Le ksi (kilopound per square inch) est une unité anglo-saxonne dérivée du psi, qui vaut mille psi. Elle n'est pas utilisée en aéronautique mais est commune en science des matériaux, pour exprimer les pressions interstitielles.
Pour info Définition de la pression. On définit la pression comme étant une grandeur physique fondamentale pour mesurer la force exercée sur une surface donnée. Elle est définie comme le quotient d’une force F sur l’aire de la surface S sur laquelle elle s’applique. P = F / S
Unité de pression internationale : Le pascal (symbole Pa) est l’unité de pression du Système International d’unités (SI) On définit le pascal comme étant la pression exercée par une force de 1 newton sur une surface de 1 mètre carré. Le pascal étant une unité très petite par rapport aux pressions mesurées à la surface du globe (la pression atmosphérique moyenne enregistrée au niveau de la mer vaut en effet 101 325 Pa), les météorologistes et les climatologues préfèrent utiliser l’hectopascal : 1 hPa = 100 Pa On utilise couramment les unités suivantes : • L’atmosphère (atm) : est utilisée pour mesurer la pression atmosphérique. Une atmosphère équivaut à la pression exercée par une colonne de mercure de 760 mm à 0°C 1 atm = 101 325 Pa • Le bar : unité de pression couramment utilisée pour mesurer la pression des pneumatiques, des bouteilles d’oxygène et d’acétylène, ainsi que dans les applications de plongée sous-marine. Un bar est approximativement égal à la pression atmosphérique. 1 bar = 100 000 Pa. • Le millimètre de mercure (mmHg) : Le millimètre de mercure, également connu sous le nom de torr, est une unité de pression historiquement utilisée en physique. 760 mmHg correspondent à une atmosphère à 0 °C. 1 mmHg = 133,322368 Pa à 0 °C. • Le psi (pound per square inch) : Le psi est une unité de pression anglo-saxonne largement utilisée pour mesurer la pression des pneumatiques. 1 psi équivaut à environ 6894,76 Pa.
@ Marc Merci pour le partage. C'est un bon bout de code pour représenter des boutons d'une manière différente! Je suis désolé pour la pollution de ton post : étant un ex-météorologue, je me suis retourné vers le passé pour me rappeler quelques vagues souvenirs de la science météorologique.
Au plaisir de te lire! | |
|