AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Die Typen der tatsächlichen und formalen Var-Parameter müsse
Thema durchsuchen
Ansicht
Themen-Optionen

Die Typen der tatsächlichen und formalen Var-Parameter müsse

Ein Thema von Arathok · begonnen am 29. Mai 2008 · letzter Beitrag vom 2. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Arathok

Registriert seit: 29. Mai 2008
Ort: Saalfeld
13 Beiträge
 
#11

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 07:53
ahh!Danke!
naja wir hatten bisher im unterricht immer nur a[i]verwendet aber eben in schleifen und sowas...



Auf jeden Fall Danke!
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 11:01
In Deiner Prozedur "tausch" steckt ebenfalls ein Fehler:

Delphi-Quellcode:

procedure tausch(var x,y:integer);
var z:integer;
begin
   x:=y;
   Y:=z;
   z:=x;
end;
muss heissen:


Delphi-Quellcode:

procedure tausch(var x,y:integer);
var z:integer;
begin
   z:=x;
   x:=y;
   y:=z;
end;
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#13

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 11:05
Geht übrigens auch anders:
Delphi-Quellcode:
procedure tausch(var x,y:integer);
begin
   x := x xor y;
   y := y xor x;
   x := x xor y;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#14

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 11:18
Was ist denn performanter? Die XOR-Lösung, oder der klassische Tausch über Hilfsvariable?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#15

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 11:20
Keine Ahnung, hab ich nie gemessen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#16

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 11:59
Die "xor" Variante mochte ich früher auch lieber, weil sie so nett aussieht und ohne zusätzlichen Hilfsspeicher auskommt.
Bis sie dann mal in einem meiner Codes mit derselben Variable für x und y aufgerufen wurde.
Das führt dann im Gegensatz zur anderen Version zur Katastrophe. Tausch(a, a) löscht nämlich a schon in der ersten Zeile, denn dann passiert ja nichts anderes als a := a xor a, und das gibt 0.
Also aufpassen, wo und wie man das einsetzt

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#17

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 12:04
Wobei es ja eigentlich egal ist, welche Katastrophe denn nun eintritt: gar nicht tauschen oder nullen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#18

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 30. Mai 2008, 12:57
[OT]
Nu ja, wenn ich sowas schreibe, sollte das für mein "a" nicht böse ausgehen:
Delphi-Quellcode:
a := 5;
Tausche(a, a);
IF a = 0 then
  ShowMessage('Das war ja wohl nix');
Das heißt aber, daß man theoretisch diese Tausch-Funktion wie folgt ändern müßte:
Delphi-Quellcode:
procedure tausch(var x,y:integer);
begin
  if x <> y then
    begin
      x := x xor y;
      y := y xor x;
      x := x xor y;
    end;
end;
Entschuldigung für das OT, aber der Bug hat mich mal ganz schön Nerven gekostet....

Gruß
Michael
[/OT]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#19

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 2. Jun 2008, 08:58
Ich habe mir das noch einmal durch den Kopf gehen lassen: das Problem besteht bei gleichen Werten überhaupt nicht (sofern ich keinen Denkfehler mache). Mal ein Schreibtischtest mit der Zahl 5 für beide Werte:
Delphi-Quellcode:
a := a xor b;

00000101 //a=5
00000101 //b=5
________
00000000 //a=0

b := b xor a;

00000101 //b=5
00000000 //a=0
________
00000101 //b=5

a := a xor b;
00000000 //a=0
00000101 //b=5
________
00000101 //a=5
[edit] Wenn man allerdings 2 mal die selbe Variable (Referenz) übergibt, sieht das anders aus. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#20

Re: Die Typen der tatsächlichen und formalen Var-Parameter m

  Alt 2. Jun 2008, 12:20
Zitat:
Wenn man allerdings 2 mal die selbe Variable (Referenz) übergibt, sieht das anders aus.
Nur darum ging es mir.

Gruß
Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:31 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