![]() |
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
So...ich hab aber noch ein Problem mit dem Datentyp!
Delphi-Quellcode:
Inkompatible Typen: "Integer" und "Extended"...
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; Wie wandle ich das (sgMess.RowCount-1); um, dass ich damit Rechnen kann? |
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
Wie ist mittelwert deklariert?
|
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
Als integer...
|
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
Ok ich habs... :oops: ...
Ich hab es als Single Deklariert...und das Ergebnis im Editfeld mit FloatToStr umgewandelt |
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
So noch etwas...
ich muss noch eine Abweichung des Mittelwertes berechnen. Gegeben ist:
Delphi-Quellcode:
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:
//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); |
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]) ... |
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:
So einfach ist es aber dann doch nicht! Es funktioniert so nämlich nicht. Schön wenn es jemand verbessern kann...
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); EDIT: hier hab ich schon den 1. Fehler
Delphi-Quellcode:
Integer und Extended sind inkompatibel...da Mittelwert Single ist...
AbweichungsQuadrat:=AbweichungsQuadrat + (StrToInt(sgMess.Cells[1,i]) - Mittelwert) * (StrToInt(sgMess.Cells[1,i]) - Mittelwert);
|
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: |
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.) ![]() Danach war aber eben der Quelltext von oben gegeben?! Meinst du auch diese? :wink: |
Re: StringGrid - Minimum, Maximum, Durchschnitt bestimmen
So ich hab noch einwenig Probiert...
Delphi-Quellcode:
Ich erhalte aber wieder folgende Exception:
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; ![]() ![]() 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. |
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