Delphi, Durchschnitt, mittlere Zahl, Median ausgeben

  • Hallo,


    ich habe ein Programm, welches mehrere Zahlen (maximal 10) erhält - jede wird per Eingabe eingegeben und in Zahlenfolge abgelegt.


    Nun soll das Programm den Durchschnitt dieser Zahlen ausgeben,
    habe das Ganze wie folgt gelöst, allerdings erhalte ich mit div nur ganze Zahlen.


    Code
    function TFrmUebung.Durchschnitt: Integer;
    var d: Integer;
    begin
    d:=0;
    for i:=1 to e do
    d:=d+Zahlenfolge{i}; *
    d:=d div e;
    result:=d;
    end;


    Nun soll noch die mittlere Zahl ausgegeben werden, sprich es werden die Zahlen 4, 6, 9 übergeben, das Programm muss die Zahl 6 ausgeben.


    Code
    function TFrmUebung.MittlereZahl: Integer;
    var m: Integer;
    begin
    m:=e div 2;
    result:=Zahlenfolge[m];
    end;


    Auch hier klappt das mit div nicht so ganz :rolleyes:
    Im Beispiel wird 4 ausgegeben.
    e = die Anzahl der Eingaben
    3 Eingaben / 2 = 1,5 -> 1 wird durch div ausgegeben,
    Zahlenfolge[1] ist 4.



    Desweiteren muss das Programm den Median (die Mitte) bestimmen, aber da habe ich keine Ahnung, wie ich da vorgehen soll.



    * [ ] habe ich mit { } ersetzt.


    -void

  • Durschnitt habe ich mittlerweile gelöst :)


    -void


    EDIT: Was ist der Unterschied zwischen Median und der mittleren Zahl :confused:

  • hmm... kann es sein, dass mit "mittlerer Zahl" bei Dir die mittlere Zahl der -- potentiell unsortierten -- Zahlenreihe gemeint ist?


    Der Median ist die mittlere Zahl (bzw. bei einer geraden Menge an Zahlen eine der beiden mittleren Zahlen, u.U. wird in diesem Fall auch die Mitte zwischen diesen beiden Zahlen verwendet, auch wenn diese nicht in der Zahlenmenge enthalten ist) einer sortierten Menge an Zahlen.


    Beispiel: Deine Zahlenreihe sei [6,4,9]. Dann wäre die mittlere Zahl die 4, der Median aber die 6.


    Ansonsten sähe ich auch keinen Unterschied.


    (zu Deiner Berechnung der mittleren Zahl: Ich kenne Delphi zwar nicht, aber Deinem Beispiel nach sieht es so aus, als begänne der Index Deines Arrays mit 1, nicht 0 ==> nimm m := (e+1) div 2)

    History: Motorola e930, t720, RAZR V3, MOTORAZR maxx V6, MOTOROKR Z6, MOTOROKR E8, MOTOZINE ZN5, Samsung S8000 Jet

  • Zitat

    Original geschrieben von Michael P.
    hmm... kann es sein, dass mit "mittlerer Zahl" bei Dir die mittlere Zahl der -- potentiell unsortierten -- Zahlenreihe gemeint ist?


    Ja, du hast recht. Habe das mittlerweile auch rausgefunden :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!