AGB  ·  Datenschutz  ·  Impressum  







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

Funktion mit 2 Zahlen

Ein Thema von Axxus · begonnen am 28. Feb 2007 · letzter Beitrag vom 28. Feb 2007
Antwort Antwort
Seite 1 von 3  1 23      
Axxus

Registriert seit: 3. Okt 2006
212 Beiträge
 
Turbo Delphi für Win32
 
#1

Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:23
HI Delphianer

Sorry das ma wieder so ne noobfrage kommt aber naja.

Ich versuche grade meine erste Bibiothek mit Delphi zu schreiben.

Es soll eine mathematische Formelsammlung werden (ich weiß gibts bestimmt schon aber ich will so was ma selbst versuchen)

Nun stoß ich schon gleich am Anfang auf mein erstes Problem:


ich will als erstes die Formel für den Flächeninhalt eines Rechtecks in die Bibiothek programieren also erst ma was gaaaaaanz leichtes. So die Formel für A ist ja A=a*b. So also den ich mir Nehm ich ne Prozedure und mach das ganze so

prozedure Flächeninhalt(a, b: integer); so jetzt hätte ich die 2 Varriablen drin und kann damit A ausrechnen.

Jetzt denk ich weiter: wie bekomme ich nun den Flächeninhalt zurück in das Hauptprogramm?
So jetzt hab ich gelernt, dass eine prozedure keinen Wert zurück gibt, sondern eine Funktion.
Also nehm ich mir eine Funktion

Funktion Flächeninhalt: integer; So jetzt kann meine Funktion den Flächeninhalt zurückgeben
Wie bekomme ich jetzt aber die Varriablen a und b darein damit der Flächeninhalt berechnet werden kann.

Es soll eine algemeine Unit werden die ich in jedes belibige Programm einbauen kann also sollte nichts Situationsgebundenes in der Funktion wie
a := edit1.Text; sein

So ich hoffe ihr habt mein Problem verstanden

Danke im Vorraus

Axxus
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:25
jetzt misch doch mal deine Deklarationen von Prozedur und Funktion et voilá, Problem gelöst
function Flaecheninhalt(a, b: Integer) : Integer;
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Axxus

Registriert seit: 3. Okt 2006
212 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:27
coll ih wusst gar nicht, dass das geht

danke

und sorry wg der noobfrage

Axxus
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:28
Kein Problem, jeder fängt mal an

Evtl. wären ja auch die Einsteiger-Tutorials von DSDT was für dich: http://www.dsdt.info/tutorials/?cat=1
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:32
Oder du nimmst einen Parameter "call by reference" =)

Und da gibt es in Delphi 2 Möglichkeiten:

Einmal explezit nur als Ausgabeparameter mit dem Schlüsselwort Out oder mit dem Variablenparameter Var

Würde dann so aussehen:
Delphi-Quellcode:
Procedure Flaeche1( Const a, b: Integer; Out Result: Integer );
{...}
Procedure Flaeche2( Const a, b: Integer; Var Result: Integer );
{...}
achso, das Const für Konstantenparameter...
Ist in diesem Fall nicht notwendig, kann aber einen Performance Unterschied ausmachen, gerade wenn man z.B. mit Strings arbeitet...

Bye Christian
Christian
  Mit Zitat antworten Zitat
Axxus

Registriert seit: 3. Okt 2006
212 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:34
Naja ich programiere jetzt schon seit 3 Jahren mit Delphi also sollt ich das eigentlich wissen
Aber ich hab noch nie eine Libary geschrieben und habe selten functions benutzt deswegen auch die Bildungslücke

Trotzdem danke Leute
  Mit Zitat antworten Zitat
Axxus

Registriert seit: 3. Okt 2006
212 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:36
Wäre es so sauber programiert
Delphi-Quellcode:
interface

function Rechteck_Flächeninhalt (a, b: extended) : extended;

implementation

function Rechteck_Flächeninhalt (a, b: extended) : extended;
begin
  Rechteck_Flächeninhalt := a*b;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:40
Jo, sieht doch gut aus. Um etwas Schreibarbeit zu sparen, kannst du für den Rückgabewert statt des Funktionsnamens auch einfach nur "Result" schreiben
Delphi-Quellcode:
function Rechteck_Flächeninhalt (a, b: extended) : extended;
begin
  Result := a*b;
end;
//Edit:
Bis auf die Tatsache, dass es wohl mit dem Funktionsnamen ein Problem geben dürfte Umlaute sind meines Wissens nach nicht erlaubt
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:44
Erstmal nein, da das Ergebiss von Funktionen in Result gelegt werden muss!

Nunja, wenn du nur mit Ganzzahlen arbeiten willst, ist das Performance mässig weniger gut.

Zudem würde ich bei Fließkomma lieber mit dem Const arbeiten, da du so mit der Referenz des Wertes arbeitest und nicht mit einer Kopie... (Kopien und Rechenoperationen mit Fließkommazahlen können das Ergebniss ungenau machen, wenn man das so sagen kann...

Ich persönlich würde es so machen wenn ich Zeit hab =)

Delphi-Quellcode:
Unit {...};

Interface
                                                                   
Function Rechteck_Flaecheninhalt( Const a, b: Integer ): Extended; Overload;
Function Rechteck_Flaecheninhalt( Const a, b: Extended ): Extended; Overload;

Implementation

Function Rechteck_Flaecheninhalt( Const a, b: Extended ): Extended;
Begin
  Result := a * b;
End;

Function Rechteck_Flaecheninhalt( Const a, b: Integer ): Intger;
Begin
  Result := a * b;
End;

end.
Christian
  Mit Zitat antworten Zitat
jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#10

Re: Funktion mit 2 Zahlen

  Alt 28. Feb 2007, 16:48
result oder funktionsnamen, ist egal auf was man sein ergebnis der funktion zuweist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:38 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