AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StringGrid - Minimum, Maximum, Durchschnitt bestimmen
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid - Minimum, Maximum, Durchschnitt bestimmen

Ein Thema von atgis · begonnen am 18. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#41

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 14:47
Häng das Bild doch einfach als Anhang an dein Posting dran, dann können auch die, bei denen Imageshack gesperrt ist deinen Fehler sehen!
Richard Mahr
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#42

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 14:53
Der Fehler tritt wohl auf, wenn in der Zelle kein Wert steht. Probier mal so.

Delphi-Quellcode:
var //DCL Abweichung
    AbweichungsQuadrat: single;
    Standardabweichung: single;
    temp: double;
begin

//Abweichung ermitteln
Mittelwert:= summe / (sgMess.RowCount-1);
AbweichungsQuadrat:=0;
for i:= 1 to sgMess.RowCount-1 do
begin

try
 temp := StrToFloat(sgMess.Cells[1,i]);
except
 temp := 0;
end;

AbweichungsQuadrat:=AbweichungsQuadrat + (temp) - Mittelwert) * (temp) - Mittelwert);
Standardabweichung:= SQRT((AbweichungsQuadrat)/(sgMess.RowCount-1)*(temp) -1);
end;
edAbw.text:=FloatToStr(Standardabweichung);

end;

Oder sorg dafür das bei keinem Wert 0 drin steht.

Gruß
tr909
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#43

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 15:02
Also ich hab jetzt nochmal gebastelt:

Ausgangsproblem war das hier:
Delphi-Quellcode:
//Abweichung ermitteln
Mittelwert:= edMittel.text;
AbweichungsQuadrat:=0;
for i:= 1 to Anzahl do
 AbweichungsQuadrat:=AbweichungsQuadrat + (x[i] - Mittelwert) * (x[i] - Mittelwert);
Standardabweichung:= SQRT(AbweichungsQuadrat/(Anzahl(Zahlenfeld) -1)
Mir ist aber noch unklar was Zahlenfeld genau ist?!

Ich habe jetzt das hier mal gemacht:

Delphi-Quellcode:
var AbweichungsQuadrat: single;
    Standardabweichung: single;

begin
//Abweichung ermitteln
Mittelwert:= summe / (sgMess.RowCount-1);
AbweichungsQuadrat:=0;
for i:= 1 to sgMess.RowCount-1 do
 AbweichungsQuadrat:=AbweichungsQuadrat + (StrToFloat(sgMess.Cells[1,i]) - Mittelwert) * (StrToFloat(sgMess.Cells[1,i]) - Mittelwert);
 Standardabweichung:= SQRT((AbweichungsQuadrat)/(sgMess.RowCount-1)*(StrToFloat(sgMess.Cells[1,sgMess.RowCount-1])) -1);

edAbw.text:=FloatToStr(Standardabweichung);
end;
Es rechnet jetzt auch einen Wert aus...aber nicht mit allen Werten ...
Ich habe eine Liste in der alle Werte 0019 sind...da gibt es also keine Abweichung und das Prog. stürzt mit einer Exception "keine Gültige Gleitkomma-Operation" ab...das müsste man noch abfangen...

Mh...bloß stimmen die ergebnisse auch?
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#44

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 16:40
So ich habs endlich ...

Also ich hab eine Bsp. Rechnung gefunden. Ich möchte es mal kurz erklären:

Die Standardabweichung ist eine einfache nummerische Transformation der Varianz. Sie entspricht der Quadratwurzel aus der Varianz.

Die Varianz basiert auf der Summe der quadrierten Abweichungen jedes Variablenwertes vom arithmetischen Mittel geteilt durch die Anzahl der Variablen minus 1 (n-1).

Beispiel: Die Varianz der Altersangaben 18, 21, 21, 27, 27, 27, 30, 31 und 45 berechnet man wie folgt:

Mittelwert:
18+21+21+27+27+27+30+31+45 = 247
247 / 9 = 27,44444444

Varianz:
18-27,44444444² = 89,197
21-27,44444444² = 41,530
21-27,44444444² = 41,530
27-27,44444444² = 0,197
27-27,44444444² = 0,197
27-27,44444444² = 0,197
30-27,44444444² = 6,531
31-27,44444444² = 12,642
45-27,44444444² =308,197

Summe = 500,218531

Standardabweichung:
Wurzel aus(500,218531 / 9 -1)
= 7,91 Jahre




In Delphi sieht es nun so aus:

Delphi-Quellcode:
Mittelwert:= summe / (sgMess.RowCount-1);
AbweichungsQuadrat:=0;
for i:= 1 to sgMess.RowCount-1 do
 AbweichungsQuadrat:=AbweichungsQuadrat + (StrToFloat(sgMess.Cells[1,i]) - Mittelwert) * (StrToFloat(sgMess.Cells[1,i]) - Mittelwert);
 Standardabweichung:= SQRT((AbweichungsQuadrat)/(sgMess.RowCount-2));

edAbw.text:=FloatToStrF(Standardabweichung, ffFixed, 10, 2);
Vielen Danke an alle, die mir so tatkräftig geholfen haben!
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#45

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 19:35
Hallo atgis!
Schön, dass wir dir helfen konnten. War heute nicht am PC, sonst hätte ich schon früher bemerkt, dass der Divisor ja nur "n-1", in unserem Fall also verkürzt "RowCount-2", ist. Aber bedenke bitte, das gilt nur, wenn es EINE fixe oberste Zeile gibt!! Allgemeingültig muss es heissen: "RowCount-FixedRows-1" (Gibt vielleicht einen Extrapunkt in der mündlichen Prüfung. Sprich das ruhig an und erkläre es - macht einen guten Eindruck, kostet Zeit und die Prüfer können weniger selber Fragen).
Tja, dann viel Erfolg am Montag!
Gruß aus Hamburg
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#46

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 21:22
in aller regel verwendet man n - 1 als divisor und nicht n. ausser es sind bestimmte voraussetzungen gegeben.

PPS: welche art von mittelwert willste eigentlich? es gibt davon viele mit jeweils speziellen einsatzbereichen...
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#47

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen

  Alt 20. Sep 2007, 21:24
*gelöscht*
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz