calcul surface d'un rectangle pour me familiariser avec pb .
Re: calcul surface d'un rectangle pour me familiariser avec
il est plus de 23h si vous voulez on verra les restant demain ?
Re: calcul surface d'un rectangle pour me familiariser avec
je vous suis , pas de souci
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
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 ?
Au fait, tu as la possibilité de modifier un message que tu as posté en cliquant sur le bouton Editer qui se trouve à la fin de ton message.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: calcul surface d'un rectangle pour me familiariser avec
Oui je lirais la suite , je te remercie pour ta patience , tout est tres claire, et je pense que des novices comme moi vont pouvoir se documenter a ces lignes .
merci pour tout, je vais noter tout cela sur un cahier, avoir de bons principes au debut c'est le principal je pense .
a bientôt, et encore merci.
bonne soirée.
Yves
merci pour tout, je vais noter tout cela sur un cahier, avoir de bons principes au debut c'est le principal je pense .
a bientôt, et encore merci.
bonne soirée.
Yves
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
On a vu précédemment comment Ajouter un bouton à une fenêtre.
■ Nous allons voir maintenant :
-Comment ajouter des zones informatives : Un simple texte avec un TextGadget()
TextGadget(#Gadget, x, y, Largeur, Hauteur, Texte$)
Aide : http://www.purebasic.com/french/documen ... adget.html
-Une zone de saisie de données : StringGadget()
Aide StringGadget(#Gadget, x, y, Largeur, Hauteur, Texte$)
et le code suivant
■ Nous allons voir maintenant :
-Comment ajouter des zones informatives : Un simple texte avec un TextGadget()
TextGadget(#Gadget, x, y, Largeur, Hauteur, Texte$)
Aide : http://www.purebasic.com/french/documen ... adget.html
-Une zone de saisie de données : StringGadget()
Aide StringGadget(#Gadget, x, y, Largeur, Hauteur, Texte$)
et le code suivant
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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
■ A retenir
-Tu sais créer une fenêtre et ajouter une zone de texte, une zone de saisie et un bouton.
Fonctions : OpenWindow(), TextGadget(), StringGadget(), ButtonGadget()
-Tu sais récupérer une valeur se trouvant dans une zone de saisie.
Fonction : GetGadgetText()
-Tu sais coder une procédure avec paramètres.
■ Sachant tout cela tu devrais pouvoir compléter ce code pour calculer:

- la surface d'un triangle rectangle ABC
- Le périmètre d'un triangle rectangle ABC
Pour compléter, un peu d'aide sur quelques fonctions que tu utiliseras:
- Convertit une chaîne en une valeur numérique. Fonction Val() ça te sera utile avec les StringGadget()
http://www.purebasic.com/french/documen ... g/val.html
- Le calcul des puissance : Fonction Pow()
http://www.purebasic.com/french/documen ... h/pow.html
- Le calcul d'une racine carré : Fonction Sqr()
http://www.purebasic.com/french/documen ... h/sqr.html
■ Le code à compléter
PS: Ne cherches pas à saisir des valeurs décimales pour le moment.
PS: Correction à venir dans la journée.
-Tu sais créer une fenêtre et ajouter une zone de texte, une zone de saisie et un bouton.
Fonctions : OpenWindow(), TextGadget(), StringGadget(), ButtonGadget()
-Tu sais récupérer une valeur se trouvant dans une zone de saisie.
Fonction : GetGadgetText()
-Tu sais coder une procédure avec paramètres.
■ Sachant tout cela tu devrais pouvoir compléter ce code pour calculer:

- la surface d'un triangle rectangle ABC
- Le périmètre d'un triangle rectangle ABC

- Convertit une chaîne en une valeur numérique. Fonction Val() ça te sera utile avec les StringGadget()
http://www.purebasic.com/french/documen ... g/val.html
- Le calcul des puissance : Fonction Pow()
http://www.purebasic.com/french/documen ... h/pow.html
- Le calcul d'une racine carré : Fonction Sqr()
http://www.purebasic.com/french/documen ... h/sqr.html
■ Le code à compléter
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
PS: Correction à venir dans la journée.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: calcul surface d'un rectangle pour me familiariser avec
Bonjour Falsam,
je viens de mettre les manquants des procédures du petit programme, mais je ne suis pas sur de moi
je ne connais pas comment faire pour mettre ici le texte du programme , copier-coller ?.
voici mes modifications :
je viens de mettre les manquants des procédures du petit programme, mais je ne suis pas sur de moi

je ne connais pas comment faire pour mettre ici le texte du programme , copier-coller ?.
voici mes modifications :
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"
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
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 ?.
Par contre fait précéder par [ code] et termine le par [/ code]
Voir ce tutoriel http://www.purebasic.fr/french/viewtopi ... 21&t=14964
Dernière modification par falsam le dim. 07/déc./2014 16:59, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: calcul surface d'un rectangle pour me familiariser avec
Ok Falsam pour inserrer texte code.
ce matin je ne pourrais pas resté longtemps sur le site, apres 16h je serais plus disponible.
quelles sont mes erreurs ?
merci pour le lien du site .
bonjour .
ha je viens de voir une erreur au niveau périmetre, l'hypothénuse il faut la calculer , car on ne nous la donne pas ... Pythagore ...
je reviendrais plustard je dois me sauver . a+
ce matin je ne pourrais pas resté longtemps sur le site, apres 16h je serais plus disponible.
quelles sont mes erreurs ?
merci pour le lien du site .
bonjour .
ha je viens de voir une erreur au niveau périmetre, l'hypothénuse il faut la calculer , car on ne nous la donne pas ... Pythagore ...
je reviendrais plustard je dois me sauver . a+
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
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
■ Décryptage partiel du code.
-Le formulaire contient les zones de saisie #Longueur et #Largeur ainsi qu'un bouton #Surface.
-Dans ta boucle événementielle il y a bien l'appel de la procédure CalculSurface()
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
Pourquoi ? Parce que l'appel de ta procédure n'envoie pas #Longueur et #Largeur à cette procédure.

Code : Tout sélectionner
Case #Perimetre ;Clique sur le bouton perimetre
CalculPerimetre(GetGadgetText(#Longueur), GetGadgetText(#Largeur))



A plus tard pour la correction finale.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: calcul surface d'un rectangle pour me familiariser avec
Rebonjour Falsam,
me voici revenu.
pour calculer le périmètre du triangle il faut calculer l'hypoténuse ( BC) du triangle rectangle.
procedure calculBC ( AB.i, AC.i)
resultat ( BC) = SQR( pow((AB)+(AC)))
debug resultat ( BC)
endprocedure
ce qui revient au meme en calcul classic :
hypoténuse = SQR (( AB*AB)+(AC*AC))
- je ne suis pas sur de ma procedure
PS/- une question, avec pureBasic, peut-on ajouter une image dans une fenetre ?
par exemple le dessin du triangle ,si oui quel format du fichier ?.
me voici revenu.
pour calculer le périmètre du triangle il faut calculer l'hypoténuse ( BC) du triangle rectangle.
procedure calculBC ( AB.i, AC.i)
resultat ( BC) = SQR( pow((AB)+(AC)))
debug resultat ( BC)
endprocedure
ce qui revient au meme en calcul classic :
hypoténuse = SQR (( AB*AB)+(AC*AC))
- je ne suis pas sur de ma procedure

PS/- une question, avec pureBasic, peut-on ajouter une image dans une fenetre ?
par exemple le dessin du triangle ,si oui quel format du fichier ?.
Re: calcul surface d'un rectangle pour me familiariser avec
Bonjour klystron,
En passant, quand tu as des doute sur la syntaxe d'une commande, il suffit de faire comme dans presque tous les autres langages:
clique sur ton mot clé dans l'éditeur, puis appuie sur F1. Cela t'amène directement à la page d'aide.
Exemple pour pow
Donc Pow() nécessite 2 paramètres
De même, en tapant le code, dès que le système reconnait un mot clé basic, il te met la syntaxe dans la barre d'état (très utile!).
Ta syntaxe serait donc (corrigé
comme quoi)
ou

En passant, quand tu as des doute sur la syntaxe d'une commande, il suffit de faire comme dans presque tous les autres langages:
clique sur ton mot clé dans l'éditeur, puis appuie sur F1. Cela t'amène directement à la page d'aide.
Exemple pour pow
Code : Tout sélectionner
Pow()
Syntaxe
Resultat.f = Pow(Nombre.f, Puissance.f)
De même, en tapant le code, dès que le système reconnait un mot clé basic, il te met la syntaxe dans la barre d'état (très utile!).
Ta syntaxe serait donc
Code : Tout sélectionner
BC = SQR( pow(AB, 2) + pow(AC, 2) )

ou
Code : Tout sélectionner
BC = SQR( ( AB * AB ) + (AC * AC) )

Dernière modification par Marc56 le mer. 03/déc./2014 16:50, modifié 2 fois.
Re: calcul surface d'un rectangle pour me familiariser avec
Bonsoir Marc56 ,
OK merci pour les infos.
oui c'est loin de ce que j'ai mis
je vais noté tout ça moi me rappeler .
merci
OK merci pour les infos.
oui c'est loin de ce que j'ai mis

merci
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: calcul surface d'un rectangle pour me familiariser avec
Il est temps de te donner la correction du code que tu devais compléter. Entre quelques valeurs (sans décimale) et cliques sur chaque bouton pour avoir le résultat.
Ensuite je te laisse le soin de décortiquer ce code.
Regarde sur ce lien l'ensemble des gadgets que tu peux mettre dans une fenêtre.
Cliques sur chacun d'eux et tu auras la syntaxe ainsi qu'un code exemple en principe. Testes chacun de ces exemples.
http://www.purebasic.com/french/documen ... index.html
Ensuite je te laisse le soin de décortiquer ce code.
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 ?

Cliques sur chacun d'eux et tu auras la syntaxe ainsi qu'un code exemple en principe. Testes chacun de ces exemples.

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: calcul surface d'un rectangle pour me familiariser avec
Bonsoir ,
Si je veux que dés que j'ai entré la dernière valeur( longueur et largeur ), les résultats de la surface et du périmètre s'affichent sans toucher aux deux boutons , et les résultats , dans la fenetre principale ?.
pourriez-vous me dire comment faire ?.
merci .
Si je veux que dés que j'ai entré la dernière valeur( longueur et largeur ), les résultats de la surface et du périmètre s'affichent sans toucher aux deux boutons , et les résultats , dans la fenetre principale ?.
pourriez-vous me dire comment faire ?.
merci .