AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variablenübergabe - erklärt mir das einer?
Thema durchsuchen
Ansicht
Themen-Optionen

Variablenübergabe - erklärt mir das einer?

Ein Thema von Amandus · begonnen am 24. Nov 2003 · letzter Beitrag vom 26. Nov 2003
 
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#2

Re: Variablenübergabe - erklärt mir das einer?

  Alt 24. Nov 2003, 20:46
Hallo!

Ich gehe jetzt einfach mal die Fragen durch.

(1) Weshalb mit im Unterprogramm nicht gleich mit "a" rechnet wird schon in Deinem eigenen Programm klar. Dann müsstest Du für "b", welches Du ja auch noch einmal mit dem gleichen Unterprogramm einliest, das ganze noch einmal schreiben. Und so, wie es jetzt ist, kannst Du jeden beliebigen Vektor einelesen!
Deklarieren musst Du den Vektor v nicht, denn dadurch, dass Du ihn als Parameter angegeben hast, ist er im Unterprogramm schon deklariert.

(2) An die Prozedur "Vektoraddition" werden drei Parameter übergeben. Die ersten beiden sind die Vektoren, die addiert werden sollen und der dritte ist der Ergebnisvektor. Dabei ist zu beachten, dass vor dem Ergebnisvektor das Wörtchen "VAR" steht. Das bedeutet, dass wenn Du - wie es in Deinem Beispiel geschieht - eine Variable c (die im Hauptprogramm deklariert ist) an diese Prozedur als Ergebnisvektor übergibst, jede Änderung, die im Unterprogramm an dieser Variable gemacht wird, auch im Hauptprogramm erscheint. Man sagt, die Variable wird "als Referenz" übergeben. Die beiden ersten Variablen werden "als Wert" übergeben. (Fachbegriffe "call by reference" und "call by value").
Um es deutlicher zu machen: da Du c "als Referenz" übergeben hast, werden die Zuweisungen, die im Unterprogramm "Vektoraddition" gemacht werden, für c auch im Hauptprogramm gelten.
Effektiv wird in der Vektoraddition also nur jeden Komponente von a mit der entsprechenden Komponente in b addiert wird und das Ergebnis in der entsprechenden Komponente in c gespeichert wird ... und dies auch im Hauptprogramm in c zu sehen ist.

(3) siehe (1)

So, ich hoffe ein wenig Klarheit geschafft zu haben. Wenn nicht, denk dran: es ist schon spät!

mfG
Peter

//edit: Ach ja: Willkommen im Forum!
Christian S.
Admin in der Entwickler-Ecke
  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 02:18 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