PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : logik noob braucht hilfe


cessy000
2016-11-17, 10:15:00
Hi,

ich stehe derzeit in meinem Hobby projekt auf dem schlauch...
Vielleicht kann mir jemand auf die Sprünge helfen, habe nie Informatik studiert oder programmierung gelernt, eventuell ist das für euch trivial...

Ich habe 2 verschiedene Arrays.

Array A(1) - A(30) mit jeweils einer Zahl darin
Die Zahlen sind ganzzahlig von 1-9..
bsp. A(1) = 1; A(2) = 4; A(3) = 5 usw...


dann gibt es noch das Array B.. B(1) - B(30)
Jedes enthält eine oder mehrere ganzzahlige Zahlen von 1-9..
bsp. b(1) = (1,4,6,8); b(2) = (2); b(3) = (3,5) usw...

mein problem besteht darin das ich das array a in das array b einsortieren muss.. es gibt vermutlich nur eine richtige Lösung, aber selbst wenn es mehre gibt, bin ich schon mit einer zufrieden..

ich stecke schon im ansatz fest und bin ein bisserl ratlos mit welchen
for next schleifen, if then abfragen oder do loops ich so etwas knacken kann.. ( btw. ich hacke meinen code in VBA...)

Am ende will ich quasi sehen, welche einzelne Zahl bei dem Array B (1-30) jeweils steht.
Hat jemand von euch eine Idee ?

:biggrin:

blinki
2016-11-17, 16:23:05
Ich kann kein VBA, aber generell doch so:

Dein array B ist ein 2Dimensionales array, also ein array of arrays
A[1-30]
B[1-30][1 bis unbekannte anzahl]
wenn VBA solche vektorlängen automatisch verwaltet dann ist das doch einfach:

-Äußere Schleife von 1-30{
Hilfsvektor=B[schleifenzähler][1 bis vec.length (oder halt automatisch)]
Hilfsvektor.append(A[schleifenzähler])
Hilfsvektor.sort()
B[schleifenzähler][]=Hilfsvektor
}

Nur wie in der Sprache das Anhängen von Werten (append) und die sort- Funktion genau funktioniert und aufgerufen wird musst du halt schauen.


edit: was du da mit dem letzten satz verlangst verstehe ich allerdings nicht.

Monger
2016-11-17, 17:19:26
Was heißt für dich überhaupt "einsortieren"? Wann ist es denn richtig sortiert?
Müssen die Zahlen aufsteigend sein? Dürfen Zahlen doppelt vorkommen? Darf es Lücken geben? Haben die Arrays in B eine begrenzte Größe?

Ohne genauere Angaben schmeiße ich dir einfach alle Elemente von A ins erste Array von B rein, und bin fertig ;)

cessy000
2016-11-18, 08:40:13
danke für die hinweise, hab es mit einer zufallsfunktion, ein paar schleifen und einigen hilfsvariablen hingekriegt.

kurze skizze:
geh durch alle A, prüfe ob der wert von A in einem Random B vorkommt, falls ja, setze hilfsvariable für dieses B auf true und mache mit dem nächsten A und einem ZufallsB weiter. Falls nein, fang nochmal von vorne mit dem ersten A an, wenn alle hilfsvariablen für B auf true sind, konnten alle A einsortiert werden.

ziemlich unschön, aber es funktioniert


btw. hatte vergessen zu sagen, das in B die erlaubten möglichkeiten von A stehen, d.h. es war vermutlich sehr schwer meinen Gedanken zu folgen ;-)