Calcul de l'écart-type

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 499 fois - Téléchargée 9 fois

Contenu du snippet

Module Module1

    Sub Main()
        moyenne()
        Console.Read()
    End Sub

    Private Sub moyenne()

        Dim nbre As Integer
        Dim echantillon(100) As Double
        Dim ecartype(100) As Double

        Console.Write("Introduire le nombre d'Echantillon: ")
        nbre = Console.ReadLine()

        Dim somme As Double = 0
        For i As Integer = 0 To nbre
            echantillon(i) = Console.ReadLine()
            somme = somme + echantillon(i)
        Next
        Console.WriteLine()

        ' //Affichage Echantillon 
        For i As Integer = 0 To nbre
            Console.WriteLine("t= " & echantillon(i))
        Next
        Console.WriteLine()
        ' //calcul moyenne 
        somme = somme / (nbre + 1)
        Console.WriteLine("La moyenne est égale: " & somme)
        '//calcul Ecart-type 
        Dim ecart As Double = 0
        Console.WriteLine("Le calcul de l'Ecart-Type se fait tel que:")

        For i As Integer = 0 To nbre
            ecart = (echantillon(i) - somme) ^ 2
            Console.WriteLine(" " & ((echantillon(i) - somme) & " ^2= " & ecart))
        Next
        '// 
        For i As Integer = 0 To nbre
            ecartype(i) = (echantillon(i) - somme) ^ 2
        Next

        Dim somme2 As Double = 0
        For i As Integer = 0 To nbre
            somme2 = somme2 + ecartype(i)
        Next

        Dim type As Double = 0
        type = Math.Sqrt((somme2) / (nbre + 1))
        Console.WriteLine("L'Ecart-type est égal= " & type)
    End Sub
End Module

A voir également

Ajouter un commentaire

Commentaires

NHenry
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 octobre 2019
136 -
Plusieurs remarques :
- Actives "Option Strict" et "Option Explicit" et corriges les erreurs.
- Pour pouvoir réutiliser ton code, il aurait été préférable que ce soit une fonction qui prenne en paramètre une liste de valeur et retourne l'écart type.
- A la place d'un tableau, regardes System.Collection.Generic.List(of T)
- Quitte à faire une fonction pour calculer l'écart type, il aurait été préférable de faire une fonction pour calculer la moyenne aussi.

Enfin, en 2 lignes, il est facile de faire mieux (je n'ai pas l'EDI, donc c'est peut être améliorable ou avec quelques fautes) :
Moyenne=MaListe.Sum()/MaListe.Count
EcartType=Math.Sqrt((from lItem in Maliste select (lItem-Moyenne)^2).Sum()/MaListe.Count)
Whismeril
Messages postés
13853
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 octobre 2019
312 > NHenry
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
21 octobre 2019
-
Salut, y a même MaListe.Average()

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.