Re: calcul surface d'un rectangle pour me familiariser avec
Publié : mar. 02/déc./2014 23:02
il est plus de 23h si vous voulez on verra les restant demain ?
Forums PureBasic - Français
http://forums.purebasic.com/french/
Pas de souci. je continue ma littérature que tu pourras consulter demain.klystron a écrit :il est plus de 23h si vous voulez on verra les restant demain ?
Code : Tout sélectionner
Enumeration Fenetre ;Pour le moment il y en a qu'une
#MaFenetre
EndEnumeration
Enumeration Gadgets
#Button1
#Nom
EndEnumeration
Procedure AfficheMessage()
Protected Resultat.s
;Que contient #Nom
Resultat = GetGadgetText(#Nom)
MessageRequester("Information", "Bonjour " + Resultat)
EndProcedure
;Ouverture d'une fenêtre
OpenWindow(#MaFenetre, 100, 100, 800, 600, "Surface d'un triangle rectangle")
;Zone informative : On utilise #PB_Any car on ne travaillera pas sur ce gadget
TextGadget(#PB_Any, 10, 20, 100, 20, "Quel est votre nom")
;Zone de saisie
StringGadget(#Nom, 110, 20, 100, 22, "") ;Un StringGadget est un champ de saisie.
;Création d'un bouton
ButtonGadget(#Button1, 700, 30, 80, 22, "Clique moi")
;Boucle évenementielle
Repeat
Select WaitWindowEvent() ;Un évenement est arrivé
Case #PB_Event_Gadget ;Est un gadget qui a provoqué l'événement ?
Select EventGadget() ;Apparement oui : On cherche qui
Case #Button1 ;Clique sur le bouton 1
AfficheMessage()
EndSelect
Case #PB_Event_CloseWindow ;Est ce une fermeture de la fenetre ?
End ;Apparement oui : Fermeture de la fenêtre.
EndSelect
ForEver
Code : Tout sélectionner
Enumeration Fenetre ;Pour le moment il y en a qu'une
#MaFenetre
EndEnumeration
Enumeration Gadgets
#Largeur
#Longueur
#Perimetre ;C'est un bouton
#Surface; C'est un bouton
EndEnumeration
Procedure CalculPerimetre()
;A compléter
EndProcedure
Procedure CalculSurface()
;A compléter
EndProcedure
;Ouverture d'une fenêtre
OpenWindow(#MaFenetre, 100, 100, 800, 600, "Surface d'un triangle rectangle")
TextGadget(#PB_Any, 10, 35, 100, 22, "Longueur (AB)")
StringGadget(#Longueur, 120, 30, 80, 22, "", #PB_String_Numeric)
TextGadget(#PB_Any, 10, 65, 100, 22, "Largeur (AC)")
StringGadget(#Largeur, 120, 60, 80, 22, "", #PB_String_Numeric)
;Création d'un bouton
ButtonGadget(#Perimetre, 700, 30, 80, 22, "Périmètre")
ButtonGadget(#Surface, 700, 60, 80, 22, "Surface")
;Boucle événementielle
Repeat
Select WaitWindowEvent() ;Un événement est arrivé
Case #PB_Event_Gadget ;Est un gadget qui a provoqué l'événement ?
Select EventGadget() ;Apparemment oui : On cherche qui
Case #Perimetre ;Clique sur le bouton périmètre
CalculPerimetre()
Case #Surface ;Clique sur le bouton surface
CalculSurface()
EndSelect
Case #PB_Event_CloseWindow ;Est ce une fermeture de la fenetre ?
End ;Apparement oui : Fermeture de la fenêtre.
EndSelect
ForEver
Code : Tout sélectionner
Enumeration Fenetre ;Pour le moment il y en a qu'une
#MaFenetre
EndEnumeration
Enumeration Gadgets
#Largeur
#Longueur
#Perimetre ;C'est un bouton
#Surface; C'est un bouton
EndEnumeration
Procedure CalculPerimetre(AB.i,AC.i,CB.i)
Protected resultat.i
resultat = AB+AC+CB
Debug resultat
EndProcedure
Procedure CalculSurface(AB.i,AC.i)
Protected resultat.i
resultat = (AB*AC)/2
Debug resultat
EndProcedure
;Ouverture d'une fenêtre
OpenWindow(#MaFenetre, 100, 100, 800, 600, "Surface d'un triangle rectangle")
TextGadget(#PB_Any, 10, 35, 100, 22, "Longueur (AB)")
StringGadget(#Longueur, 120, 30, 80, 22, "", #PB_String_Numeric)
TextGadget(#PB_Any, 10, 65, 100, 22, "Largeur (AC)")
StringGadget(#Largeur, 120, 60, 80, 22, "", #PB_String_Numeric)
;Création d'un bouton
ButtonGadget(#Perimetre, 700, 30, 80, 22, "Périmètre")
ButtonGadget(#Surface, 700, 60, 80, 22, "Surface")
;Boucle événementielle
Repeat
Select WaitWindowEvent() ;Un événement est arrivé
Case #PB_Event_Gadget ;Est un gadget qui a provoqué l'événement ?
Select EventGadget() ;Apparemment oui : On cherche qui
Case #Perimetre ;Clique sur le bouton périmètre
CalculPerimetre(AB.i,AC.i,CB.I)
Case #Surface ;Clique sur le bouton surface
CalculSurface(AB.i,AC.i)
EndSelect
Case #PB_Event_CloseWindow ;Est ce une fermeture de la fenetre ?
End ;Apparement oui : Fermeture de la fenêtre.
EndSelect
ForEver
Edit par TazNormand :
Bonjour Klystron, j'ai edité ton message pour mettre les balises "code"
Bonjour klystron. Copier coller est effectivement la bonne solution.klystron a écrit :e ne connais pas comment faire pour mettre ici le texte du programme , copier-coller ?.
Si tu rentres des valeurs dans les zones de saisies et que tu cliques sur le bouton Surface par exemple, le résultat reste à zéro.klystron a écrit :je viens de mettre les manquants des procédures du petit programme, mais je ne suis pas sur de moi
Code : Tout sélectionner
Case #Surface ;Clique sur le bouton surface
CalculSurface(AB.i,AC.i)
Code : Tout sélectionner
Procedure CalculSurface(AB.i,AC.i)
Protected resultat.i
resultat = (AB*AC)/2
Debug resultat
Code : Tout sélectionner
Case #Perimetre ;Clique sur le bouton perimetre
CalculPerimetre(GetGadgetText(#Longueur), GetGadgetText(#Largeur))
Code : Tout sélectionner
Pow()
Syntaxe
Resultat.f = Pow(Nombre.f, Puissance.f)
Code : Tout sélectionner
BC = SQR( pow(AB, 2) + pow(AC, 2) )
Code : Tout sélectionner
BC = SQR( ( AB * AB ) + (AC * AC) )
Code : Tout sélectionner
Enumeration Fenetre ;Pour le moment il y en a qu'une
#MaFenetre
EndEnumeration
Enumeration Gadgets
#Largeur
#Longueur
#Perimetre ;C'est un bouton
#Surface; C'est un bouton
EndEnumeration
Procedure CalculPerimetre(Longueur.s, Largeur.s)
Protected AB = Val(Longueur)
Protected AC = Val(Largeur)
Protected Resultat.i
Protected BC.i ;C'est la longueur à retrouver
Resultat = Pow(AB,2) + Pow(AC,2)
BC = Sqr(Resultat)
MessageRequester("Résultat de l'opération", Str(AB + BC + AC))
EndProcedure
Procedure CalculSurface(Longueur.s, largeur.s)
Protected AB = Val(Longueur)
Protected AC = Val(Largeur)
Protected Resultat.i
Resultat = (AB * AC)/2
MessageRequester("Résultat de l'opéation", Str(Resultat))
EndProcedure
;Ouverture d'une fenêtre
OpenWindow(#MaFenetre, 100, 100, 800, 600, "Surface d'un triangle rectangle")
TextGadget(#PB_Any, 10, 35, 100, 22, "Longueur (AB)")
StringGadget(#Longueur, 120, 30, 80, 22, "", #PB_String_Numeric)
TextGadget(#PB_Any, 10, 65, 100, 22, "Largeur (AC)")
StringGadget(#Largeur, 120, 60, 80, 22, "", #PB_String_Numeric)
;Création des boutons de calcul
ButtonGadget(#Perimetre, 700, 30, 80, 22, "Perimétre")
ButtonGadget(#Surface, 700, 60, 80, 22, "Surface")
;Boucle évenementielle
Repeat
Select WaitWindowEvent() ;Un évenement est arrivé
Case #PB_Event_Gadget ;Est un gadget qui a provoqué l'événement ?
Select EventGadget() ;Apparement oui : On cherche qui
Case #Perimetre ;Clique sur le bouton perimetre
CalculPerimetre(GetGadgetText(#Longueur), GetGadgetText(#Largeur))
Case #Surface ;Clique sur le bouton surface
CalculSurface(GetGadgetText(#Longueur), GetGadgetText(#Largeur))
EndSelect
Case #PB_Event_CloseWindow ;Est ce une fermeture de la fenetre ?
End ;Apparement oui : Fermeture de la fenêtre.
EndSelect
ForEver
Oui tu peux. Il s'agit du gadget ImageGadget()klystron a écrit :une question, avec pureBasic, peut-on ajouter une image dans une fenetre ?