Also, ich hab es jetz mittels 2 Arrays probiert, jedoch reagiert er, unabhängig davon wie oft er durchlaufen _soll_, generell so, als solle er nur das schlechteste streichen, sprich die Eingabe des Anwenders scheint ihn schlicht nicht zu interessieren
Da ich mit relativ vielen Zählergesteuerten Schleifen arbeite, habe ich den Text mal kommentiert ..
Delphi-Quellcode:
begin
if StringGrid1.Cells[0,i]='' then //Sicherheitsabfrage
exit
else
begin
setlength(gesamt,wettfahrten); //Anlegen der Arrays
setlength(hilfe,wettfahrten);
for n:=2 to StringGrid1.ColCount-3 do
gesamt[n-2]:=strtoint(StringGrid1.Cells[n,i]);
//Füllen des Arrays gesamt NUR für den ersten Durchlauf
for o:=0 to streicher do
//Streicher = Anzahl x --> Die x schlechtesten Werte streichern
begin
groesstes:=gesamt[0];
summe:=0;
for j:=low(gesamt) to high(gesamt) do
begin
if gesamt[j]>groesstes then
groesstes:=gesamt[j]; //Der größte Wert wird rausgsucht
end;
for k:=low(gesamt) to high(gesamt) do
begin
if gesamt[k]<> groesstes then
hilfe[k]:=gesamt[k];
//Alle Werte außer dem Größten werden in den Array 'hilfe' geschrieben
end;
for l:=low(hilfe) to high(hilfe) do
summe:=summe+hilfe[l];
//Die Summe der Zahlen im Array 'hilfe' wird berechnet
for m:=low(gesamt) to high(gesamt) do
gesamt[m]:=hilfe[m];
//Der Array 'gesamt' bekommt die Werte des Arrays 'hilfe', um beim nächsten Durchlauf den schlechtesten Wert schon aussortiert zu haben
end;
StringGrid1.Cells[StringGrid1.ColCount-2,i]:=inttostr(summe);
end;
end;
ich hoffe ihr könnt mir helfen, oder mir zumindest den einen oder anderen Denkanstoß geben
Es grüßt und hofft,
eroe