Moyenne de note

Résolu
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007 - 26 mars 2007 à 11:50
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 26 mars 2007 à 16:45
Bonjour a tous,
alors voila j'ai un petit probleme que je n'arrive pas à resoudre :

J'ai crée un petit prog en vb qui permet de faire la moyenne de 6 notes
Maintenant j'aimerai faire la moyenne de 4 notes les plus élevées sur les 6 que j'ai tapées mais je n'arrive pas.
Faire une moyenne globale pas de prob mais "extraire" le 4 meilleures sur le 6 et faire leurs moyennes sa je ne sais pas comment faire ...

A savoir que les notes sont taper dans des textebox classique et que je dois cliquer sur un bouton pour faire la moyenne qui sera indiquer dans un autre textbox.

Es ce que quelqu'un a un piste ou qui sait peut être la solution ?

Merci d'avance

23 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 15:40
Je l'ai déclaré moi!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
26 mars 2007 à 12:00
Bonjour,

Lire déjà ceci :
http://www.vbfrance.com/infomsg_CALCUL-MOYENNE-SANS-PRENDRE-COMPTE-DEUX-PLUS-MAUVAISES_909290.aspx#17
Ta solution (celle d'une moyenne des 4 plus fortes notes parmi 6) s'y trouve déjà, elle...
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 mars 2007 à 12:10
Bonjour jmf
Bonjour avivien,
Tes TextBox sont il liés à une table notes ?
Ou tu veux caclculer directement d' après les notes saisies ,
et enregistrer le résultat ?
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 12:36
Alors tout d'abord merci pour le lien jmfmarques mais je suis pas tres bon en vb et maintenant le probleme qu'il se pose s'est comment faire pour trier des nombres en decroissant ou croissant ?


merci 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 mars 2007 à 12:45
t' as pas répondu à la question...!
Trier une table n' est comme trier une matrice
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 13:16
table ??? matrice ?? je n'ai pas crée ni de table ni de matrice !! mes notes sont simplement dans des textbox rien de plus, je les rentrent manuellement.
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 13:20
Ce que je veux savoir s'est comment trier des nombres en decroissant.
Ces nombres se trouve dans des textbox séparés.
Merci
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 mars 2007 à 13:41
Alors j' avais raison de poser la question,
ça nous évite un nombre inconsidérables
d' egarement .


Quoiqu' il en soit, voici un traitement qui te permet de
calculer ta moyenne sans passer par le tri.


N' est valable que si tes TextBox sont indexés.
(TextBox(1) , TextBox(2), TextBox(3)....)


Dim i as integer
Dim xMin As Double
Dim PPP As Integer   '(PremierePlusPetite)
Dim DPP As Integer   '(DeuxiemePlusPetite)


'IDENTIFIER LES INDEX DES DEUX PLUS BASSES NOTES
 
'A la recherche de PPP
xMin=20  'note maximale
For i=1 to 6
 if CDbl(TextBox(i))<xMin Then
     xMin=CDbl(TextBox(i))
     PPP=i
  End if
Next


'A la recherche de DPP
xMin=20
For i=1 to 6
 if (i<>PPP) And (CDbl(TextBox(i))<xMin) Then
     xMin=CDbl(TextBox(i))
     DPP=i
  End if
Next


'Total des 4 plus elevées
Dim xMin As Double
Total=0
For i=1 to 6
 if (i<>PPP) And (i<>DPP) Then
     Total=Total+CDbl(TextBox(i))
  End if
Next


'Moyenne
TextBoxMoyenne.Text=Total/4




il y' a sûrement plus simple...
ça te permet de te familiariser avec un code fait-main
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 14:03
Bon je vais essayer ta solution malgré que je ne comprennent pas grand chose a ton code. mais bon je te tiens au courant....
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 14:14
je penses y passer l'apres midi sur ce code car faut que je l'adapte a mon projet et ya du boulot au niveau de declaration


je suis sous vb 2005 et s'est chiant je trouves
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 14:23
Parce que en fait je veux que quand je clique sur mon bouton "moyenne de quatre meilleur" sa me fasse la moyenne de 4 meilleurs.
Ton code a l'air bien mais pour l'instant j'en bave car je ne sais pas dans quel ordre le mettre de plus que mes textbox sapel tx1, tx2 ... tx6
et le tx7 s'est le textbox ou doit etre aficher la moyenne des quatres meilleurs note
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 14:39
J'ai droit a un joker ou pas pour ton code ?


car la je ne comprends plus rien !!


j'essaye dans tous le sens ya toujours quelques chose qui ne va pas ...


la s'est "Total" s'est quoi physiquement Total chez toi, un bouton, un textbox ?


le truc s'est que je ne voix pas concrétement se que doit donner le resultat de ton code ...
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 14:44
Dim i as integer
Dim xMin As Double
Dim PPP As Integer   '(PremierePlusPetite)
Dim DPP As Integer   '(DeuxiemePlusPetite)


'IDENTIFIER LES INDEX DES DEUX PLUS BASSES NOTES
 
'A la recherche de PPP
xMin=20  'note maximale
For i=1 to 6 'incrémentation des textbox de 1 à 6 donc chez toi tx(i)
 if CDbl(TextBox(i))<xMin Then
     xMin=CDbl(TextBox(i))
     PPP=i
  End if
Next


'A la recherche de DPP
xMin=20
For i=1 to 6 'incrémentation des textbox de 1 à 6 donc chez toi tx(i)
 if (i<>PPP) And (CDbl(TextBox(i))<xMin) Then
     xMin=CDbl(TextBox(i))
     DPP=i
  End if
Next


'Total des 4 plus elevées
Dim xMin As Double
Total=0
For i=1 to 6
 if (i<>PPP) And (i<>DPP) Then
     Total=Total+CDbl(TextBox(i)) 'Total c'est une variable en l'occurence la moyenne des 4 meilleurs note
  End if
Next


'Moyenne
TextBoxMoyenne.Text=Total/4 'correspond à tx7






 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 14:48
'A la recherche du plus petit nombre:
xMin=20  'note maximale
For i=1 to 6 'incrémentation des textbox de 1 à 6 donc chez toi tx(i)
 if CDbl(tx(i))<xMin Then
     xMin=CDbl(Tx(i))
     PPP=i
  End if
Next
'A la recherche du deuxième plus petit nombre:
xMin=20
For i=1 to 6 'incrémentation des textbox de 1 à 6 donc chez toi tx(i)
 if (i<>PPP) And (CDbl(Tx(i))<xMin) Then
     xMin=CDbl(Tx(i))
     DPP=i
  End if
Next

'Total des 4 plus elevées
Dim xMin As Double
Total=0
For i=1 to 6
'donc les 4 plus élévés sont forcéments différentes des deux plus petites quoique pas tjrs vrai si tu as 10, 11, 11, 15, 16, 17
'donc à améliorer pour le cas cité
 if (i<>PPP) And (i<>DPP) Then
     Total=Total+CDbl(TextBox(i)) 'Total c'est une variable en l'occurence l'adition des 4 meilleurs notes
  End if
Next

'Moyenne
TextBoxMoyenne.Text=Total/4 'correspond à tx7 ou est affichée la moyenne

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 14:48
merci mais faut que je declare la variable "total" ?
desolé d'être aussi nul
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 14:50
Dim total As Double

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 15:01
Je suis arrivé a reglé les erreurs mais il me fais une derniere erreur, il me dit de declaré "tx" (textbox)
je dois taper : Dim tx as Integer ?

Mon code :


Public
Class Form1

Dim i
As
Integer
Dim xMax
As
Double
Dim PPP
As
Integer
'(PremierePlusPetite)
Dim DPP
As
Integer
'(DeuxiemePlusPetite)
Dim Total
As
Double
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

'A la recherche de PPP
xMax = 20
'note maximale
For i = 1
To 6
'incrémentation des textbox de 1 à 6 donc chez toi tx(i)
If
CDbl(tx(i)) < xMax
Then
xMax =
CDbl(tx(i))
PPP = i

End
If








Next






'A la recherche de DPP

xMax = 20







For
i = 1

To
6

'incrémentation des textbox de 1 à 6 donc chez toi tx(i)






If
(i <> PPP)

And
(

CDbl
(tx(i)) < xMax)

Then

xMax =




CDbl
(tx(i))DPP = i


End



If






Next






'Total des 4 plus elevées

Total = 0







For
i = 1

To
6


If
(i <> PPP)

And
(i <> DPP)

Then

Total = Total +




CDbl
(tx(i))

'Total c'est une variable en l'occurence la moyenne des 4 meilleurs note






End



If






Next






'Moyenne

tx7.Text = Total / 4




'correspond à tx7






End



SubEnd





Class
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 15:30
Public






Class
Form1


Dim
i

As



Integer






Dim
xMax

As



Double






Dim
PPP

As



Integer



'(PremierePlusPetite)






Dim
DPP

As



Integer



'(DeuxiemePlusPetite)






Dim
Total

As



Double






Dim
textboxarray(6)

As
TextBox


Private



Sub
Button1_Click(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles
Button1.ClickxMax = 20


'note maximale






For
i = 1

To
6

'incrémentation des textbox de 1 à 6 donc chez toi textbox(i)






If



CDbl
(textboxarray(i).Text) < xMax

Then

xMax =




CDbl
(textboxarray(i).Text)PPP = i


End



If 








Next






'A la recherche de DPP

xMax = 20


 







For
i = 1

To
6

'incrémentation des textbox de 1 à 6 donc chez toi textbox(i)






If
(i <> PPP)

And
(

CDbl
(textboxarray(i).Text) < xMax)

Then

xMax =




CDbl
(textboxarray(i).Text)DPP = i

 


End



If






Next






'Total des 4 plus elevées

Total = 0


 







For
i = 1

To
6


If
(i <> PPP)

And
(i <> DPP)

Then

Total = Total +




CDbl
(textboxarray(i).Text)

'Total c'est une variable en l'occurence la moyenne des 4 meilleurs note






End



If






Next






'Moyenne

TextBox7.Text = Total / 4







'correspond à textbox7  








End



Sub






Private



Sub
Form1_Load(

ByVal
sender

As
System.Object,

ByVal
e

As
System.EventArgs)

Handles



MyBase
.Loadtextboxarray(1) = TextBox1

textboxarray(2) = TextBox2

textboxarray(3) = TextBox3

textboxarray(4) = TextBox4

textboxarray(5) = TextBox5

textboxarray(6) = TextBox6


End



SubEnd





Class




 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
26 mars 2007 à 15:31
textboxarray(1) = TextBox1 'tx1


textboxarray(2) = TextBox2 'tx2


textboxarray(3) = TextBox3 'tx3


textboxarray(4) = TextBox4 'tx4


textboxarray(5) = TextBox5 'tx5


textboxarray(6) = TextBox6 'tx6

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
18avivien73 Messages postés 15 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 26 mars 2007
26 mars 2007 à 15:37
Il me demande de declarer encore "textboxarray" comment sa se fais ?
0
Rejoignez-nous