Veröffentlicht 23. Juni 200421 j Hallo zusammen, ich habe folgendes Problem: Ich möchte gerne Werte, die gleich sind, zusammenfassen. Folgender Fall: Ich habe als Ergbnis einer Berechnung 2 5 6 2 3 5 als Ziffern Ich möchte nun, dass die 2 und die 5 als gleich erkann werden und zusammengefasst werden können: 2 5 6 3 Frage: Wie stelle ich das ohne zig IF-Abfragen an? Wie kann ich sichergehen, dass auch alle Zahlen erwischt wurden? Wenn ich z.B. 2 5 6 2 3 5 2 habe, dass er mir auch die letzte 2 mit zusammenfasst? Gruß Ganymed
23. Juni 200421 j Hallo, Wenn ich Dich richtig verstanden habe, möchtest Du aus einer beliebigen Reihe von Ziffern alle Ziffern genau 1x aufführen die ein- oder mehrmals in dieser Reihe enthalten sind? In welcher Form liegt denn das Ergebnis vor? Entweder Du sortierst die Liste und schaust dann auf einen Ziffernwechsel oder Du gehst die Liste über die Ziffern 0-9 durch. Sobald eine dieser Ziffern gefunden wird, trägst Du sie in Deine Ergebnisliste ein (danach kannst Du mit der nächsten Ziffer fortfahren, da nur wichtig ist, ob sie überhaupt in Deiner Eingabe vorkommt). Nic
23. Juni 200421 j Autor Hallo, Wenn ich Dich richtig verstanden habe, möchtest Du aus einer beliebigen Reihe von Ziffern alle Ziffern genau 1x aufführen die ein- oder mehrmals in dieser Reihe enthalten sind? In welcher Form liegt denn das Ergebnis vor? Entweder Du sortierst die Liste und schaust dann auf einen Ziffernwechsel oder Du gehst die Liste über die Ziffern 0-9 durch. Sobald eine dieser Ziffern gefunden wird, trägst Du sie in Deine Ergebnisliste ein (danach kannst Du mit der nächsten Ziffer fortfahren, da nur wichtig ist, ob sie überhaupt in Deiner Eingabe vorkommt). Nic Also im Moment sind sie in einem Array: Eine Ganzzahl und eine ID: 5 123456 2 456789 : : Da die Zahlen aus einer Binärzahl berechnet wurden sind auch Ziffern größer als 9 denkbar...
24. Juni 200421 j Hallo, Da die Zahlen aus einer Binärzahl berechnet wurden sind auch Ziffern größer als 9 denkbar... Ziffern größer als 9 gibt es nicht (das sind dann Zahlen). Möchtest Du über die Ziffern gehen (also Reihen in der Form "1 5 5 3 2 3 6 7 2 3") oder können auch Zahlenfolgen (also Reihen der Form "1 3 545 32 2 4 545 2") auftreten? Nic
25. Juni 200421 j Autor Hallo, Ziffern größer als 9 gibt es nicht (das sind dann Zahlen). Möchtest Du über die Ziffern gehen (also Reihen in der Form "1 5 5 3 2 3 6 7 2 3") oder können auch Zahlenfolgen (also Reihen der Form "1 3 545 32 2 4 545 2") auftreten? Nic Hallo, Letzteres ist korrekt. Aber die Größe spielt keine Rolle, wichtig ist es, gleiche Zahlen () zu finden Und irgendwie weiß ich nicht, wie am dümmsten die Sachen in Variablen verarbeiten soll. Ich arbeite mit PL/SQL. Ganymed
14. August 200421 j wie wärs denn wenn du denn array oder wie mein ehmaliger info. prof immer sagt vektor durch gehst! dir einen zusätzlichen vektor der schaffst der genau 10 stellen hat. dann schreibst du für jeden gefunde zahl also von 0 bis 9 jede in einen zusatz array. du brauchst gar nicht prüfen ob mehrmals vorhanden. jede zahl die vorgekommen ist kannst du in dem extra array eintragen ... weil einmal = 100mal ist. ist die folge von bedeutung? also ob 512 oder kann auch 125 sein? inzi
17. August 200421 j Kommen die Werte aus der DB? Dann könntest du mit einem "distinct" die Select Klausel einschränken!?
19. August 200421 j for i=0 to arraygröße-1 do begin for j=i to arraygröße-1 do begin if array[i] ungleich array[j] then begin hilfsarray[k]=array[i]; erhöhe k; end; end; end; Denk das funzt. Habs net durchgespielt und nur mal eben in der Mittagspause hingetickert. Aber funzt ähnlich wie palindromerkennung MVg need-some-blood
19. August 200421 j Du kannst dir auch den Algorithmus, den das STL (Standard Template Library) von C++ für die Methode unique() anschauen. Der bewirkt IMO auf einen Container (Array) das, was du oben beschrieben hast.
23. August 200420 j Keine Ahnung ob folgendes mit PL/SQL umzusetzen ist. Aber es geht ja um Algorythmen: Als Container der unterschiedlichen Werte schlage ich ein Dictionary vor. Einträge im Dictionary haben einen Key (zwingend: jeder Eintrag einen verschiedenen) und einen Wert (bool beispielsweise). Jeder Eintrag im Dictionary hat den Key mit der Stringrepresentanz des Wertes und optional einen Wert true. Vorgehensweise: Für jeden Wert: wenn Container[Wert] nicht vorhanden dann: Container[Wert] in den Container aufnehmen. Optional Container[Wert] = true Ende Für jeden Wert Jetzt muss nur noch für jedes Element im Container der Key ausgelesen werden.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.