Calculer une moyenne

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Calculer une moyenne

Message par Micoute »

Bonjour à tous,

ne sachant pas où mettre mon code, je l'ai rangé dans cette rubrique

Code : Tout sélectionner

;{- Enumérations / DataSections
;{ Fenetres
Enumeration
  #Fenetre_Calcul
EndEnumeration
;}
;{ Gadgets
Enumeration
  #Txt_Enonce
  #Lst_Moyennes
  #Str_Valeurs
  #Btn_Entree
  #Btn_Reinit
  #Btn_Calculer
  #Str_Somme
  #Str_Nbre_Valeurs
  #Str_Moyenne
  #Txt_Somme
  #Txt_Nbre_valeurs
  #Txt_Moyenne
EndEnumeration
;}
;{ Polices
Enumeration
  #police
EndEnumeration
;}
;}
;{ Affectation des polices
LoadFont(#police, "Arial", 14, #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(#police))
;}
;{ Variables
Global Evenement, i, Nombre.d = 0.0, Somme.d = 0.0, NewList Moyennes.d()
;}
;{ Déclaration des procédures
Declare Ajouter_element_Liste()
Declare Calculer()
Declare Reinitialiser()
Declare Quitter()
Declare Programme_principal()
;}
;{ Lancement du programme principal
Programme_principal()
;}
;{ Procédures
Procedure Ajouter_element_Liste()
  ;Ajouter un élément à la liste
  AddElement(Moyennes())
  ;Afficher la valeur du Combo dans la liste
  Moyennes() = ValD(GetGadgetText(#Str_Valeurs))
  AddGadgetItem(#Lst_Moyennes, ListIndex(Moyennes()), StrD(Moyennes()))
  ;Effacer la valeur du Combo et le réinitialiser
  SetGadgetText(#Str_Valeurs, " ")
  SetActiveGadget(#Str_Valeurs)
EndProcedure
Procedure Calculer()
  i = 0    
  While i < ListSize(Moyennes())
    SelectElement(Moyennes(), i)
    Nombre = Moyennes()
    i + 1
    Somme + Nombre
  Wend
  SetGadgetText(#Str_Somme, StrD(Somme))
  SetGadgetText(#Str_Nbre_Valeurs, StrD(ListSize(Moyennes())))
  SetGadgetText(#Str_Moyenne, StrD(ValD(GetGadgetText(#Str_Somme)) / ValD(GetGadgetText(#Str_Nbre_Valeurs))))
  Nombre = 0 : Somme = 0
EndProcedure
Procedure Reinitialiser()
  ;supprimer le contenu de tous les gadgets
  i = 0
  While i <= ListSize(Moyennes())
    RemoveGadgetItem(#Lst_Moyennes, 0)
    i + 1
  Wend
  SetGadgetText(#Str_Somme, "")
  SetGadgetText(#Str_Nbre_Valeurs, "")
  SetGadgetText(#Str_Moyenne, "")
  ;Vider la liste
  ClearList(Moyennes())
  SetActiveGadget(#Str_Valeurs)
EndProcedure
Procedure Quitter()
  CloseWindow(#Fenetre_Calcul)
  End
EndProcedure
Procedure Programme_principal()
  If OpenWindow(#Fenetre_Calcul, 450, 200, 400+20, 380, "Calculer une moyenne", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
      TextGadget(#Txt_Enonce, 10, 0, 210, 40, "Entrez des valeurs", #SS_CENTERIMAGE)
      ListIconGadget(#Lst_Moyennes, 250, 10, 160, 240, "", 100, #LVS_NOCOLUMNHEADER)
      SendMessage_(GadgetID(#Lst_Moyennes), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
      StringGadget(#Str_Valeurs, 10, 40, 180, 30, "")
      ButtonGadget(#Btn_Entree, 200, 40, 30, 30, " => ", #PB_Text_Center)
      ButtonGadget(#Btn_Calculer, 10, 120, 230, 30, "Calculer la moyenne")
      ButtonGadget(#Btn_Reinit, 10, 210, 230, 30, "Réinitialiser")
      StringGadget(#Str_Somme, 250, 260, 160, 30, "")
      StringGadget(#Str_Nbre_Valeurs, 250, 300, 160, 30, "")
      StringGadget(#Str_Moyenne, 250, 340, 160, 30, "")
      TextGadget(#Txt_Somme, 10, 260, 230, 30, "Somme des valeurs", #SS_CENTERIMAGE)
      TextGadget(#Txt_Nbre_valeurs, 10, 300, 230, 30, "Nombre de valeurs", #SS_CENTERIMAGE)
      TextGadget(#Txt_Moyenne, 10, 340, 230, 30, "Moyenne", #SS_CENTERIMAGE)
      
      BindGadgetEvent(#Btn_Entree, @Ajouter_element_Liste())
      BindGadgetEvent(#Btn_Calculer, @Calculer())
      BindGadgetEvent(#Btn_Reinit, @Reinitialiser())
      BindEvent(#PB_Event_CloseWindow, @Quitter())
      
      SetActiveGadget(#Str_Valeurs)
  EndIf
EndProcedure
;}
;{- Boucle
Repeat
  Evenement = WaitWindowEvent()
ForEver
;}
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 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !