Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
funkmaster5000
Anmeldungsdatum: 15.02.2013 Beiträge: 2
|
Verfasst am: 15.02.2013, 10:20 Titel: Funktionen in -lang qb |
|
|
Hallo Community.
Derzeit bereitet mir folgendes Problem Kopfzerbrechen:
Ich habe ein älteres Programm in QBasic, das ich gerne mit FreeBasic und dem Parameter -lang qb kompilieren möchte.
Das hat bislang wunderbar geklappt, allerdings habe ich jetzt das QBasic Programm um eine Funktion ergänzt und jetzt kompiliert es nicht mehr. Deklariert wurde sie mit
Code: | DECLARE FUNCTION GenRandNum(min AS INTEGER,max AS INTEGER) AS INTEGER |
Rufe ich sie jetzt im Programm auf mit Zufallszahl% = GenRandNum(1,2), hält der Compiler sie für ein Array und beschwert sich, dass es nicht dimensioniert wurde. Gibt es in Bezug auf FreeBasic etwas zu beachten? In QB funktioniert das erzeugen der Exe wunderbar. Danke im Voraus! |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 15.02.2013, 11:06 Titel: |
|
|
Hi,
leider kann ich das Problem ohne weitere Angaben nicht nachvollziehen.
Code: | Declare Function GenRandNum(min As Integer,max As Integer) As Integer
Randomize
Zufallszahl% = GenRandNum(1,2)
? Zufallszahl%
Sleep
Function GenRandNum(min As Integer,max As Integer) As Integer
GenRandNum = Rnd*max+min
End Function | So funktioniert es (-lang qb) bei mir ohne Fehlermeldung. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
funkmaster5000
Anmeldungsdatum: 15.02.2013 Beiträge: 2
|
Verfasst am: 15.02.2013, 13:57 Titel: |
|
|
Danke für die Antwort, ich probiere es zu Hause nochmal aus. Gibt es eine Beschränkung, in welcher Reihenfolge Types, Functions und Subs deklariert werden müssen? |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 15.02.2013, 14:24 Titel: |
|
|
Grob gesagt,
bevor ich eine Variable, Sub oder Function benutze muss sie dem Compiler bekannt (dimensioniert bzw. declariert) sein.
PS.: So gehts als -lang qb auch
Code: | Declare Function GenRandNum%(min% ,max%)
Randomize
Zufallszahl% = GenRandNum(1,2)
? Zufallszahl%
Sleep
Function GenRandNum%(min% ,max%)
GenRandNum% = Rnd*max%+min%
End Function
|
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 15.02.2013, 14:27 Titel: |
|
|
Es muss immer so deklariert werden, dass sie dem Compiler bei einem Zugriff bereits bekannt sind. Z. B. muss die DECLARE-Zeile kommen, bevor die Prozedur das erste Mal verwendet wird, oder wenn TYPE A innerhalb von TYPE B als Element verwendet werden soll, muss TYPE A auch vor TYPE B deklariert werden. Oder wenn ein TYPE als Element einer Funktion auftritt, muss es auch vor der Funktion deklariert werden.
Kurz gesagt, der Compiler lernt die Elemente in der Reihenfolge kennen, in der sie im Quelltext aufgeführt werden; und er kann nur Elemente verwenden, die er zuvor kennengelernt hat. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|