Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anzahl von Werten in einem Feld (https://www.delphipraxis.net/149585-anzahl-von-werten-einem-feld.html)

Licht 24. Mär 2010 17:57


Anzahl von Werten in einem Feld
 
Hey,
ich wollte von einem Feld welches zufällig gefüllt wurde die Anzahl der einzelnen Zahlen wissen.
Also wie oft z.B. die 1, die 2,die 3 darin vorkommt.
Leider fällt mir im Moment garnichts mehr ein wie ich dieses Problem lösen könnte.
Ich hoffe ihr könnt mir helfen.?
THX schonmal

Sir Rufo 24. Mär 2010 18:10

Re: Anzahl von Werten in einem Feld
 
Überlege Dir, wie du das manuell machst ... dann weißt du den Weg (genauso wird das gemacht)

Dann brauchst du nur noch die Befehle dazu ... und die bekommst du dann per SuFu.

btw: Feld? Was für ein Feld? Die Komponente hat doch bestimmt einen KlassenNamen? Meinst du vielleicht ein TEdit?
In der Programmierung funktioniert "ey du da" nicht, der Computer braucht schon genau beschrieben wo er hinlaufen soll :mrgreen:

Noedel 24. Mär 2010 18:21

Re: Anzahl von Werten in einem Feld
 
Zitat:

Zitat von Sir Rufo
[...]
btw: Feld? Was für ein Feld? Die Komponente hat doch bestimmt einen KlassenNamen? Meinst du vielleicht ein TEdit?
In der Programmierung funktioniert "ey du da" nicht, der Computer braucht schon genau beschrieben wo er hinlaufen soll :mrgreen:

Ich nehme mal an, es handelt sich hier um ein Array, denn das engl. Wort "Array" = "Feld" (Link)

Zur Ausgangsfrage:
Ich würde mir ein weiteres (dynamisches und zweidimensionales) Array of Integer anlegen und immer wenn eine neue Zahl auftaucht, das Array vergrößern und die gefundene Zahl auf die linke Seite packen und rechts mit 1 initialisieren, ansonsten (wenn die Zahl schon einmal gefunden wurde) den Wert um 1 erhöhen.
Kannst ja mal versuchen, das umzusetzen.
Noedel

//edit: Schlechtschreibung ;)

patti 24. Mär 2010 18:22

Re: Anzahl von Werten in einem Feld
 
Wenn du tatsächlich ein Edit-Feld meinst, aus dessen Inhalt die Zahlen ausgelesen werden sollen, dann würde ich ungefähr so vorgehen:
  • Array mit der Länge 10 (0..9) definieren (Datentyp integer). Darin kann jeweils die Anzahl der einzelnen Zahlen gespeichert werden. (Array muss evtl. mit 0 initialisiert werden.
  • Edit.Text in einer string-Variable zwischenspeichern.
  • Dann Zeichen für Zeichen des Strings durchgehen und schauen, um was für eine Zahl es sich handelt.
  • Bei der entsprechenden Zahl im Array die Anzahl um 1 erhöhen

Als Quelltext könnte das in etwa so aussehen:

Delphi-Quellcode:
var Anzahl : array[0..9] of integer;
var eingabe : string;
var laenge : integer;
var c      : string;
var i      : integer;
var zahl   : integer;
begin
  //--
  // Initialisieren
  for i := Low(Anzahl) to High(Anzahl) do Anzahl[i] := 0;
  //
  einagbe := Edit.Text;
  laenge := Length(eingabe);
  //
  if laenge > 0 then
  begin
    for i := 1 to laenge do
    begin
       c := eingabe[i];
       //
       zahl := StrToIntDef(c,-1);
       //
       if zahl > -1 then Anzahl[zahl] := Anzahl[zahl] + 1;
    end;
  end;
(ungetestet)

Hoffe, das trifft dein Problem in etwa.

Licht 24. Mär 2010 18:59

Re: Anzahl von Werten in einem Feld
 
ja danke
denke ich habs jetzt verstanden. :-D


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