 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
charlie
Anmeldungsdatum: 05.01.2013 Beiträge: 2
|
Verfasst am: 07.01.2013, 10:31 Titel: Mehrdimensionale Arrays und SUBs |
|
|
Hallo,
Allen ein gesundes neues Jahr.
Ich bin ein FreeBasic-Neuling das vorab. Habe früher, vor 1990 mal was mit dem damaligem Basic zu tun, seid dem nicht mehr. Nun, als Rentner, will ich was für die Synapsen tun. Soviel vorab. Ich denke dann sind meine Fragen auch zu verstehen und werden euch hoffentlich, wegen des Schwierigkeitgrades, nicht beleidigen!
Ich habe mich an einem Programm zur Lösung der SUDOKU's versucht. Ich weiß, gibt es zur Genüge, aber hier ist der Weg das Ziel.
In der "1. Ausbaustufe" - als Dialog - funktioniert es auch. Nur - ich habe viel diese ungeliebte GoTo verwenden müssen. Ich bekomme einfach diese UP mit SUB nicht aufgerufen. Und wenn, dann werden die Variablen nicht übergeben.
Kann mir einer mal die Declare-Zeile und den entsprechen Aufruf aufschreiben? Es sind ganz einfache Variable, wie a, b ... und mehrdimensionale, wie GT(i, j, k), alle UByte's, zu übergeben. Alle im UP verwendeten, und dort errechneten, Werte sollen globale Gültigkeit haben.
Eine zweite Frage betrift das Speichern, ich glaube früher gab es da so was wie LOAD?
Zu speichern wäre im Prinzip ein Datensatz aus zwei Variablen: GZ(i,j,k) und TZ(i,j,k); i,j,k - alle von 1 bis 9, auch hier alles UByte's.
Gespeichert werden soll auf D:\Eigene Dateien\FreeBasic
Auch hier wäre ich für je eine Programmzeile, speichrn und einlesen aus der Datei, sehr dankbar!
Vielen Dank!
Charlie
Editiert durch Moderator: Ursprünglichen Thementitel "Frage - Hilfe" ersetzt durch aussagekräftigere Bezeichnung. (Sebastian) |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 07.01.2013, 14:19 Titel: |
|
|
Code: |
sub meineSub(normaleVar1 as integer, byref normaleVar2 as integer, arrayVar() as integer)
normaleVar1 = 10 'die änderung ist auserhalb nicht zu sehen
normaleVar2 = 10 'diese änderung wird zurück übertragen
Redim arrayVar(1) as integer 'dies ebenfalls (Arrays sind immer 'ByRef')
arrayVar(1) = 10
end sub
|
Code: |
Dim Array() as integer
Dim Var1 as integer
Dim Var2 as Integer
meineSub(Var1, Var2, Array())
Print Var1
Print Var2
For X as Integer = LBound(Array()) to UBound(Array())
Print Array(X)
Next
|
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 07.01.2013, 15:57 Titel: |
|
|
Hallo Charlie,
willkommen im Forum! Dir auch ein gutes neues Jahr!
charlie hat Folgendes geschrieben: | Ich bekomme einfach diese UP mit SUB nicht aufgerufen. Und wenn, dann werden die Variablen nicht übergeben. [...] Es sind ganz einfache Variable, wie a, b ... und mehrdimensionale, wie GT(i, j, k), alle UByte's, zu übergeben. |
Dazu hier mal ein kleines Beispielprogramm:
http://www.freebasic-portal.de/porticula/mehrdimensionales-array-an-sub-uebergeben-1570.html
Auf der Seite werden die Befehle/Schlüsselwörter im Quelltext alle gleich auf die passenden Einträge in der Befehlsreferenz verlinkt. Du kannst also z. B. "BYREF" anklicken und kommst direkt zur Onlinehilfe zum Thema. Außerdem kannst du auf der Seite direkt die BAS-Datei runterladen ("Dateidownload").
Zu der anderen Frage:
charlie hat Folgendes geschrieben: | Eine zweite Frage betrift das Speichern, ich glaube früher gab es da so was wie LOAD?
Zu speichern wäre im Prinzip ein Datensatz aus zwei Variablen: GZ(i,j,k) und TZ(i,j,k); i,j,k - alle von 1 bis 9, auch hier alles UByte's.
[...]
speichrn und einlesen aus der Datei, sehr dankbar! |
Auch dazu ein Beispielprogramm:
http://www.freebasic-portal.de/porticula/mehrdimensionales-array-in-textdatei-speichern-daraus-auslesen-1571.html
Entscheidend ist darin das Unterprogramm "speicherArray". Es durchläuft alle Arrayelemente der Reihe nach und speichert sie - jedes Element in eine Zeile - in einer Textdatei. Das Pendant zu dieser Funktion ist die Sub "ladeArray". Es kann eine solche Textdatei auslesen und Element für Element wieder ins Array schreiben.
Der folgende Screenshot (zum Vergrößern anklicken) zeigt, wie sich die Textdatei zum mehrdimensionalen Array verhält:
Die Textdatei hat logischerweise 9*9*9 = 729 Zeilen:
charlie hat Folgendes geschrieben: | Gespeichert werden soll auf D:\Eigene Dateien\FreeBasic |
Der Beispielcode legt die Dateien einfach in dem Verzeichnis ab, in dem sich auch das Programm befindet. Aber den Dateipfad kannst du in den Zeilen 28 und 29 auch beliebig anpassen.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 07.01.2013, 16:03 Titel: |
|
|
Hi Charlie,
hier findest du ein Beispiel zum speichern von Dateien
http://www.freebasic-portal.de/befehlsreferenz/freefile-284.html.
Die Befehlsreferenz ist nicht nur wichtig sondern auch gut.
Viele Beispiele findest du auch in den Tutorials im FreeBasic-Portal
http://www.freebasic-portal.de/tutorials/, stöbern lohnt sich. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
charlie
Anmeldungsdatum: 05.01.2013 Beiträge: 2
|
Verfasst am: 10.01.2013, 00:34 Titel: |
|
|
Hallo,
vielen Dank für eure Hilfe, hier mir echt weitergeholfen!
Charlie |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.01.2013, 14:00 Titel: |
|
|
Von mir früher einmal ein Sudoku-Projekt:
http://forum.qbasic.at/viewtopic.php?t=2141
Hatte mich damals auch zuerst mit dem Lösen beschäftigt, später auch mit Rätsel generieren. Auch Dinge wie Doppelattribut-Sudoku (Du hast nebst Zahlen auch Farben, z.B. die blaue Vier, die rosarote 3 usw. -> sowohl Zahlen als auch Farben müssen einem Sudoku-System schlussendlich entsprechen) hatte ich mir damals näher angeschaut.
Für Deinen Fall halt einfach immer das Wichtigste: Festlegung von Algorithmen. In meinem Fall war damals Rekursion das Einfachste und Effizienteste, wo man übrigens auch von der Zahl der benötigten Rechenoperationen kräftig optimieren kann.
Zum Thema Array in Datei speichern: Evtl. auch einen Blick in GET und PUT für Dateien werfen, falls Direktzugriff anstelle von sequenziellem Schreiben und Lesen des gesamten Arrays auch ein Thema ist. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|