Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Integerwerte -> Suchen welcher Wert am dichtesten drann ist! (https://www.delphipraxis.net/147958-integerwerte-suchen-welcher-wert-am-dichtesten-drann-ist.html)

Erebos 19. Feb 2010 17:55


Integerwerte -> Suchen welcher Wert am dichtesten drann i
 
Hey Leute ich habe eine Textdatei mit verschiedenen Werten z.B. [202,199,33,12,1,23,111]
Und dann habe ich ein Programm welches eine Zufallszahl ausgibt ... ich weiß das ich wenn ich die Textdatei in eine Stringlist
lade, und per Zufall die Zahl 33 kommt, ich mit hilfe von "indexof(InttoStr(33))" sagen kann das diese Zahl in der Textdatei steht...

Nun meine Frage, was wenn aber per Zufall 133 ausgespuckt wird, diese Zahl ist nicht in meiner Stringlist enthalten, ich möchte aber wissen welche Zahl dichter drann ist!=?

In dem Fall wäre am dichtesten (im Beispiel von 133) (und dem Textdateibeispiel) am dichtesten die Zahl 111 ...

Wie setze ich das nun in Quelltext bzw in eine Funktion um?

Liebe Grüße
Erebos

xZise 19. Feb 2010 17:59

Re: Integerwerte -> Suchen welcher Wert am dichtesten dra
 
Ich denke, da musst schon selber gucken.
Also bei jedem Wert überprüfen, wie weit weg er von der Zufallszahl ist (bei dir z.B. 22) und den kleinsten Wert dann nehmen.

Beachte aber dass es keine negativen Entfernungen gibt ;) Die 9 ist zur 11 genauso weit entfernt wir die 13 zur 11.

MfG
Fabian

jfheins 19. Feb 2010 18:02

Re: Integerwerte -> Suchen welcher Wert am dichtesten dra
 
Du lädst die ganzen Zahlen aus der Textdatei in eine Liste oder ein Array, und wenn du deine Zufallszahl hast, gehst du das Array durch und rechnest jeweils die Differenz aus. Dazu noch eine Variable mit der minimalen bisherigen Differenz und fertig ;)

Pseudocode:
Code:
var min, zahl, zahlen[];
for int i = 0 to length(zahlen)-1
begin
  if abs(zahlen[i] - zahl) < min then
    min = abs(zahlen[i] - zahl);
end;
return min;
(Ja ich hab zu lange C# ürogrammiert ^^)

xZise 19. Feb 2010 18:08

Re: Integerwerte -> Suchen welcher Wert am dichtesten dra
 
Naja dann kann ja noch etwas Eigenleistung gebracht werden ;)

MfG
Fabian

Erebos 19. Feb 2010 18:33

Re: Integerwerte -> Suchen welcher Wert am dichtesten dra
 
danke danke ;-)
Wenn ich das hab poste ich das mal... in Pascal^^


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