Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi (evtl. rekursive) schleife (https://www.delphipraxis.net/22692-evtl-rekursive-schleife.html)

Phoenix 23. Mai 2004 13:22

Re: (evtl. rekursive) schleife
 
es geht noch einfacher, und Du kannst dabei bei einem Durchlauf bleiben:

Beim addieren aller Werte merkst Du Dir die aktuelle Zahl in einem weiteren Array vor.
Dieses Array besitzt so viele Elemente, wie man Streicher weghaben will.

Gibts es nun im weiteren Durchlauf eine grössere Zahl, so wird diese dem Array hinzugefügt. Ist das Array voll wird die jeweils kleinste Zahl aus dem Array rausgeworfden.

Am Ende wird nun einfach die Summe aller Zahlen im Array von der Gesamtsumme abgezogen. Damit sind die Streicher a) bekannt (weil im Array) und b) nicht im Endergebnis vorhanden.

UNd man hat sich die sortiereri gespart, weil die kann recht schnell auf die Performance gehen.

eroe 23. Mai 2004 14:59

Re: (evtl. rekursive) schleife
 
Auch ein netter Vorschlag, jedoch bin ich nur soweit gekommen .. Ich kann doch bei 12 Werten nicht alle in einen Array schreiben der nur zB 2 Felder besitzt o_O
Aber ich vermute mal dass ich dich nur falsch verstanden habe, von daher hier mal der Code von mir, so wie ichs verstanden hab :

Delphi-Quellcode:
begin
  summe:=0;
  setlength(array_str,streicher);
  for i:=2 to StringGrid1.ColCount-3 do
    begin
    summe:=summe+strtoint(StringGrid1.Cells[i,1]);
    array_str[i-2]:=strtoint(StringGrid1.Cells[i,1]);
    end;
end;

PS: Die andere Variante läuft jetzt perfekt :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr.
Seite 2 von 2     12   

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