Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Anubis
Anmeldungsdatum: 09.12.2010 Beiträge: 6
|
Verfasst am: 09.12.2010, 18:40 Titel: Das mit den Subs... |
|
|
kann mir das mal jemand "für Blöde" erklären ?
Mein Problem hatte ich bisher mit gosub hervoragend gelöst:
y=... : t0=l0 : gosub rahmen
.....
rahmen:
locate y,x : print m0;" ";t0;" ";m1;" ";t0;" ";m1;" ";t0;" ";m0 : return
Mit den Erklärungen für die Subs komme ich nicht klar. Und da gosub jetzt nicht mehr funktioniert, habe ich ein Problem.
Danke für Eure Zeit und Mühe. |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 09.12.2010, 19:07 Titel: |
|
|
Hi und Willkommen im Forum.
Zu deiner Frage:
GOSUB solltest du gar nicht verwenden, eine einfache SUB ist nicht wirklich komplizierter.
Aus deinem
Code: | y=...
t0=l0
GoSub rahmen
rahmen:
Locate y,x
Print m0;" ";t0;" ";m1;" ";t0;" ";m1;" ";t0;" ";m0
Return |
würde
Code: | Sub rahmen
Locate y,x
Print m0;" ";t0;" ";m1;" ";t0;" ";m1;" ";t0;" ";m0
End Sub
y=...
t0=l0
rahmen |
werden, allerdings nur, wenn deine Variablen mit SHARED definiert sind, sonst würden sie in der SUB nicht bekannt sein. Alternativ kannst du dann sowas machen:
Code: | Sub rahmen(y As Integer, x As Integer, m0 As Integer, m1 As Integer, t0 As Integer)
Locate y,x
Print m0;" ";t0;" ";m1;" ";t0;" ";m1;" ";t0;" ";m0
End Sub |
Hier erwartet deine SUB, dass du ihr die benötigten Variablen übergibst per
Code: | rahmen(y, x, m0, m1, t0) |
Im Übrigen kannst du deine t0, m0, m1 usw. durch Arrays ersetzen, was sie flexibler macht, weil du beispielsweise eine Variable 't' über einen Index ansprechen könntest.
Schau dir dazu einfach mal das verlinkte Tutorial an.  |
|
Nach oben |
|
 |
Anubis
Anmeldungsdatum: 09.12.2010 Beiträge: 6
|
Verfasst am: 09.12.2010, 19:17 Titel: |
|
|
zunächst einmal Danke für Deine Antwort.
Das Ding ist Teil eines ziemlich komplexen Anzeige-Rahmens. Arrays kommen vor und auch ein paar andere Sachen, um den Code schlank zu halten. Aber gerade diese Sequenz läßt sich sinnvoll nur durch das Aneinanderstückeln von Teilen und eine Unterroutine realisieren.
Allerdings habe ich mein letztes Programm vor etwa 25 Jahren geschrieben und ich vermisse die c64-Steuercodes. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Anubis
Anmeldungsdatum: 09.12.2010 Beiträge: 6
|
Verfasst am: 09.12.2010, 19:32 Titel: |
|
|
Ich hatte mir schon damals angewöhnt, modular zu programmieren.
goto habe ich nur verwendet, um Programmteile zu umgehen, die nicht in jedem Fall ausgeführt werden sollen - etwa als Hilfe bei verschachtelten if...then-Abfragen (else gab´s noch nicht). Und meine Subs lagen alle schön geordnet am Ende (vor den Datas). Hin und herspringen brauchte ich nie.
Na, ich werde das gleich mal ausprobieren. Nochmals danke. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
|