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;
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
Sie würden diese Funktion von irgendwo wie "var Durchschnitt: Nummer = durschnittlicherScore (karacterOversikt)" verwenden. Welche Fehler gibt es dir? – Aaron
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