Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

  • 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...

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

  • 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 (:D) zu finden :)

Und irgendwie weiß ich nicht, wie am dümmsten die Sachen in Variablen verarbeiten soll.

Ich arbeite mit PL/SQL.

Ganymed

  • 1 Monat später...

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

Kommen die Werte aus der DB? Dann könntest du mit einem "distinct" die Select Klausel einschränken!?


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

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.