Calcul de l'écart-type

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 260 fois - Téléchargée 12 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 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
9 avril 2017 à 14:31
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 18414 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 juin 2023 624 > NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023
9 avril 2017 à 15:46
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.