calcul surface d'un rectangle pour me familiariser avec pb .

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
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

Message par falsam »

klystron a écrit :Je viens de modifier une partie de mon petit code, je ne sais pas si c'est bon
Pour le moment c'est pas mal.
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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

Bonsoir Olivier,
je suis novice en purebasic.
j'apprend sur le tas :D
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

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 ? :D
Avatar de l’utilisateur
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

Message par falsam »

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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

pour mettre les résultats aux bons endroits

resultat du calcul de l'hypoténuse et du perimetre a mettre dans les cases .
Avatar de l’utilisateur
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

Message par falsam »

Je viens de tester tes trois procédures et ça a l'air d’être pas mal.

:idea: 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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

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+
Dernière modification par klystron le ven. 05/déc./2014 22:44, modifié 1 fois.
Avatar de l’utilisateur
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

Message par falsam »

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

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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

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+
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

je viens d'ajouter le perimetre , mais j'ai une erreur a la ligne 110 ( valf() nombre de parametre incorrecte )

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
Avatar de l’utilisateur
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

Message par falsam »

Petit souci de parenthése

Code : Tout sélectionner

Calculperimetre(ValF(GetGadgetText(#longueur)), ValF(GetGadgetText(#largeur)), ValF(GetGadgetText(#hypotenuse)))
Comme ça c'est mieux
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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

ok merci pour les infos.
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.
Avatar de l’utilisateur
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

Message par falsam »

klystron a écrit :ok j'ai mis 4 parenthèses au lieu de trois ? c'est ca l'erreur ?
Oui et il en manquait une à l'intérieur
klystron a écrit :et aussi un espace entre ?
ça n'a pas d'importance.
klystron a écrit :bon week-end
Bon Week-end à toi aussi.
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%
klystron
Messages : 149
Inscription : mar. 02/déc./2014 12:16

Re: calcul surface d'un rectangle pour me familiariser avec

Message par klystron »

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.
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: calcul surface d'un rectangle pour me familiariser avec

Message par Micoute »

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 !
Répondre