Hallo,
ich habe zwei Fragen zu Arrays, die ich schon länger mit mir herumtrage, für die ich aber keine Antwort gefunden habe:
1. Gibt es eine einfache Möglichkeit ein Array zu mischen? (Vorher sortiert - nachher unsortiert)
2. Gibt es eine einfache Möglichkeit einzelne Werte aus einem Array herauszunehmen und das Array damit zu verkleinern?
Sollte die Antwort schon irgendwo stehen, sorry, aber ich hab sie wirklich nicht gefunden.
Danke schon mal...
J. Kleis
___
Meine OpenOffice-Vorlagen für die Schule unter http://www.schulzeug-online.de
[gelöst] Zwei Fragen zu Arrays
Moderator: Moderatoren
[gelöst] Zwei Fragen zu Arrays
Zuletzt geändert von jkl am So, 20.04.2008 13:04, insgesamt 1-mal geändert.
http://www.schulzeug-online.de OpenOffice in der Förderschule...
Re: Zwei Fragen zu Arrays
du könntest dir die benötigten Werte in einer Schleife in ein neues Array schreiben und zum Schluss das alte Array löschen:2. Gibt es eine einfache Möglichkeit einzelne Werte aus einem Array herauszunehmen und das Array damit zu verkleinern?
Code: Alles auswählen
n=0
for i=LBound(AltesArray() to UBound(AltesArray())
if DeineBedingung then
ReDim Preserv NeuesArray(n)
n=n+1
end if
next
Gruß stoni
Re: Zwei Fragen zu Arrays
Hallo,
danke für die Antwort. Leider ist das nicht genau das, was ich gemeint habe, deshalb nochmal genauer:
1. Eine einfache Möglichkeit ein Array zu mischen benötigt nicht viel Code, wobei ich es natürlich in eine Sub auslagern kann, und dann gehts auch wieder....
2. Ich meine dass ich zum Beispiel ein Array mit 50 Zahlen habe, dann die 33. Stelle des Arrays auslese und sie gleichzeitig auch Löschen möchte, da ich sie bereits benutzt habe... Ich brauche das z.B. für das Generieren von Aufgaben, wobei eben die Zahlen nicht doppelt verwendet werden sollen. Auch hier ist mir klar, dass das mit genügend Code geht... Aber geht das auch einfach?
Ich hoffe es ist etwas klarer geworden...
Trotzdem Danke...
J. Kleis
danke für die Antwort. Leider ist das nicht genau das, was ich gemeint habe, deshalb nochmal genauer:
1. Eine einfache Möglichkeit ein Array zu mischen benötigt nicht viel Code, wobei ich es natürlich in eine Sub auslagern kann, und dann gehts auch wieder....

2. Ich meine dass ich zum Beispiel ein Array mit 50 Zahlen habe, dann die 33. Stelle des Arrays auslese und sie gleichzeitig auch Löschen möchte, da ich sie bereits benutzt habe... Ich brauche das z.B. für das Generieren von Aufgaben, wobei eben die Zahlen nicht doppelt verwendet werden sollen. Auch hier ist mir klar, dass das mit genügend Code geht... Aber geht das auch einfach?

Ich hoffe es ist etwas klarer geworden...
Trotzdem Danke...
J. Kleis
http://www.schulzeug-online.de OpenOffice in der Förderschule...
Re: Zwei Fragen zu Arrays
Hallo
Falls ja - schau mal im Lottozahlenthema
Gruß Karo
Klingt so, als ob du eine Reihe einmaliger Zufallszahlen erzeugen möchtest ?jkl hat geschrieben:......
2. Ich meine dass ich zum Beispiel ein Array mit 50 Zahlen habe, dann die 33. Stelle des Arrays auslese und sie gleichzeitig auch Löschen möchte, da ich sie bereits benutzt habe... Ich brauche das z.B. für das Generieren von Aufgaben, wobei eben die Zahlen nicht doppelt verwendet werden sollen. Auch hier ist mir klar, dass das mit genügend Code geht... Aber geht das auch einfach?![]()
Falls ja - schau mal im Lottozahlenthema
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zwei Fragen zu Arrays
Hallo nochmal,
habe folgende Idee:
Ich habe ein Array mit Begriffen aBegriffe() z.B. 20 Stück.... Ich habe einen Begriff der aus dem Array gelöscht werden soll....
Ich übergebe das Array und den Begriff an eine Function und die Function soll den Begriff aus dem Array löschen...
Mittels einer Schleife durchlaufe ich alle Array-Einträge und vergleiche sie mit dem Begriff. Für den Fall, dass der Begriff nicht gleich dem Eintrag im Array ist, wird der Begriff in einem neuen Array gespeichert, ansonsten eben nicht. Am Ende Überschreibe ich das erste Array mit dem neuen Array und gebe es wieder zurück.
Meine Frage:
1. Wie übergebe ich Arrays an eine Funktion? Wenn das nicht geht kann ich ja ein notfalls das Array als String übergeben und ihn wieder in ein array verwandeln.
2. Warum kann ich das nicht vernünftig programmieren?
Kann mir vielleicht jemand helfen?
Danke....
J. Kleis
habe folgende Idee:
Ich habe ein Array mit Begriffen aBegriffe() z.B. 20 Stück.... Ich habe einen Begriff der aus dem Array gelöscht werden soll....
Ich übergebe das Array und den Begriff an eine Function und die Function soll den Begriff aus dem Array löschen...
Mittels einer Schleife durchlaufe ich alle Array-Einträge und vergleiche sie mit dem Begriff. Für den Fall, dass der Begriff nicht gleich dem Eintrag im Array ist, wird der Begriff in einem neuen Array gespeichert, ansonsten eben nicht. Am Ende Überschreibe ich das erste Array mit dem neuen Array und gebe es wieder zurück.
Meine Frage:
1. Wie übergebe ich Arrays an eine Funktion? Wenn das nicht geht kann ich ja ein notfalls das Array als String übergeben und ihn wieder in ein array verwandeln.
2. Warum kann ich das nicht vernünftig programmieren?

Danke....
J. Kleis
http://www.schulzeug-online.de OpenOffice in der Förderschule...
Re: Zwei Fragen zu Arrays
Hey J. Kleist,
also, du kannst mit Arrays (oder Listen) genauso arbeiten wie mit Variablen - also sie auch an Funktionen übergeben.
Überdenke noch mal den komplwetten Weg deiner Aufgabe: vielleicht findest du andere Lösungen? Es wüerde m.A. absolut ausreichen, eine Kopie einer "Master-Liste" zu erstellen und dann daraus die gewählten Einträge zu löschen ( also durch leere Strings zu ersetzen). Dadurch wird das Array nicht kürzer - aber das ist auch nicht nötig.
Um eine Liste zufällig zu mischen, schau dir mal das beiligende Beispiel an. Das tut genau das. Ich denke, aus den Fragmenten und den Tipps von Stoni und Karolus solltest du deine Aufgaben lösen können
Viele Grüße
Thomas
also, du kannst mit Arrays (oder Listen) genauso arbeiten wie mit Variablen - also sie auch an Funktionen übergeben.
Überdenke noch mal den komplwetten Weg deiner Aufgabe: vielleicht findest du andere Lösungen? Es wüerde m.A. absolut ausreichen, eine Kopie einer "Master-Liste" zu erstellen und dann daraus die gewählten Einträge zu löschen ( also durch leere Strings zu ersetzen). Dadurch wird das Array nicht kürzer - aber das ist auch nicht nötig.
Um eine Liste zufällig zu mischen, schau dir mal das beiligende Beispiel an. Das tut genau das. Ich denke, aus den Fragmenten und den Tipps von Stoni und Karolus solltest du deine Aufgaben lösen können

Viele Grüße
Thomas
- Dateianhänge
-
- Beispiel.zip
- Liste zufälig mischen - Beispiel
- (8.8 KiB) 79-mal heruntergeladen
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Zwei Fragen zu Arrays
Hallo,
vielen Dank!!!!!
Die Idee war nur eine kranke Geburt meines Kopfes, da ich deine einfache Lösung nicht hinbekommen habe... Ich brauche tatsächlich nur deine Funktion und schon läuft alles... Nochmal danke.
Das einfache Übergeben von Arrays hat bei mir auch nicht richtig funktioniert, keine Ahnung warum... wahrscheinlich hab ich einfach ein paar Gehirnwindungen zu wenig aktiviert
J. Kleis
vielen Dank!!!!!

Die Idee war nur eine kranke Geburt meines Kopfes, da ich deine einfache Lösung nicht hinbekommen habe... Ich brauche tatsächlich nur deine Funktion und schon läuft alles... Nochmal danke.
Das einfache Übergeben von Arrays hat bei mir auch nicht richtig funktioniert, keine Ahnung warum... wahrscheinlich hab ich einfach ein paar Gehirnwindungen zu wenig aktiviert

J. Kleis
http://www.schulzeug-online.de OpenOffice in der Förderschule...