Globale Variablen sinnvoll?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Gray Fox

Betreff: Globale Variablen sinnvoll?

BeitragSo, Dez 10, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Steinigt mich bitte nicht, falls es diese Fragen schon öfters gab Embarassed

Mein C++ Lehrer meint, man solle auf globale Variablen verzichten, wäre besser für die Übersicht und erleichtert bei größeren Projekten die Parameterübergabe an die einzelnen Funktionen, falls mehrere Leute an diesem Projekt mitarbeiten sollten.

Außerdem meint er in dem Zusammenhang sollte man so viel wie möglich in Funktionen auslagern.

Mich würde interessieren wie ihr dazu steht? Hat er recht oder ist hier BB != C++?

Blitzcoder

Newsposter

BeitragSo, Dez 10, 2006 14:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Variablen, die man echt oft braucht, sollte man global machen. Es ist doof, wenn man 20 Funktionen für ein Raumschiff hat, und diesen jedesmal Position,Geschwindigkeit , richtung etc. sagen muss. Ansonsten stimmt das, denn man kann die Variablen in FUnctions nicht durcheinanderbringen.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Gray Fox

BeitragSo, Dez 10, 2006 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzcoder hat Folgendes geschrieben:
Die Variablen, die man echt oft braucht, sollte man global machen. Es ist doof, wenn man 20 Funktionen für ein Raumschiff hat, und diesen jedesmal Position,Geschwindigkeit , richtung etc. sagen muss. Ansonsten stimmt das, denn man kann die Variablen in FUnctions nicht durcheinanderbringen.


Gibt es irgendwo eine kleine Übersicht mit ein paar Tips zur Struktierung in BB?

Ich progge immer drauf los, klappt zwar eigentlich immer. Sieht aber nur aus wie unter aller Sau Very Happy

BladeRunner

Moderator

BeitragSo, Dez 10, 2006 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich vermeide globalen wo ich nur kann, denn es stimmt schon was dein Lehrer sagt. Jede Globale birgt die Gefahr dass sie irgendwo in deinem Code unkontrolliert manipuliert wird. Das macht bei großen Codes die Fehlersuche extremst schwer. Eine Funktion bietet dir da Sicherheit, da alle Fehler die Funktion betreffend nur in ihrem Gültigkeitsbereich entstehen können.
Das ist allgemeingültig, BB macht also keine Ausnahme.

Natürlich kann man globale nicht generell verteufeln - manchmal müsste man aberwitzige Konstrukte bauen um auf eine Globale zu verzichten. Dann sollte man ihr doch den Vorzug geben.

Was sehr hilfreich sein kann ist eine feste Notation zu nutzen, damit man wenigstens sehr überlegt mit seinen Vars umgeht - so bietet sie ein G_varname für Globale an - der Großbuchstabe fällt auf und ist eindeutig. Noch besser ist allerdings auch noch ein Kürzel für den Variablentyp anzugeben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Gray Fox

BeitragSo, Dez 10, 2006 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja an der Notation muss ich noch arbeiten :/

Was mich auch sehr stört, ist die IDE von BB (3D), gibt es eine Möglichkeit in der Konfigdatei einzustellen, dass die Keywords fett dargestellt werden? Wie z.B. bei Visual C++/Borland C++.

Möchte jetzt nicht direkt auf eine andere IDE umsteigen, denn mir würde schon eine Borland ähnliche IDE reichen.

Btw. Grafiken sollten aber global geladen werden?

StepTiger

BeitragSo, Dez 10, 2006 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Grafiken arbeite ich immer mit Dim-Feldern und Konstanten. Wobei das eigentlich wenige Unterschiede macht.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Gray Fox

BeitragSo, Dez 10, 2006 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
Bei Grafiken arbeite ich immer mit Dim-Feldern und Konstanten. Wobei das eigentlich wenige Unterschiede macht.


Konstanten sind doch einfach Variablen, deren Inhalt während dem Betrieb des Programmes nicht mehr geändert werden können oder gibt es da noch andere Unterschiede?

5k41

BeitragSo, Dez 10, 2006 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
constanten sind IMMER Global, genau wie arrays...

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Gray Fox

BeitragSo, Dez 10, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
5k41 hat Folgendes geschrieben:
constanten sind IMMER Global, genau wie arrays...

MfG


Danke für die Info.

Mein Spaghetticode ärgert mich teilweise schon.

Blitzcoder

Newsposter

BeitragSo, Dez 10, 2006 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Als IDE kann ich dir Blitz Edit 2 ans Herz legen. Wird aber leider nicht mehr weiterentwickelt. www.future-coding.de. Dann gibt es noch Visual Blitz, welches auch sehr gut ist. Hier ist eine IDE-Liste : http://blitzbasic.com/toolbox/toolbox.php?cat=11
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Gray Fox

BeitragSo, Dez 10, 2006 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzcoder hat Folgendes geschrieben:
Als IDE kann ich dir Blitz Edit 2 ans Herz legen. Wird aber leider nicht mehr weiterentwickelt. www.future-coding.de. Dann gibt es noch Visual Blitz, welches auch sehr gut ist. Hier ist eine IDE-Liste : http://blitzbasic.com/toolbox/toolbox.php?cat=11


Danke, werde sie mal durchprobieren Smile

Dreiser

BeitragSo, Dez 10, 2006 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Teste mal die Protean-IDE. Dort kannst Du im "Scheme Editor" die keywords fett einstellen.
 

Gray Fox

BeitragSo, Dez 10, 2006 17:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreiser hat Folgendes geschrieben:
Teste mal die Protean-IDE. Dort kannst Du im "Scheme Editor" die keywords fett einstellen.


danke für den Tip, aber in der BIDE Ide ging es auch Smile

StepTiger

BeitragSo, Dez 10, 2006 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
5k41 hat Folgendes geschrieben:
constanten sind IMMER Global, genau wie arrays...

MfG


Richtig. Aber die kann man nicht versehentlich ändern.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

5k41

BeitragSo, Dez 10, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ist mir klar Wink ich kann dir auch nur Protean empfehlen, ist auch super zum Handhaben von großen Projekten!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

FireballFlame

BeitragSo, Dez 10, 2006 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Gray Fox hat Folgendes geschrieben:
Konstanten sind doch einfach Variablen, deren Inhalt während dem Betrieb des Programmes nicht mehr geändert werden können oder gibt es da noch andere Unterschiede?


So ungefähr. Eine Konstante ist aber keine Variable sondern sozusagen bloß ein "Name" für irgendeine Zahl. Und damit sind Konstanten schneller als Variablen.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

pixelshooter

BeitragSo, Dez 10, 2006 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
werden konstanten mit ihrem namen eigentlich mitkompiliert od kann man den namen dann net mehr rausfinden?
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

PowerProgrammer

BeitragSo, Dez 10, 2006 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube, du hast die Funktionsweise von Konstanten nicht verstanden. Die kann man natürlich nicht zurückverfolgen. Auch Variablen werden durch Adressen ausgetauscht (glaube ich, weiß ich...).

Mfg
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

pixelshooter

BeitragSo, Dez 10, 2006 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, normalerweise kann man sein prog z.b. durch variable-namen wiedererkennen (-> urherhebererkennung)
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group