chadi42
Messages postés4Date d'inscriptionlundi 29 janvier 2007StatutMembreDernière intervention 4 février 2007
-
4 févr. 2007 à 20:42
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
4 févr. 2007 à 23:47
voici un programme pour rentrer des notes pour un concours de patinage artistique sur 20. Donc voila le programme a 2 probleme que je n'arrive pas a resoudre :
1- comment faire pour pouvoir ecrire mes notes en decimal ( As ?? )
2- les mots que jai souligner et mis en gras, il me dit que c une variable non-défini jai pas compris ce que je devai faire.
Voici mon programme :
Option Explicit
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Dim noteTab(8) As Double ' La note
Dim k As Integer
Dim Diviseur As Integer
Dim Max As Double ' La note maximum
Dim Min As Double ' La note minimum
Dim Moyenne As Double ' La moyenne général
Dim Somme As Double ' La somme
Private Sub Form_Load()
' Initialisation des variables
Somme = 0
Max = 0
Min = 0
Moyenne = 0
Diviseur = 0
Text1. Text = ""
For k = 1 To 8
noteTab(k) = InputBox("Entrer une note entre 0.0 et 6.0", "Command1")
Next k
Min = noteTab(1)
Max = noteTab(1)
For k = 2 To 8
If Min > noteTab(k) Then
Min = noteTab(k)
End If
If Max < noteTab(k) Then
Max = noteTab(k)
End If
Next k
Text1.Text = "La valeur minimale est de : " & Min & "; " & vbNewLine
Text1.Text = Text1.Text & "La valeur maximale est de : " & Max & ";" & vbNewLine
Text1.Text = Text1.Text & "Les notes des juges : "
For k = 1 To 8
Text1.Text = Text1.Text & noteTab(k) & ","
Next k
Text1.Text = Text1.Text & "La moyenne des notes : "
For k = 1 To 8
If noteTab(k) <> Min And noteTab(k) <> Max Then
Somme = Somme + noteTab(k)
Diviseur = Diviseur + 1
End If
Next k ' fin de la boucle
Moyenne = Somme / Diviseur
Text1.Text = Text1.Text & Moyenne & ","
End Sub
A voir également:
Écrire un programme qui calcule la moyenne des notes python
Salut
Pour rentrer des nombres avec décimales tapes par exemple 6.3 pour 6,3 ( le point remplace la virgule
As-tu mis une zone de texte Text1 sur la feuille de ton programme ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 4 févr. 2007 à 21:05
Admettons qu'il y ait bien un contrôle Text1.
Rien ne prouve qu'il est déjà chargé (utilisation de l'événement Form_load..., à ce que nous voyons), lorsque l'on tente de modifier sa propriété Text (text1.text = "")...
Attention le type Decimal est un sous-type du type Variant : inutile dans ton programme
De plus tu demandes l'entrée des notes dans la procédure Form_Load de ta feuille par l'inputbox : cela ne peut pas marcher car la feuille n'est peut-être pas totalement chargée
Visual Basic est un logiciel qui travaille avec des événements
Il faut d'abord charger la feuille par le Form_ Load puis ensuite dans une autre procédure par menu demander l'entrée des notes
Ta façon de programmer rappelle Qbasic que j'ai bien connu il y a quelques années
Décortique le travail
1 ° Préparation de la feuille
2 ° entrée des notes
3 ° Calcul des moyennnes et des min et max
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 4 févr. 2007 à 23:47
salut,
je te conseille le type Currency (tableau tout comme somme et moyenne)
input revoie un variant, à récupérer avec TON_CURR= Val (TON_INPUT).
pas besoin de déclarer des variables en générale, à voir selon le reste du code mais là, tout est à déclarer dans ta sub.
tu devrais passer par une variable temporaire dans ta boucle de saisie pour vérifier que la somme soit bien entre 0 et 6.
++
PCPT [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp