AGB  ·  Datenschutz  ·  Impressum  







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

Mehere Werte auf gleichheit überprüfen

Ein Thema von xZise · begonnen am 15. Apr 2006 · letzter Beitrag vom 15. Apr 2006
Antwort Antwort
Seite 3 von 3     123   
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Mehere Werte auf gleichheit überprüfen

  Alt 15. Apr 2006, 14:50
@Hagen:
Mit "and" bzw. "or" ist natürlich auch eine Möglichkeit
Wobei man jetzt wieder darüber diskutieren könnte, was schneller ist, wenn
(Value[1] = Value[2]) false ist.

Schließlich hätte man bei ner Zuweisung ne Schreiboperation, während ein if-Konstrukt in diesem Fall nur lesen würde.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#22

Re: Mehere Werte auf gleichheit überprüfen

  Alt 15. Apr 2006, 14:51
Zitat von sakura:
Zitat von marabu:
if a[i] <> a[Pred(i)] then
Immer auf a[i] zuzugreifen ist nicht optimal, vorher zwischenspeichern
Schon eine ganze Weile her als ich das letzte Mal im CPU Fenster deubggt hab, aber sollte ein klassischer for to loop über einen Array nicht darin resultieren, dass einfach ein Pointer auf das Element inkremeiert wird?

Wenn nicht:
Delphi-Quellcode:
function AllEqual(const values : array of Byte) : Boolean;
var
  firstElement,
  lastElement,
  currentElement : PByte;
begin
  if Length(values) > 1 then
  begin
    firstElement := @values[Low(values)];
    lastElement := @values[High(values)];

    currentElement := firstElement;

    while Integer(currentElement) < Integer(lastElement) do
    begin
      Inc(currentElement);

      Result := currentElement^ = firstElement^;

      if not Result then
        Exit;
    end;
  end
  else
    Result := true;
end;
Nicht schlagen, wenn's BS ist *dummer .Net Fritze ist *
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#23

Re: Mehere Werte auf gleichheit überprüfen

  Alt 15. Apr 2006, 14:58
Zitat:
Schon eine ganze Weile her als ich das letzte Mal im CPU Fenster deubggt hab, aber sollte ein klassischer for to loop über einen Array nicht darin resultieren, dass einfach ein Pointer auf das Element inkremeiert wird?
Wie kommst du zu dem Schluß ?

Heutige CPUs sind daraufhin optimiert gerade den Array-indizerten-record-basierten Zugriff auf den Speicher zu ermöglichen. Dies ist bei weitem effizienter, sowohl im Verständnis, Geschwindigkeit und Verbrauch an Speicher für den Code.

Die effizienteste Lösung dürfte darin bestehen ein Element im Array[] zu finden das NICHT identisch mit dem ersten Element des Arrays[] ist.

Auf CPU Ebene gibt es den Befehl "scanne Speicherarray auf einen Wert <> X" -> REP SCASD

Gruß Hagen
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#24

Re: Mehere Werte auf gleichheit überprüfen

  Alt 15. Apr 2006, 15:07
hehe, bin schon ganz lieb und ruhig. Zumindest solange du nun auch einen Schnipsel rausrückst.
Wer A sagt muss auch ... Code tippen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#25

Re: Mehere Werte auf gleichheit überprüfen

  Alt 15. Apr 2006, 15:17
Zitat von MStoll:
Bei
if Value[1]=Value[2] then Result := true; bleibt result true.
Bei
Result := Value[1] = Value[2]; wird es false.
Das ist aber auch der einzige Grund! Und bisher bin ich gut mit 2. zurecht gekommen.

Und außerdem ist es ziemlich logisch die 2. Konstruktion zu nehmen, weil if nichts anderes ist als zu überprüfen ob das zwischen if und then true ist, und dann bestimmte Dinge zu machen!
D.h. das Value[1] = Value[2] ein Bollean zurückgeben MUSS, weil ansonsten würde der Compiler meckern!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:39 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