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:

Declare ?

 
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
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 03.09.2008, 14:08    Titel: Declare ? Antworten mit Zitat

Im Microsoftschen QBasic musste man Subs nicht manuell deklarieren.
Das hat der Interpreter selbst übernommen.

Von C und anderen Sprachen kenne ich es zwar auch nicht anders als das man prozeduren manuell deklariert, aber prinzipiell könnte eine deklaration einer Sub auch aus der definitions-kopfzeile entnommen werden oder?


Wenn ich ein Programm in FB schreibe kümmere ich mich erstmal gar nicht um die Deklarationen von subs und funktionen.
Erst wenn ich es des erste mal kompilieren will, suche ich alle kopfzeilen von den Subs und Funktionen raus und mach nicht mehr als ein COPY->PASTE und schreib ein "declare " davor.

Weiss jemand wie man das eleganter/einfacher realisieren könnte?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 03.09.2008, 14:13    Titel: Antworten mit Zitat

1) Du könntest ein Programm schreiben, das dir diese Arbeit abnimmt. happy
2) Wenn du erst die SUBs und FUNCTIONs schreibst und darunter den Quelltext, dann kannst du dir das DECLARE sparen - sofern nicht eine SUB oder FUNCTION auf eine andere zugreifen möchte, die erst später definiert wird.
3) meine (vorwiegende) Methode: wenn ich eine SUB/FUNCTION schreibe, kopiere ich die DECLARE-Zeile gleich mit. Hat aber den Nachteil, dass du bei einer Änderung diese gleich zweimal vornehmen musst.
4) deine Methode - am einfachsten zu realisieren, wenn dein Editor den Text falten kann.

Mehr fällt mir dazu nicht ein.
_________________
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
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 03.09.2008, 14:34    Titel: Antworten mit Zitat

Ein progrämchen zu schreiben, dass einen quelltext vor der kompilierung durchliest und die Deklarationen schreibt, hab ich mir auch schon überlegt....

Was heisst das ein text "gefaltet" wird?? .. das hab ich noch nie gehört. Bzw habs auch noch in keinem Editor gesehen.

die 2. Methode kannte ich noch gar nicht.. obwohl ich mich bei dem einen oder anderen Quelltext hier im forum schon gewundert hab das es so ohne weiteres ohne deklaration funktioniert...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 03.09.2008, 14:49    Titel: Antworten mit Zitat

Manchmal heißt es nicht 'falten', sondern 'zusammenklappen' (aber 'falten' ist das erste Wort, das ich in diesem Zusammenhang kennengelernt habe, darum verwende ich vorwiegend dieses). Spontan fällt mit Geany und SciTE ein, die das können, gibt aber noch eine Reihe mehr.

Methode 2 ist bei kurzen Sachen schon mal ganz praktisch; bei umfangreicheren Projekten wird es da aber wohl früher oder später zu Problemen kommen (abgesehen davon, dass ich seit längerem gerne alphabetisch sortiere, um die Sachen schneller zu finden happy )
_________________
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
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 03.09.2008, 14:56    Titel: Antworten mit Zitat

Du musst bei C nicht zwingend die Prototypen mit angeben, solange die Funktionen an sich vor der Verwendung definiert werden.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.09.2008, 15:16    Titel: Antworten mit Zitat

Zitat:
Im Microsoftschen QBasic musste man Subs nicht manuell deklarieren.
Das hat der Interpreter selbst übernommen.

bitte "selbst übernehmen" nicht mit "fügt das IDE-programm selbst ein" verwechseln! denn das ist ein gravierender unterschied und "wenn der interpreter / compiler was übernimmt" führt das ganz schnell zu schlechtem programmierstil (z.B. variablen automatisch deklarieren).
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



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

BeitragVerfasst am: 03.09.2008, 15:36    Titel: Antworten mit Zitat

Allerdings halte ich die Deklaration wirklich für doppelt gemoppelt. Durch die Definition der SUB bzw. FUNCTION wird ja bereits festgelegt, dass ich diese verwenden möchte und dass diese z. B. nicht für Variablen zur Verfügung stehen. DECLARE enthält "im Normalbetrieb" (ich spreche jetzt nicht vom Einbinden von Bibliotheken) keine für mich erkennbaren zusätzlichen Informationen über die tatsächliche SUB/FUNCTION (ich muss ja sogar die BYVALs und Typen zweimal angeben;), außer dass der Compiler nicht im Vorfeld einen Durchlauf starten muss, um sich die verwendeten Prozeduren und Funktionen herauszusuchen.
_________________
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
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.09.2008, 16:56    Titel: Antworten mit Zitat

da hast du natürlich nicht unrecht, DECLARE ist an sich eine doppelte deklaration...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 03.09.2008, 17:26    Titel: Antworten mit Zitat

@Jojo: Wo, beim klassischen QBASIC (nicht QuickBasic!), der Interpret anfängt und die IDE aufhört ist für den normalen benutzer relativ schwierig zu unterscheiden.
Am ehesten wird es wohl die IDE sein, denn sie übernimmt auch die Aufgabe eine Sub anzulegen wenn der Programmierer eine Neue anlegen will.
QBasic war für mich immer ein "Ding" das alles sofort interpretiert hat sobald ich was eingeben habe. Von daher wars mir auch nie wichtig was eine SUB deklariert... also ob Interpret oder IDE. So nahe beieinander wie bei QBasic waren Interpret und IDE sich bestimmt noch nirgends zwinkern ... ... vielleicht vom ganz alten Zeilenorientierten BASIC mal abgesehen.


Eigentlich war das zu Beginn dieses Threads auch mein Gedanke dass Deklarationen für SUBs und Funktionen in FB relativ überflüssig sind.. will mich nur für spezialfälle nicht zu weit ausm fenster lehnen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.09.2008, 17:41    Titel: Antworten mit Zitat

Zitat:
@Jojo: Wo, beim klassischen QBASIC (nicht QuickBasic!), der Interpret anfängt und die IDE aufhört ist für den normalen benutzer relativ schwierig zu unterscheiden.

alles was du siehst und sich bewegt, ist die IDE. Zunge rausstrecken so einfach is das. den interpreter siehst du nur in der form deines programms und vielleicht noch der meldung "übersetzen..."
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



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

BeitragVerfasst am: 03.09.2008, 17:43    Titel: Antworten mit Zitat

Der Interpreter ist es in QBASIC definitiv nicht, weil dieser eben genau interpretiert und sicherlich nicht den Quelltext ändern wird (was ja in diesem Fall geschieht).

Ich würde mal zu behaupten wagen, dass das Zusammenspiel zwischen Interpreter und IDE bei Omikron-BASIC noch stärker war - sofortige Fehlermeldung beim Verlassen der syntaktisch fehlerhaften Zeile - aber wirklich zu "interpretieren" hat auch das erst angefangen, wenn ich CTRL+R gedrückt habe. cool
_________________
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
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 03.09.2008, 21:01    Titel: Antworten mit Zitat

Also ich persönlich finde es sauberer, wenn ich gleich am Anfang eines Sourcecodes mitgeteilt bekomme, welche Funktionen existieren und wie diese ihre Parameter denn gern hätten. Besser, als sich erst durch den Source durchwühlen zu müssen.
_________________
Eine handvoll Glück reicht nie für zwei.
--
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