Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Call SUB Programm

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sly.666



Anmeldungsdatum: 21.06.2007
Beiträge: 1

BeitragVerfasst am: 21.06.2007, 19:51    Titel: Call SUB Programm Antworten mit Zitat

Hallo;
ich bin absoluter Anfänger!
Folgendes Programm verstehe ich nicht ganz!

DECLARE SUB test (x1!, y!)
CLS
a = 10
CALL test(a, b)
CALL test(a, b)
PRINT "a="; a, "b="; b
END

SUB test (x1, y)
x1 = x1 + 1
x2 = x2 + 1
y = x2
END SUB

Das Programm zeig nach Durchlauf für a=12 und b=1 an!
Warum?
Insbesondere verstehe ich nicht was er mit den variablen anstellt!
Was passiert wenn hinter SUB test (x1, y) STATIC steht?
Wie sind die Abläufe im Programm?
Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 21.06.2007, 21:44    Titel: Antworten mit Zitat

Mit dem ersten CALL-Aufruf wird a nach x1 übergeben, daraufhin x1 um 1 erhöht, womit nach dem Aufruf der SUB der Wert von a 11 ist (10+1). x2 wird nicht deklariert, hat also zunächst den Wert 0. Wird um 1 erhöht und dann y=x2 gesetzt. Also ist y=1. Weil du vorher b für y übergeben hast, ist b auch 1.

Beim zweiten CALL-Aufruf ist a schon 11 und wird wieder (wie oben) um 1 erhöht, x2 ist wieder 0 (Werte innerhalb der SUB werden nicht über die SUB hinaus gespeichert), weshalb aus b wieder (wie oben) 1 wird.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz