Pour le moment c'est pas mal.klystron a écrit :Je viens de modifier une partie de mon petit code, je ne sais pas si c'est bon
calcul surface d'un rectangle pour me familiariser avec pb .
- 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
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 Olivier,
je suis novice en purebasic.
j'apprend sur le tas
je suis novice en purebasic.
j'apprend sur le tas

Re: calcul surface d'un rectangle pour me familiariser avec
Bonsoir Falsam,
merci le test passe , mais reste le plus dur , du moins pour moi , les cases ...
tu as un indice a me donner pour continuer ?
merci le test passe , mais reste le plus dur , du moins pour moi , les cases ...
tu as un indice a me donner pour continuer ?

- 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
Les cases ? tu veux dire mettre les variables dans les différents gadgets ?
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
pour mettre les résultats aux bons endroits
resultat du calcul de l'hypoténuse et du perimetre a mettre dans les cases .
resultat du calcul de l'hypoténuse et du perimetre a mettre dans les cases .
- 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
Je viens de tester tes trois procédures et ça a l'air d’être pas mal.
Un indice facile : ; *** Je provoque le déclenchement par le bouton Calculer (je cite ton commentaire)

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
il faut que je me base sur celui de la surface comme exemple , je pense , ajouté deux lignes , une pour hypotenuse et une pour le perimetre ?
bon je vais voir cela a tete reposée, merci je te tiens au courant.
bonne soirée.
Yves.
A+
bon je vais voir cela a tete reposée, merci je te tiens au courant.
bonne soirée.
Yves.
A+
Dernière modification par klystron le ven. 05/déc./2014 22:44, modifié 1 fois.
- 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
Tu as déjà préparé toutes tes procédures. Reste juste à les appeler comme tu l'as fait pour le calcul de la surface.
Je te donne le corrigé pour une de tes procédures
Je te donne le corrigé pour une de tes procédures
Code : Tout sélectionner
; *** Je provoque le déclenchement par le bouton Calculer
Case #Bouton_Calculer
CalculSurface(ValF(GetGadgetText(#Longueur)), ValF(GetGadgetText(#Largeur)));On appelle la procédure de calcul de la surface
Calculhypotenuse(ValF(GetGadgetText(#Longueur)), ValF(GetGadgetText(#Largeur)))
;manque un appel de la procédure Calculperimetre() avec cette fois çi trois paramétres.
EndSelect
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
les trois parametres longueur,largeur et hypoténuse ?
ok, je vais y réflechir .
merci pour tout.
je te tiens au courant de mes modifications.
peut-être a demain.
A+
les trois parametres longueur,largeur et hypoténuse ?
ok, je vais y réflechir .
merci pour tout.
je te tiens au courant de mes modifications.
peut-être a demain.
A+
Re: calcul surface d'un rectangle pour me familiariser avec
je viens d'ajouter le perimetre , mais j'ai une erreur a la ligne 110 ( valf() nombre de parametre incorrecte )
voici le code modifié:
voici le code modifié:
Code : Tout sélectionner
Enumeration Window
#MaFenetre
EndEnumeration
Enumeration Gadget
#Longueur
#Largeur
#Surface
#Hypotenuse
#Perimetre
#Bouton_Calculer ; *** Déclarer l'ID du bouton Calculer
EndEnumeration
;Création de la fenetre et des différents gadgets
Procedure Open_MainForm()
OpenWindow(#MaFenetre, 100, 100, 800, 600, " -Elements d'un triangle rectangle- ")
TextGadget(#PB_Any, 10, 35, 100, 22, "Longueur")
StringGadget(#Longueur, 120, 30, 80, 22, "")
TextGadget(#PB_Any, 10, 65, 100, 22, "Largeur")
StringGadget(#Largeur, 120, 60, 80, 22, "")
TextGadget(#PB_Any, 10, 100, 100, 22, "Surface")
StringGadget(#Surface, 120, 100, 80, 22, "", #PB_String_ReadOnly) ;Ce gadget sera en lecture seule
TextGadget(#PB_Any, 10, 135, 100, 22, "Hypotenuse")
StringGadget(#Hypotenuse, 120, 135, 80, 22, "", #PB_String_ReadOnly) ;Ce gadget sera en lecture seule
TextGadget(#PB_Any, 10, 170, 100, 22, "Perimetre")
StringGadget(#Perimetre, 120, 170, 80, 22, "", #PB_String_ReadOnly) ;Ce gadget sera en lecture seule
ButtonGadget(#Bouton_Calculer, 10, 220, 100, 25, "Calculer") ; *** Le bouton Calculer
EndProcedure
;Calcul de la surface d'un triangle rectangle
Procedure CalculSurface(Longueur.f, largeur.f)
Protected AB.f = longueur
Protected AC.f = largeur
Protected Resultat.f
Resultat = (AB * AC)/2 ;Inutile de repeter le typage .f (float) à résultat car déja déclaré
SetGadgetText(#Surface, StrF(Resultat, 3)) ;Affichage du résultat avec 3 décimales
EndProcedure
; calcul de l'ypotenuse
Procedure Calculhypotenuse(Longueur.f, Largeur.f)
Protected AB.f = longueur
Protected AC.f = largeur
Protected Resultat.f
Protected BC.f ;C'est la longueur de l'hypotenuse à retrouver
Resultat = Pow(AB,2) + Pow(AC,2) ; puissances 2
BC = Sqr(Resultat) ; racine carree
SetGadgetText(#Hypotenuse,StrF(BC,3)) ;affichage du resultat avec 3 decimales
EndProcedure
; calcul du perimetre du triangle
Procedure Calculperimetre(Longueur.f, Largeur.f,BC.f)
Protected AB.f = longueur
Protected AC.f = largeur
Protected Resultat.f
Resultat = AB + AC + BC
SetGadgetText(#perimetre,StrF(Resultat,3)) ;affichage du resultat avec 3 decimales
EndProcedure
;Le programme commence ici : On ouvre la fenêtre
Open_MainForm()
;Boucle événementielle
Repeat
Select WaitWindowEvent() ;Un événement est arrivé
Case #PB_Event_Gadget ;Est ce un gadget qui a provoqué l'événement ?
Select EventGadget() ;Apparemment oui : On cherche qui
; *** Je désactive ici le déclenchement automatique sur changement de valeur d'un des deux champs
; ;Le gadget #Longueur et #largeur faisant appel à la meme procédure, on va simplifier le code.
; Case #Longueur, #Largeur ;Apparemment c'est le gadget #Longueur ou #largeur qui provoque l’événement
;
; Select EventType() ;Quel type d'évenement il y a eu sur ces deux gadgets?
; Case #PB_EventType_Change ;? il y a du changement dans le gadget : Là ça nous intéresse
; CalculSurface(ValF(GetGadgetText(#Longueur)), ValF(GetGadgetText(#Largeur)));On appelle la procédure de calcul de la surface
; EndSelect ;Fin du Seledt EventType()
; EndSelect ;Fin du Seledt EventGadget()
; *** Je provoque le déclenchement par le bouton Calculer
Case #Bouton_Calculer
CalculSurface(ValF(GetGadgetText(#Longueur)), ValF(GetGadgetText(#Largeur)));On appelle la procédure de calcul de la surface
Calculhypotenuse(ValF(GetGadgetText(#Longueur)), ValF(GetGadgetText(#Largeur)))
Calculperimetre(valF(GetGadgetText(#longueur)),ValF(GetGadgetText(#largeur),ValF(GetGadgetText(#hypotenuse))))
EndSelect
Case #PB_Event_CloseWindow ;Est ce une fermeture de la fenêtre ?
End ;Apparemment oui : Fermeture de la fenêtre.
EndSelect
ForEver
; IDE Options = PureBasic 5.31 (Windows - x64)
; CursorPosition = 81
; FirstLine = 65
; Folding = -
; EnableUnicode
; EnableXP
- 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
Petit souci de parenthéseComme ça c'est mieux
Code : Tout sélectionner
Calculperimetre(ValF(GetGadgetText(#longueur)), ValF(GetGadgetText(#largeur)), ValF(GetGadgetText(#hypotenuse)))
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 merci pour les infos.
bon week-end
a bientôt j'espère.
Yves,A+
bon week-end
a bientôt j'espère.
Yves,A+
Dernière modification par klystron le ven. 05/déc./2014 23:41, modifié 1 fois.
- 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
Oui et il en manquait une à l'intérieurklystron a écrit :ok j'ai mis 4 parenthèses au lieu de trois ? c'est ca l'erreur ?
ça n'a pas d'importance.klystron a écrit :et aussi un espace entre ?
Bon Week-end à toi aussi.klystron a écrit :bon week-end
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 je viens de faire l'essai ca fonctionne tres bien.
une bonne leçon pour apprendre.
un grand merci pour les infos .
je pense que ce cours pourra servir a d'autres .
bon week-end, a bientôt.
Yves.
une bonne leçon pour apprendre.
un grand merci pour les infos .
je pense que ce cours pourra servir a d'autres .
bon week-end, a bientôt.
Yves.
Re: calcul surface d'un rectangle pour me familiariser avec
Bonjour klystron, c'est comme ça que j'ai moi-même commencé et je ne pense pas être le seul !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !