![]() |
Problem mit einem betimmten Wert aus Array ansprechen!
Ich habe folgendes Problem, ich wollte das nur eine Wertigkeit über Null ist, das klappt! Nun hab ich folgendes problem im nächsten Durchlauf sollte ganz genau diese Wertigkeit solange berechnet werden bis sie auf Null ist, das klappt irgendwie noch nicht.
Das ist in Form1. so definiert
Delphi-Quellcode:
Befehl in Form1.
Public
welche Zahl:Integer;
Delphi-Quellcode:
Form3.Einwert(Wertigkeit,0,1784,Zaehler,welcheZahl,Wertigkeit,welcheZahl);
Delphi-Quellcode:
procedure TForm3.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Zaehler: array of Integer;welchZahl:Integer;Var Wertigkeit:array of Integer;welcheZahl:Integer);
Var x,niedrig,y :Integer ; A : array[1..5] of Integer; ///für die fünf Werte der Arrays B : array[1..5] of Integer; ///für die fünf Werte der Arrays C : array[1..5] of Integer; ///für die fünf Werte der Arrays begin y:=5; /// um die Anzahl der Werte über null zu zählen aWert[1785]:=0; ///ist immer nein Nullwert for x:=1 to 5 do begin A[x]:=0; B[x]:=0; C[x]:=0; end; if 0<aWert[welchZahl] Then///welchZahl vorhergehenden Durchlauf für Wert der über Null ist [b] begin for x := aStart to aEnd do begin Wertigkeit[x]:=0; ///Alles auf Null setzen end; Wertigkeit[welchZahl]:=aWert[welchZahl]; //Den einen Wert wieder über null setzen welcheZahl:=welchZahl; //Alte=Neuer Wert für nächsten Durchgang end else [/b] /// der rest brüchte nicht mehr ausgeführt werden wenn if zutrifft begin ////ab hier werden fünf Werte herrausgesucht die über null sind for x := aEnd downto aStart do begin if aWert[x]>0 Then begin a[1]:=aWert[x]; b[1]:=x; break; end; end; if b[1]>0 then begin for x := b[1]-1 downto aStart do if aWert[x]>0 Then begin a[2]:=aWert[x]; b[2]:=x; break; end; end else y:=1; /////////Wenn nur ein Wert über Null ist wird y auf 1 gesetzt if b[2]>0 then begin for x := b[2]-1 downto aStart do if aWert[x]>0 Then begin a[3]:=aWert[x]; b[3]:=x; break; end; end else y:=2; if b[3]>0 then begin for x := b[3]-1 downto aStart do if aWert[x]>0 Then begin a[4]:=aWert[x]; b[4]:=x; break; end; end else y:=3; if b[4]>0 then begin for x := b[4]-1 downto aStart do if aWert[x]>0 Then begin a[5]:=aWert[x]; b[5]:=x; break; end; end else y:=4; for x := 1 to y do ////hier werden die bis zu5 Werte einer Wertigkeit zugewiesen c[x]:=Form3.zaehlen(b[x],Zaehler); for x := aStart to aEnd do ///Hier werden die Werte auf Null gesetzt Wertigkeit[x]:=0; case y of 1:begin // niedrig:=C[1]; end; 2:begin niedrig:= MinIntValue([C[1],C[2]]); end; 3:begin niedrig:= MinIntValue([C[1],C[2],C[3]]); end; 4:begin niedrig:= MinIntValue([C[1],C[2],C[3],C[4]]); end; 5:begin niedrig:= MinIntValue([C[1],C[2],C[3],C[4],C[5]]); end; end; for x:=1 to y do begin if Niedrig=C[x] then///Hier wird dem ein Wert über Null gestzt, wenn vorhanden begin Wertigkeit[b[x]]:=a[x]; if Wertigkeit[b[x]]=0 then welcheZahl:=1785 ///Hier wird der eine Wert zurückgegben der nächste Runde bevorzugt angesteuert werden soll else welcheZahl:=b[x]; break; end; end; end; end; |
Re: Problem mit einem betimmten Wert aus Array ansprechen!
Habs noch mah, analysiert, problem, ist der Rückgabewert: Welche Zahl in Form3
Eingabe in Form1
Delphi-Quellcode:
Procedure in Form3
Form3.Einwert(Wertigkeit,0,1784,Zaehler,welcheZahl,Wertigkeit,welcheZahl);
Delphi-Quellcode:
procedure TForm3.EinWert(aWert: array of Integer;aStart,aEnd:Integer;Zaehler: array of Integer;welchZahl:Integer;Var Wertigkeit:array of Integer;welcheZahl:Integer);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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