Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahlenvorkommen zählen (https://www.delphipraxis.net/139452-zahlenvorkommen-zaehlen.html)

Linguini 29. Aug 2009 07:55


Zahlenvorkommen zählen
 
Hallo,

ich hab mal wieder für euch wohl ein Kinderproblem.

Ich habe eine Zahlenkette nach diesem Schema : 38 19 74 81 73 38 2719 271 usw.

Nun will ich mit Delphi zählen wie oft welche Zahl darin vorkommt.
Danke :)

jfheins 29. Aug 2009 08:06

Re: Zahlenvorkommen zählen
 
Sind die Zahlen beschränkt?

Wenn ja, kannste Bucketsort verwenden. Ansonsten mit einem anderen Algorithmus sortieren und nachher dann ne Liste machen mit den Zahlen ;)

alzaimar 29. Aug 2009 08:06

Re: Zahlenvorkommen zählen
 
Zitat:

Zitat von Linguini
Danke :)

Bitte bitte, keine Ursache.
Äh. Wofür bedankst Du dich? :stupid:

Linguini 29. Aug 2009 08:09

Re: Zahlenvorkommen zählen
 
@jfheins

Was meinst du mit beschränkt?
Es sind immer gleich viele Zahlen, allerdings variiert wieviele Stellen sie haben. Getrennt sind sie immer durch ein Leerzeichen.

@alzaimar

Bisher konnte mir DP immer helfen :)

jfheins 29. Aug 2009 08:13

Re: Zahlenvorkommen zählen
 
Mit beschränkt meine ich, ob die Zahlen immer kleiner sind als eine Zahl X (Bzw. ob für alle möglichen Mengen eine kleinste obere Schranke X existiert, so dass X kleiner ist als die Anzahl der Elemente)

Also wenns z.B. Lottozahlen sind, kann eine Zahl nicht größer als 49 werden - das meine ich ;)

Linguini 29. Aug 2009 08:19

Re: Zahlenvorkommen zählen
 
Die Grenze liegt bei 100(inbegriffen).

jfheins 29. Aug 2009 08:35

Re: Zahlenvorkommen zählen
 
Ja dann ist ja einfach :P
Entweder mit explode() ein Array erzeugen, oder eine Funktion schreiben, die einen String als var-Argument bekommt und die erste Zahl rausschneidet und zurückgibt.

Dann ein Array[0..100] of Cardinal; deklarieren und die Zahlen nach und nach einsortieren. Mit der oben beschriebenen Funktion ungefähr so:
Delphi-Quellcode:
var
zaehler: Array[0..100] of Integer;
temp: Integer;
begin
// ggf. mit nullen füllen
while str <> '' do
begin
  temp := getfirstnumber(str);
  zaehler[temp] := zaehler[temp] + 1;
end;

alzaimar 29. Aug 2009 08:38

Re: Zahlenvorkommen zählen
 
Zitat:

Zitat von Linguini
Bisher konnte mir DP immer helfen :)

Richtig. Aber ein Post ohne eine konkrete Frage und ohne Anzeichen von Eigeninitialitive ist hier nicht gerne gesehen.

Zu deinem Problem: Für jede Zahl hast du einen 'Topf'. Gehe deine Zahlenliste durch und lege in jeden Topf der aktuellen Zahl ein Steinchen.

Übertragen auf ein Programm würde ich den Topf als Zahl darstellen und 'ein Steinchen in den Topf legen' als 'Topf := Topf + 1' implementieren.
Da Du für jede Zahl einen Topf hast, kannst du ein Array deklarieren. Wenn es viel zu viele unterschiedliche Zahlen sein können, dann wird es etwas komplizierter.

Linguini 29. Aug 2009 12:32

Re: Zahlenvorkommen zählen
 
Danke für eure Hilfe :)
Hab es hinbekommen.


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