AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Calss operator liefert das falsche Ergebnis
Thema durchsuchen
Ansicht
Themen-Optionen

Calss operator liefert das falsche Ergebnis

Ein Thema von Timb0 · begonnen am 12. Dez 2008 · letzter Beitrag vom 12. Dez 2008
 
Timb0

Registriert seit: 2. Apr 2008
19 Beiträge
 
#1

Calss operator liefert das falsche Ergebnis

  Alt 12. Dez 2008, 07:35
Hallo alle zusammen,

ich ahbe mir den folgenden Typ definiert:
Delphi-Quellcode:
TVector = record
  first : PElement;

  class Operator Multiply(c:Real;u:TVector) : TVector;Overload;
  class Operator Multiply(u:TVector;c:Real) : TVector;Overload;
  class Operator Multiply(v,u:TVector): Double;
  class Operator Add(v,u:TVector) : TVector; Overload;
end;
alle Class Operatoren funktionieren ausser der 3. mit
class Operator Multiply(v,u:TVector): Double; dieser Rechnet das richtige ergebnis aus und Übergibt dann einfach das flasche. Ich verstehe einfach nicht warum hier mal kurz die funktion
Delphi-Quellcode:
Class Operator TVector.Multiply(v,u:TVector): Double;
var s,r:PElement; // Liste aus real werten die eine Eigenschaft x:real , next :Pelement hat.
  summe : Real;
begin
s:= v.first;
r:= u.first;

Result := 0;

if not Dimension(v) = Dimension(u) then begin Result := -1; Exit; end;

while s.next <> nil do
begin
  Result := Result + s^.x*r^.x;
  s := s^.next;
  r := r^.next;
end;

  Result := Result + s^.x*r^.x;
end;
Es handelt sich dabei um ein Skalarprodukt von Vektoren. Der Witz ist einfach, das der Result genau das Richtige ergebniss liefer, wenn man ihn innerhalb der Procedure abfrag (also nach der letzten Zeile eine MSgBox). Der Aufruf sieht wie folgt aus:
  S := Vec*Vec2; Gruß und schonmal danke fürs lesen, Timb00
  Mit Zitat antworten Zitat
 


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 19:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz