AGB  ·  Datenschutz  ·  Impressum  







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

Boolean-Wert ändern

Ein Thema von Martin K · begonnen am 17. Apr 2006 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:23
Zitat von fkerber:
@marabu und 3_of_8:
Warum eigentlich ne Funktion? Der Rückgabewert ist doch unnötig, oder?
Nicht nur das, imho ist er sogar falsch bei marabus Lösung.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#12

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:25
Hi!

Nö, wieso?
Bei marabu steht nachher der negierte Wert in der Variable, sodass ein aufruf mit negate(x) möglich ist.
Bei 3_of_8 bewirkt negate(x) gar nix. Da müsste es dann x:=negate(x) heißen, was aber gänzlich unnötig wäre.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:27
Zitat von fkerber:
Bei marabu steht nachher der negierte Wert in der Variable, sodass ein aufruf mit negate(x) möglich ist.
...und der Rückgabewert ist nicht negiert.
Er hat zwar keine Anleitung mitgeliefert, aber ich finde es verwirrend, wenn dann der nichtnegierte Wert zurück kommt.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#14

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:29
Hi!

Das iss richtig, aber weiter oben steht ja, dass der aufruf mit Negate(x) erfolgen solle.
Imho iss aber ein Rückgabewert hier sowieso unnötig.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:29
eine funktion für soetwas ist alles andere als sinnvoll. Durch den Aufruf einer Funktion werden erst wieder die ganzen Dinge auf den Stack gepackt, dann wird zur Funktion hingesprungen etc. Also ein recht großer Performanceverlust und das nur wegen schreibfaulheit.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:31
Zitat von fkerber:
Imho iss aber ein Rückgabewert hier sowieso unnötig.
Dazu habe ich mich noch garnicht geäußert.
Ich finde das ganze Vorhaben etwas unnötig. Vorallem weil Negate(a); a:=not a; gleichviel, wenn nicht sogar mehr schreibaufwand ist.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:48
Um hier mal einzugreifen, ich meine ja eine Prozedur und keine Funktion, da man hier wirklich keinen Rückgabewert benötigt.
Inc() ist ja schließlich auch eine Prozedur und keine Funktion !

Delphi-Quellcode:
procedure Inc(var X: Integer);
begin
  X := X + 1;
end;

//analog dazu:
procedure Negate(var X: Boolean);
begin
  X := not X;
end;
Aber so eine Prozedur wollte ich ja gar nicht selber machen, sondern nur wissen, ob es sowas vielleicht in Delphi schon gibt.
Da dies aber nicht der Fall zu seien scheind, habe ich bereits:
X := not X; in meinem Quelltext verwendet.

Eine Prozedur Negate scheint dann überflüssig zu sein, genauso wie Inc() in Delphi überflüssig ist, wenn man immer
X := X + 1; verwendet !

Da es aber Inc() bereits in Delphi gibt, hätte es ja sein können, dass es auch so was wie Negate() schon gibt.
Eigentlich war ja nur das meine ursprüngliche Fragestellung !

Aber trotzdem finde ich es interessant, was sich für eine ausfürliche Diskussion aus dieser simplen Frage eintwickelt,
die eigentlich lediglich mit 'Ja' oder 'Nein' zu beantworten war.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:52
btw:

Die Inc Prozedur kann dann doch etwas mehr:

Delphi-Quellcode:
procedure Incx(var X: Ordinal; const N: Integer = 1);
begin
  X := X + N;
end;
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#19

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:54
Hi!

Zitat von Martin K:
Eine Prozedur Negate scheint dann überflüssig zu sein, genauso wie Inc() in Delphi überflüssig ist, wenn man immer
X := X + 1; verwendet !
Ich wage mal zu behaupten, dass die Funktion inc etwas anders funktioniert als x+1; und somit eine Performance-Steigerung bewirkt.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#20

Re: Boolean-Wert ändern

  Alt 17. Apr 2006, 12:56
Ja Martin, dass ist der Mehrwert eines Forums. Ja und Nein kann man anhand der Online-Hilfe klären, aber diese Diskussionen machen ein Forum interessant.

Die von mir gezeigte Funktion speichert den alten Wert, bevor sie den neuen Wert setzt - mit einer Zeile Code. Dadurch kann in einer Zeile der vorherige Wert ausgelesen und später wieder korrekt restauriert werden. So richtig sinnvoll ist das aber erst bei Typen, die mehr als zwei diskrete Werte kennen. Dort ist eine combined access method sehr angenehm, bei Boolean nehme auch ich in der Regel einfach den NOT Operator. Ihr müsst lernen das Wesentliche zu erkennen, auch wenn ihr nicht mit der Nase darauf gestoßen werdet.

Zum Thema Performanz: es dauert Jahre, bis man mit einer Programmiersprache ein Projekt in lesbarem und wartbarem Code formulieren kann. Für das Tuning kann ich Kollegen einsetzen, die die Fähigkeit lesbaren Code zu schreiben nicht besitzen. In den letzten 10 Jahren hatte ich nur zwei Projekte, bei denen explizites Tuning erforderlich war. Ihr dürft das Thema Performanz nie überbewerten. Erst muss eine Anwendung existieren, dann muss sie untersucht (Profiler) werden und dann werden die richtigen Stellen hand-optimiert - und nur die.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:14 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