-2

Ich mache eine Anwendung, die die durchschnittlichen Noten für Studenten berechnen wird. Sie haben Eingabefelder für jedes der Fächer, die sie belegen, wo sie die Noten einfügen können (von 1 bis 6, wobei 6 die beste Note ist). Ich habe versucht, die durchschnittliche Punktzahl aus dem Array zu bekommen, aber ich kann es einfach nicht richtig machen. Es wird nicht der Durchschnitt berechnet, der das Problem darstellt, sondern der Zugriff auf die numerischen Werte, die von den Benutzern eingefügt werden. Ab sofort kann ich keine der von den Nutzern eingegebenen Nummern zurückgeben. HierAS3: Holen Sie den Durchschnitt aus einem Array

ist der Code:

import flash.events.MouseEvent; 
import fl.controls.DataGrid; 
import fl.controls.dataGridClasses.DataGridColumn; 
import fl.events.DataGridEvent; 
import fl.data.DataProvider; 
import fl.controls.ScrollPolicy; 

knapp.addEventListener(MouseEvent.CLICK, klikk); 

function klikk (evt:MouseEvent) { 
    //Array for å samle alle verdiene 
    var karakterer = 0; 
    var karakterOversikt:Array = new Array(); 

    karakterOversikt = [ 
     {Fag: "Engelsk", "Karakter": uint(inputEng.text)}, 
     {Fag: "Geografi", "Karakter": uint(inputGeo.text)}, 
     {Fag: "Historie Vg3", "Karakter": uint(inputHist.text)}, 
     {Fag: "Kroppsøving Vg3", "Karakter": uint(inputGym.text)}, 
     {Fag: "Naturfag", "Karakter": uint(inputNat.text)}, 
     {Fag: "Matematikk Vg1", "Karakter": uint(inputMatVg1.text)}, 
     {Fag: "Matematik Vg2", "Karakter": uint(inputMatVg2.text)}, 
     {Fag: "Norsk Hovedmål, skriftlig", "Karakter": uint(inputNorH.text)}, 
     {Fag: "Norsk Sidemål, skriftlig", "Karakter": uint(inputNorS.text)}, 
     {Fag: "Norsk Muntlig", "Karakter": uint(inputNorM.text)}, 
     {Fag: "Religion og etikk", "Karakter": uint(inputRel.text)}, 
     {Fag: "Samfunnsfag", "Karakter": uint(inputSamf.text)}, 
     {Fag: "Programfag 1", "Karakter": uint(inputProg1.text)}, 
     {Fag: "Programfag 2", "Karakter": uint(inputProg2.text)}, 
     {Fag: "Programfag 3", "Karakter": uint(inputProg3.text)}, 
     {Fag: "Programfag 4", "Karakter": uint(inputProg4.text)}, 
     {Fag: "Programfag 5", "Karakter": uint(inputProg5.text)}, 
     {Fag: "Programfag 6", "Karakter": uint(inputProg6.text)}, 
     {Fag: "Eksamen 1", "Karakter": uint(inputEksamen1.text)}, 
     {Fag: "Eksamen 2", "Karakter": uint(inputEksamen2.text)}, 
     {Fag: "Eksamen 3", "Karakter": uint(inputEksamen3.text)}, 
     {Fag: "Eksamen 4", "Karakter": uint(inputEksamen4.text)}, 
     {Fag: "Eksamen 5", "Karakter": uint(inputEksamen5.text)}, 
    ]; 

    //sorterer karakterene etter høyeste 
    karakterOversikt.sortOn("Karakter", Array.DESCENDING | Array.NUMERIC); 

    //Lager datagrid med alle karakterene 
    fagOversiktGrid.dataProvider = new DataProvider(karakterOversikt); 
    fagOversiktGrid.columns = ["Fag", "Karakter"]; 
    fagOversiktGrid.columns[0].width = 190; 
    fagOversiktGrid.columns[1].width = 70; 

Antwort

0

Nun ist die durchschnittliche ist einfach die Summe aller Karakter Werte dividiert durch karakterOversikt.length:

function averageScore(karakterOversikt:Array):Number { 
    var sum:Number = 0; 
    for each (var item:Object in karakterOversikt) { 
     sum += item.Karakter; 
    } 
    return sum/karakterOversikt.length; 
} 
+0

Vielen Dank für Ihre Antwort. Leider bekomme ich keine Werte in der Summe. Versucht, die var sum zu verschieben: Number = 0; außerhalb der Funktion, sowie summe/karakterOversikt.length in eine andere var einfügen und dann die var. Aber wenn ich versuche, die Summe außerhalb der Funktion zu verfolgen, gibt es Fehler. Irgendwelche Vorschläge? – ripsraps

+0

Sie würden diese Funktion von irgendwo wie "var Durchschnitt: Nummer = durschnittlicherScore (karacterOversikt)" verwenden. Welche Fehler gibt es dir? – Aaron

+0

Ich erkannte, dass ich meine Arrays ändern muss. Zuerst haben Sie ein Array mit allen Informationen und dann eine Schleife, die alle Informationen in ein neues Array einfügt, das die Datenbank für das Datagrid sein würde. Das gibt mir mehr Flexibilität, da ich jetzt zwei Arrays habe, die für verschiedene Dinge verwendet werden können. Und dabei habe ich Ihre Funktion, mit dem ersten Array zu arbeiten. Vielen Dank für Ihre Hilfe! :) – ripsraps