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:

FB Variablen immer deklarieren ?

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



Anmeldungsdatum: 25.02.2011
Beiträge: 5

BeitragVerfasst am: 25.02.2011, 20:53    Titel: FB Variablen immer deklarieren ? Antworten mit Zitat

Hallo,
ich wollte mich nach langer Zeit mal wieder an kleinen Programmen versuchen aber leider bekomme ich immer "Fehler 41" und die Ausgabe das Variablen deklariert werden müßen. Seit wann ist das in Basic der Fall ? Ich kenne es nur das Variablen einfach gesetzt werden können.

MfG R.Lehmeier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.02.2011, 21:41    Titel: Antworten mit Zitat

Hallo und willkommen im Forum!

Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code:
For i% = 1 To 10
  Print "Hallo Welt"
Next i%

ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code:
Dim i As Integer
For i = 1 To 10
  Print "Hallo Welt"
Next i

oder alternativ
Code:
For i As Integer = 1 To 10
  Print "Hallo Welt"
Next i

Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr.

Sollen aber alte QB-Programme möglichst ohne viele Veränderungen compiliert werden, bietet der Compiler mit der Kommandozeilenoption -lang qb einen Syntax-Kompatibilitätsmodus zu QBasic an. In diesem Modus können Variablen auch weiterhin wie einst in QB implizit deklariert werden. Auf der anderen Seite stehen die neuen Funktionen aus FreeBASIC in diesem Modus aber nicht direkt zur Verfügung.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lehmeier



Anmeldungsdatum: 25.02.2011
Beiträge: 5

BeitragVerfasst am: 25.02.2011, 22:19    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Hallo und willkommen im Forum!

Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code:
For i% = 1 To 10
  Print "Hallo Welt"
Next i%

ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code:
Dim i As Integer
For i = 1 To 10
  Print "Hallo Welt"
Next i


Die alte Variante fand ich besser. Das machte Basic ja so einfach.

Zitat:
Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr.


Auch nicht schlecht.

Was mir aber auffällt ist das beim einfügen von Zeilen die Sprungmarken nicht mit angepasst werden. Hier könnte man sicherlich noch etwas nacharbeiten.
Bei kleinen Programmen mag es ja noch gehen aber wenn Sie länger werden dürfte es in einer Menge Nacharbeit münden.

MfG R.Lehmeier
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 25.02.2011, 22:28    Titel: Antworten mit Zitat

Sprungmarken sollten sowieso nicht mehr verwendet werden - erst recht keine numerischen. zwinkern Wenn man auf GOTO/GOSUB schon nicht verzichten möchte, sollten es meiner Meinung nach wenigstens "sprechende" Label-Namen wie SchleifenAnfang: oder Hauptmenue: sein.

Besser noch wäre es aber aus vielen Gründen, stattdessen ganz auf Schleifen und Unterprogramme (SUBs und FUNCTIONs) zu setzen. Beides wurde auch schon in QB-Zeiten nachdrücklich empfohlen (siehe z.B. Thomas Antonis QB-Monster-FAQ).

In alten Bestandsprogrammen muss aber dank des Kompatibilitätsmodus nicht alles geändert werden, damit die Programme mit FreeBASIC compiliert werden können. Nur in Neuentwicklungen würde ich auf jeden Fall auf Zeilennummern usw. verzichten.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lehmeier



Anmeldungsdatum: 25.02.2011
Beiträge: 5

BeitragVerfasst am: 25.02.2011, 22:31    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Hallo und willkommen im Forum!

Ähnlich wie z. B. in Java müssen Variablen seit längerer Zeit auch in FreeBASIC explizit deklariert werden. Während früher
Code:
For i% = 1 To 10
  Print "Hallo Welt"
Next i%

ohne DIM-Anweisung für i möglich war, muss heute jede Variable deklariert werden:
Code:
Dim i As Integer
For i = 1 To 10
  Print "Hallo Welt"
Next i


Die alte Variante fand ich besser. Das machte Basic ja so einfach.

Zitat:
Da Variablen vor ihrer Verwendung stets deklariert werden, ist keine Typangabe über Suffixe mehr nötig; Bezeichnersuffixe (%, $, ...) finden keine Anwendung mehr.


Auch nicht schlecht. Aber mir fiel auf das die Sprungmarken, beim Einfügen von Zeilen, nicht mit angepasst werden. Hier sollte noch mal nachgearbeitet werden. Bei kleineren Projekten ist es sicherlich kein Problem aber wenn Sie größer werden istes eine unnötige Fehlerquelle und Mehrarbeit.

Als GUI habe ich mir FBEdit und FBIde rausgesucht, falls es etwas mit dm Problem zutun haben sollte.

MfG R.Lehmeier
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 FreeBASIC. 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