Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Max und Mean Value Bestimmung (https://www.delphipraxis.net/53777-max-und-mean-value-bestimmung.html)

DJAYS 22. Sep 2005 09:26


Max und Mean Value Bestimmung
 
hi,dank für Support here.wie bestimme ich die Max von MeanValue zu einzelnen zahlen in einem Array?z.B hab MeanValue 7 und Array [0..9] mit zahlen 0..9 und möchte max absolute Diff zwischen 7 und einzelnen Zahlen.hab so gemacht aber

MaxDiff:=abs(Mean-aData[i]) aData ist mein Array und i Index.

thx

[edit=MrSpock]Titel geändert. Bitte demnächst aussagekräftige Titel vergeben. Mfg, MrSpock[/edit]

leddl 22. Sep 2005 09:39

Re: dumme Frage
 
Also zuerst mal würde ich empfehlen, daß du deinen Beitrag editierst und dem Topic einen aussagekräftigen Namen gibst. Dumme Fragen gibts hier genug, das zu wissen hilft bei der Suche aber nicht weiter ;)
Dann zu deiner Frage: Wenn ich dich richtig verstanden habe, möchtest du die maximale Abweichung deines Arrays zu seinem Mittelwert berechnen. Stimmt das? Ist der Mittelwert schon vorgegeben, oder muß er erst noch berechnet werden?
Da das Berechnen ja kein Problem sein sollte, geh ich mal davon aus, daß du ihn schon hast.
Delphi-Quellcode:
MaxDiff := 0;
for i := low(aData) to high(aData) do
begin
  if (max(MeanValue,aData[i]) - min(MeanValue,aData[i])) > Maxdiff then
    MaxDiff := max(MeanValue,aData[i]) - min(MeanValue,aData[i])
end;
Dafür müßtest du die Unit Math einbinden. Evtl macht "abs()" das gleiche wie "max(MeanValue,aData[i]) - min(MeanValue,aData[i])", die Funktion kannte ich aber nicht und hab auch gerade kein Delphi zur Hand, um nachzuschauen. In dem Fall, kannst dus ja grade ersetzen. ;)

Thanatos81 22. Sep 2005 09:43

Re: dumme Frage
 
Nicht ganz leddl,
max gibt ja den größeren von zwei Werten zurück. abs hingegen gibt einen absoluten Wert zurück. Also den übergebenen Wert ohne Vorzeichen.

BrunoT 22. Sep 2005 09:45

Re: dumme Frage
 
Hi,

Delphi-Quellcode:
For i:=Low(aData) To High(aDate) Do
Begin
  zw:=abs(Mean-aData[i]);
  if MaxDiff<=zw then
  MaxDiff:=zw;
end;

so müsste es gehn.


mfg

BrunoT

leddl 22. Sep 2005 09:49

Re: Max und Mean Value Bestimmung
 
:gruebel: Ich hab doch nie behauptet, daß max() und abs() das gleiche tun, sondern max() - min(). Und das sollte ja dann passen.
Ginge also so:
Delphi-Quellcode:
function GetMaxDiff(aData : Array of Integer;MeanValue : Integer) : Integer;
Var i : Integer;
begin
  Result := 0;
  for i := low(aData) to high(aData) do
    if abs(MeanValue,aData[i]) > Maxdiff then
      Result := abs(MeanValue,aData[i]);
end;
Wegen rotem Kasten: ;)
@BrunoT:
Jo, in etwa hab ich das ja auch schon geschrieben ;)

DJAYS 22. Sep 2005 09:57

Re: Max und Mean Value Bestimmung
 
hi
genau,ich möchte die MaxAbweichung von jeder Zahl zum Mittelwert betimmen.mittelwert hab ich schon


MeanVal := CalcMeanValue(aData,uiArraySize,uiStartIdx,uiEndId x);

dann als Ausgabe soll nun MaxDiffLo und MaxDiffHi ,MaxDiffLo im Bereich 0..9 und Hi 10..19. also ich brauch ne einfache Formel zum Berechnen ohne drin zu spezifizieren Lo oder Hi,da ich beide in anderen Ort genau sage,wie Ausgabe sein soll.
danke Leute.ihr seid Prima

DJAYS 22. Sep 2005 11:21

Re: Max und Mean Value Bestimmung
 
hi
danke Bruno
ich habe deine GetMaxDiff Fkt probiert und es funktioniert.
danke nochmals

leddl 22. Sep 2005 11:56

Re: Max und Mean Value Bestimmung
 
:roll: Nur um meinen Kopf zu retten, möchte ich kurz meinen Code verbessern. Hatte nämlich bei ner Änderung ne Kleinigkeit übersehen :oops: man sollte nicht wirklich eine undeklarierte Variable verwenden, wenn man eigentlich Result benutzen wollte :wall:
Delphi-Quellcode:
function GetMaxDiff(aData : Array of Integer;MeanValue : Integer) : Integer;
Var i : Integer;
begin
  Result := 0;
  for i := low(aData) to high(aData) do
    if abs(MeanValue-aData[i]) > Result then
      Result := abs(MeanValue-aData[i]);
end;
So, jetzt passts ;)

//Edit: Korrigiert :oops:

DJAYS 22. Sep 2005 12:09

Re: Max und Mean Value Bestimmung
 
hi Leddl
frage zu:: if abs(MeanValue,aData[i]) > Result then
Result := abs(MeanValue,aData[i]);

ist es abs(meanValue- aData[i]) oder abs(meanValue,aData[i])

da bei mir Delphi nicht reagiert wegen dem Komma zeichen.
thx
DJAYS

leddl 22. Sep 2005 12:19

Re: Max und Mean Value Bestimmung
 
Korrigiert ;)
Das war ein Artefekt von der min/max-Version ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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