diff options
Diffstat (limited to 'werteunit.pas')
-rw-r--r-- | werteunit.pas | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/werteunit.pas b/werteunit.pas index dd6168f..259ee05 100644 --- a/werteunit.pas +++ b/werteunit.pas @@ -20,7 +20,7 @@ type Auch die korrekte Parallelisierung obliegt dem übergeordneten Programmteil. } private - procedure sortiereMaxima(var maxima: tIntPointArray); + procedure sortiereNachWert(var positionen: tIntPointArray); public werte: array of wGen; params: tExtraInfos; @@ -105,7 +105,7 @@ uses systemunit; // tLLWerte ******************************************************************** -procedure tLLWerte.sortiereMaxima(var maxima: tIntPointArray); +procedure tLLWerte.sortiereNachWert(var positionen: tIntPointArray); var mins,maxs: tExtendedArray; pivot,wert,wertLi,wertRe: extended; @@ -116,13 +116,13 @@ begin setLength(vons,1); vons[0]:=0; setLength(biss,1); - biss[0]:=length(maxima)-1; + biss[0]:=length(positionen)-1; setLength(mins,1); setLength(maxs,1); mins[0]:=0; maxs[0]:=0; for i:=vons[0] to biss[0] do begin - wert:=werte[maxima[i]['x']+maxima[i]['y']*params.xSteps]; + wert:=werte[positionen[i]['x']+positionen[i]['y']*params.xSteps]; if (i=vons[0]) or (wert>maxs[0]) then maxs[0]:=wert; if (i=vons[0]) or (wert<mins[0]) then @@ -154,14 +154,14 @@ begin mins[cnt-1]:=maxs[cnt-1]; while li<=re do begin - wertLi:=werte[maxima[li]['x']+maxima[li]['y']*params.xSteps]; + wertLi:=werte[positionen[li]['x']+positionen[li]['y']*params.xSteps]; if wertLi>=pivot then begin if wertLi<mins[cnt-1] then mins[cnt-1]:=wertLi; inc(li); continue; end; - wertRe:=werte[maxima[re]['x']+maxima[re]['y']*params.xSteps]; + wertRe:=werte[positionen[re]['x']+positionen[re]['y']*params.xSteps]; if wertRe<=pivot then begin if wertRe>maxs[cnt] then maxs[cnt]:=wertRe; @@ -172,12 +172,12 @@ begin maxs[cnt]:=wertLi; if wertRe<mins[cnt-1] then mins[cnt-1]:=wertRe; - tmp['x']:=maxima[re]['x']; - tmp['y']:=maxima[re]['y']; - maxima[re]['x']:=maxima[li]['x']; - maxima[re]['y']:=maxima[li]['y']; - maxima[li]['x']:=tmp['x']; - maxima[li]['y']:=tmp['y']; + tmp['x']:=positionen[re]['x']; + tmp['y']:=positionen[re]['y']; + positionen[re]['x']:=positionen[li]['x']; + positionen[re]['y']:=positionen[li]['y']; + positionen[li]['x']:=tmp['x']; + positionen[li]['y']:=tmp['y']; inc(li); dec(re); end; @@ -188,9 +188,9 @@ begin inc(cnt); end; - for i:=1 to length(maxima)-1 do - if werte[maxima[i-1]['x']+maxima[i-1]['y']*params.xSteps]<werte[maxima[i]['x']+maxima[i]['y']*params.xSteps]then - fehler('Interner Fehler: Maxima sind nicht sortiert, sollten sie aber sein!'); + for i:=1 to length(positionen)-1 do + if werte[positionen[i-1]['x']+positionen[i-1]['y']*params.xSteps]<werte[positionen[i]['x']+positionen[i]['y']*params.xSteps]then + fehler('Interner Fehler: Werte sind nicht sortiert, sollten sie aber sein!'); end; constructor tLLWerte.create(ps: tExtraInfos); @@ -2027,7 +2027,7 @@ begin end; setLength(maxima,mCnt); - betraege.sortiereMaxima(maxima); + betraege.sortiereNachWert(maxima); maxPos:=maxima[1]; maxWert:=0; for i:=1 to length(maxima)-1 do begin |