AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was bringen Konstanten?

Ein Thema von Pseudemys Nelsoni · begonnen am 16. Sep 2003 · letzter Beitrag vom 13. Jul 2004
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Was bringen Konstanten?

  Alt 16. Sep 2003, 06:08
sorry, schon wieder so eine dämliche frage, aber ich werde nicht schlau draus was "const" kann und ne variable nicht? (ne konstante kann man zwar im programm nicht ändern, wenn man aber weiss das man einen wert nicht ändern will, brauch man eine Variable ja auch nicht ändern)

Delphi-Quellcode:
const bla = 1;

procedure TForm1.Button1Click(Sender: TObject);
var
  jo: integer;
begin
  jo := bla;
end;
Delphi-Quellcode:
var bla: integer = 1;

procedure TForm1.Button1Click(Sender: TObject);
var
  jo: integer;
begin
  jo := bla;
end;


wo ist da nun der unterschied ? O_o
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#2

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 06:58
Hi,

du weißt das du die Variabale nich ändern willst aber weiß das das Programm auch? Ich meine es ist ja schnell mal passiert das man sagen wie schreibt

bla := bla +1 oder was und schon is alles hin. Ausserdem sind Konstanten ehr dazu gedacht als hilfen bei z.B. Versions angaben oder so zu dienen. Da schreibt man dann

const Version = '1'; und kann es sooft im Code verwenden wie man will. Ändert sich dann die Version ändert man die Konstante.
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 07:01
ja, aber würde ich mit einer variablen das gleiche machen würd es genauso funktionieren, bräucht ich sie nur global ändern. und wenn ich weiss das es eine Versions variable ist, dann änder ich sie doch im code nicht mit version := version +1..
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 07:29
Hallo silent,

der Unterschied ist auch historisch bedingt:

U.a. wurden Konstanten (in Turbo-Pascal jedenfalls) im Codesegment eines Programms geladen, Variablen dagegen im Datensegment. Damit waren Sprünge zu Konstanten als "kurze" Sprünge möglich!

Ansonsten hat Luckie recht: Das dient vor allem der Zentralisierung von Variablen. Es ist im Nachhinein ungleich leichter die Versionsnummer an
EINER Stelle zu ändern, als alle Stellen des Codes aufzusuchen und zu ändern. Das geht sicher auch mit Variablen, z.B. in einer eigenen Unit, aber die kann man versehentlich überschreiben. Konstanten eben nicht.
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 07:38
Mach Dich eihmal mit folgenden Konzepten vertraut:

Du bist ein Mensch.
Du bist nicht der einzige Programmierer auf der Welt.
Nicht die Maschine braucht Compiler, damit sie funktionieren, sondern der Mensch, der sie bedienen will.

DAs Ziel einer Entwicklungsumgebung und aller Ihrer Features ist es nicht, Dinge technisch möglich zu machen, sondern sie so effizient und einfach wie möglichh zu machen, und woher um Himmelswillen, soll irgendein Programmierer auf der Welt wissen, ob irgendeine Variable, die du mal eingeführt hast, verändert werden darf oder nicht.
Der effizienteste Weg, und der einzige der Fehler ausschließt, anderen Programmieren, dem Compiler (Optimierungen), und auch Dir selbst (nach ein paar Monaten kannst du selbst nicht mehr jede Variable und Konstante die du mal eingeführt hast ohne zu zögern runterbeten), diese Werte als Konstante zu deklarieren.

Gruß
Woki
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 07:58
danke @billa...

@woki:
Zitat:
und auch Dir selbst (nach ein paar Monaten kannst du selbst nicht mehr jede Variable und Konstante die du mal eingeführt hast ohne zu zögern runterbeten), diese Werte als Konstante zu deklarieren.
ich seh sie doch wenn sie global definiert ist, nur seh ich das immernoch so, das ich für alles genauso ne variable statt ne konstante nehmen kann..

danke auch dir
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 08:04
Sicher können tust du das schon,aber ob es was bringt. Auserdem ist mit der globalen Definition doch nicht ausgeschlossen die Variable zu ändern.
Durch die Deklaration von Konstanten wird es dir und anderen jedenfalls auch leichter den Quelltext zu verstehen...man weiß ahja eine Konstante, also darf/kann ich sie nicht ändern...jedenfalls muss ich sagen, das ich beim Thema programmieren noch in den Kinderschuhen stecke, aber Konstanten find ich persönlich sehr hilfreich!!
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#8

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 08:09
Moin.

Im prinzip hast du Recht, Silent. Ich sehe das genauso.

Aber ich kann mir auch vorstellen, wenn die Projekte immer größer werden, dass man ganz froh ist wenn man eine Fehlermeldung bekommt, wenn man versehendlich eine Konstante incrementiert oder sowas...

Stell dir mal vor du hast ganz plötzlich einen Fehler und kannst ihn auf etwa 500 Zeilen genau orten?

Und dann ist das sowas... Ist doch auch ein schönes Hobby...

Bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 08:11
hoi,

Zitat:
Sicher können tust du das schon,aber ob es was bringt.
was heisst ob mir das was bringt, ich sehe zwischen variable und konstante kein unterschied, ausser das man letztere nicht überschreiben kann...

hatte bis jetzt in meinem prog immer global die versionsnummer als variable, und hat super gefunzt...und da ich weiss das diese die version enthält änder ich sie im quelltext natürlich auch nicht...
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Was bringen Konstanten?

  Alt 16. Sep 2003, 08:21
Ja, ok wenn du dich in deinem Quelltext auskennst dann mag das ja alles ok sein, aber wie oben schon gesagt, was ist wenn mal ein anderer den source bearbeitet und versehentlich diese Varibale ändert?

Ich mein es gibt viele Lösungen die zum Ziel führen und jeder muss die für sich richtige finden...nur kann es dann eben sein das es Probleme gibt wenn man den Source jemand anders bearbeiten lässt und dieser eben nicht weiß das diese Variable nicht geändert werden soll.
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz