Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

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

Geschrieben

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

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

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

Geschrieben


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

Geschrieben

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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...