Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahlen zusammenfassen, nicht addieren (https://www.delphipraxis.net/106498-zahlen-zusammenfassen-nicht-addieren.html)

Dax 11. Jan 2008 19:46

Re: Zahlen zusammenfassen, nicht addieren
 
Oha.. Ich dacht hier gehts um Ausgabe.. :oops:

DeddyH 11. Jan 2008 19:47

Re: Zahlen zusammenfassen, nicht addieren
 
Zitat:

Zitat von 3_of_8
@DeddyH: Wenn ich das richtig sehe, funktioniert deine Funktion nur für Werte zwischen 0 und 9.

Richtig, so hab ich es auch verstanden.

-remit- 11. Jan 2008 19:48

Re: Zahlen zusammenfassen, nicht addieren
 
Danke für die 4 -5 Möglichkeiten! Ich werde alle Vorschläge durchgehen ;) Damit werde ich erstmal genug zu tun haben...

PS: ja es handelt sich nur um Zahlen im Bereich von 0-9

Dax 11. Jan 2008 19:51

Re: Zahlen zusammenfassen, nicht addieren
 
Delphi-Quellcode:
function ConcatNumbers(const a, b: Cardinal): Cardinal;
var tmp: Cardinal;
begin
  tmp:=10;
  while tmp<=b do
    tmp:=tmp*10;
  Result:=a*tmp+b;
end;
So ist es korrekt. T(1, 0) sollte 10 liefern, nicht 1. Ob es so viel bringen würde, tmp durch Result zu ersetzen, weiß ich momentan nicht.

Zitat:

Zitat von 3_of_8
Laufzeit: T(a, b)=5+lg b=O(log b) falls es interessiert. ;)

Wenn man mit sonst nix spielen kann.. :P

3_of_8 11. Jan 2008 20:02

Re: Zahlen zusammenfassen, nicht addieren
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von 3_of_8
@DeddyH: Wenn ich das richtig sehe, funktioniert deine Funktion nur für Werte zwischen 0 und 9.

Richtig, so hab ich es auch verstanden.

So wurde es aber nicht gesagt. In diesem Fall ist DeddyHs Version unwesentlich schneller, aber vor allem einfacher.

@Dax: Touché ;)

-remit- 11. Jan 2008 20:03

Re: Zahlen zusammenfassen, nicht addieren
 
Zitat:

Ich möchte die einzahligen Werte eines Array so zusammenfassen.
:wink:

Sein Quelltext funktioniert auch mit zweistelligen Zahlen.

DeddyH 11. Jan 2008 20:22

Re: Zahlen zusammenfassen, nicht addieren
 
Zitat:

Zitat von -remit-
Sein Quelltext funktioniert auch mit zweistelligen Zahlen.

Das kommt darauf an, was Du als Rückgabewert erwartest. Wenn Dein Array z.B. 12 und 13 enthält, käme bei der "Stringlösung" 1213 heraus, bei meiner aber 133.

3_of_8 11. Jan 2008 20:25

Re: Zahlen zusammenfassen, nicht addieren
 
Zitat:

Zitat von -remit-
Sein Quelltext funktioniert auch mit zweistelligen Zahlen.

Einzahlig? Wohl eher mit einer Ziffer.

Lannes 11. Jan 2008 23:39

Re: Zahlen zusammenfassen, nicht addieren
 
Hallo,

wenn die zwei Werte im Bereich des Typs Word(0..65535) bleiben:
Delphi-Quellcode:
var x, i, ii : Integer;
//...schreiben
x := MakeLong(12,13);
//...Auslesen
i := LoWord(x);
ii := HiWord(x);

inherited 11. Jan 2008 23:48

Re: Zahlen zusammenfassen, nicht addieren
 
Lannes: das hat leider nicht den gewünschten effekt. Aus 12 und 13 sollte 1213 herauskommen, nicht wie bei dir 3085


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

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