Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid - Minimum, Maximum, Durchschnitt bestimmen (https://www.delphipraxis.net/99839-stringgrid-minimum-maximum-durchschnitt-bestimmen.html)

atgis 19. Sep 2007 15:42

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
So...ich hab aber noch ein Problem mit dem Datentyp!
Delphi-Quellcode:
begin
summe:=0;
for i:=1 to sgMess.RowCount-1 do
 summe:=StrToInt(sgMess.Cells[1,i])+summe;

 mittelwert:=summe/(sgMess.RowCount-1);

edMittel.Text:=IntToStr(mittelwert);
end;
Inkompatible Typen: "Integer" und "Extended"...

Wie wandle ich das (sgMess.RowCount-1); um, dass ich damit Rechnen kann?

DeddyH 19. Sep 2007 16:06

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Wie ist mittelwert deklariert?

atgis 19. Sep 2007 16:14

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Als integer...

atgis 19. Sep 2007 16:16

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Ok ich habs... :oops: ...

Ich hab es als Single Deklariert...und das Ergebnis im Editfeld mit FloatToStr umgewandelt

atgis 19. Sep 2007 17:35

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
So noch etwas...

ich muss noch eine Abweichung des Mittelwertes berechnen. Gegeben ist:
Delphi-Quellcode:
//Abweichung ermitteln
Mittelwert:= _ _ _ _ _;
AbweichungsQuadrat:=0;
for i:= 1 to Anzahl do
 AbweichungsQuadrat:=AbweichungsQuadrat + (x[i] - Mittelwert) * (x[i] - Mittelwert);
Standardabweichung:= SQRT(AbweichungsQuadrat/(Anzahl(Zahlenfeld) 1);
Aber leider kann ich damit nicht viel anfangen. Weiß jemand anderes was? Im Zusammenhang mit dem Arithmetische Mittel, kenn ich nur die mittlere Abweichung. Die wird aber anders berechnet... :roll:

pstruh 19. Sep 2007 18:10

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Hallo atgis,
wo liegt das Problem? Ich kenne die Formel nicht. Aber es schaut doch so aus, dass dies schon die Umsetzung in Delphi ist. Die Werte x[i] musst du offenbar nur gegen die Zellwerte austauschen: x[i] wird also zu StrToInt(sgMess.Cells[1,i]) ...

atgis 19. Sep 2007 18:57

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Ja genau...das hab ich mir auch schon gedacht :) . Ich habe bloß wieder Probleme, bei der Umsetzung. Ich schreib einfach mal meinen Stand:
Delphi-Quellcode:
Mittelwert:= edMittel.text; //bzw summe / (sgMess.RowCount-1);
AbweichungsQuadrat:=0;
for i:= 1 to sgMess.RowCount-1 do
 AbweichungsQuadrat:=AbweichungsQuadrat + (StrToInt(sgMess.Cells[1,i]) - Mittelwert) * (StrToInt(sgMess.Cells[1,i]) - Mittelwert);
Standardabweichung:= SQRT(AbweichungsQuadrat/(sgMess.RowCount-1(Zahlenfeld) 1) //Zahlenfeld? ist das auch StrToInt(sgMess.Cells[1,i]?

edAbw.text:=IntToStr(Standardabweichung);
So einfach ist es aber dann doch nicht! Es funktioniert so nämlich nicht. Schön wenn es jemand verbessern kann...

EDIT: hier hab ich schon den 1. Fehler
Delphi-Quellcode:
AbweichungsQuadrat:=AbweichungsQuadrat + (StrToInt(sgMess.Cells[1,i]) - Mittelwert) * (StrToInt(sgMess.Cells[1,i]) - Mittelwert);
Integer und Extended sind inkompatibel...da Mittelwert Single ist...

pstruh 19. Sep 2007 20:04

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Hallo atgis,
sorry, da habe ich nicht daran gedacht. Nähern wir uns der Lösung, kenne sie auch noch nicht :-( Verwenden wir statt StrToInt gleich StrToFoat, damit kommen wir einen Schritt weiter. Das Nächste: Der Divisor "Anzahl Zahlenfeld" wird vermutlich die Anzahl der Werte sein, in unserem Fall also RowCount-FixedRows. Sorgen macht mir im Augenblich die "einsam stehende 1" vor der letzten Klammer - die kann so nicht richtg sein. Da müssen wir mal in ein Mathebuch schauen.... (Übrigens, machen wir gerade irgend eine Hausaufgabe???)
Gruß aus Hamburg

edit1 : In meinem uralten "Handbuch der Mathematik" finde ich eine Formel die zu passen scheint: "Mittlerer Fehler der Einzelmessung bei gleicher Präzision der Einzelmessung" - demnach ist der Divisor "n-1" >> offenbar fehlt da also ein Minuszeichen. :nerd:

atgis 20. Sep 2007 11:12

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
Mh...ich glaube mich erinnern zu können es ist diese Formel:
Standardabweichung (Die Standardabweichung ist in der Stochastik ein Maß für die Streuung der Werte einer Zufallsvariablen um ihren Mittelwert.)
http://upload.wikimedia.org/math/e/4...862c2be79c.png

Danach war aber eben der Quelltext von oben gegeben?! Meinst du auch diese? :wink:

atgis 20. Sep 2007 13:44

Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
 
So ich hab noch einwenig Probiert...

Delphi-Quellcode:
var //DCL Abweichung
    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,i])) -1);

edAbw.text:=FloatToStr(Standardabweichung);

end;
Ich erhalte aber wieder folgende Exception:
http://img233.imageshack.us/img233/2...tmapah7.th.jpg

Da in den Klammern nichts steht, wurde wohl auch noch gar kein Wert benutzt?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz