AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein function mit unterschiedlichen parametern
Thema durchsuchen
Ansicht
Themen-Optionen

function mit unterschiedlichen parametern

Ein Thema von kiar · begonnen am 11. Jan 2005 · letzter Beitrag vom 12. Jan 2005
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 22:14
hallo,

mal eine grundsätzliche frage.
ich bräuchte für eine funktion unter Umständen mehrere parameter
Delphi-Quellcode:
function Summe(zahl1,zahl2,...zahln :integer): integer

begin
    result:= zahl1 + zahl2 +..zahln;
end;
leider ist die zahln variabel. wie sollte man das am besten realisieren?


danke raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#2

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 22:18
Du kannst ein Array nehmen.
Unendlich viele Parameter sind in Delphi nicht möglich. Dazu gab's übrigens schon mal nen Thread.
Lukas
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 22:39
Moin!

Code:
Delphi-Quellcode:
function Summe(Const Zahlen : Array Of Integer): integer
Var
  i : Integer;
begin
  Result := 0;
  For i := Low(Zahlen) To High(Zahlen) Do
    Inc(Result, Zahlen[i]);
end;
Aufruf:
lSum := Summe([0, 23, 4, 65, 12, 33, 6, 2, 4, 7, 9]); Die Liste kannst du einfach mit einem Komma erweitern.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 22:51
hallo muetze1 und tubos,

überredet ich werde es mit einem array versuche zu realisieren. leider war die fkt nur ein beispiel, es können auch noch subtraktion, division und multiplikation in dieser zahlenkombination auftauchen.


naja, mir ging es um die beste lösung die zahlen zu übergeben.


danke raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 22:59
Nur interessehalber:

Zitat von Muetze1:
function Summe(Const Zahlen : Array Of Integer): integer
Muss man das nicht mittels Type umsetzen?
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 23:03
Ich versteh dann das Problem so, dass zu so einen Ausdruck auswerten willst:

a+b-c/d*a...

Dann könntest du ein Record schreiben
Delphi-Quellcode:
Bla = record
   Zahl: real;
   Befehl: byte; //1 -> +, 2-> -...
end;
So könntest du zu jeder Zahl noch mitliefern, wie die nächste Zahl dann bearbeitet werden soll /wird nur etwas kompliziert bei Klammern, aber da sollte auch eher ein Parser rann.

Aufruf dann über Berechne(list: Array of Bla): real;
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 23:27
Sollen nur zahlen rein geht es mit dem int-array.
Willst du alles mögliche übergeben könntest du ein sog. Open Array benutzen
Delphi-Quellcode:
program TestOpenArray;
{$APPTYPE CONSOLE}

procedure SomeFunction(params: array of const);
var
   i : Integer;
begin
   for i := Low(params) to High(params) do
      case params[i].VType of
         vtInteger:
            Writeln(' Integer', #9, params[i].vInteger);
         vtBoolean:
            Writeln(' Boolean', #9, params[i].vBoolean);
         vtChar:
            Writeln(' Char', #9, params[i].vChar);
         vtObject:
            Writeln(' Object', #9, params[i].vObject.ClassName);
         vtAnsiString:
            Writeln('AnsiString', #9, AnsiString(params[I].vAnsiString));
         vtPChar:
            Writeln(' PChar', #9, params[i].vPChar);
      end;
end;

var
   SomeString : string;
begin
   SomeString := 'Hallo';
   SomeFunction([1,
                 true,
                 #34,
                 SomeString,
                 TObject.Create(),
                 PChar('Miep')]);
end.
Die Ausgabe wäre dann:
Code:
   Integer   1
   Boolean   TRUE
      Char   "
AnsiString   Hallo
    Object   TObject
     PChar   Miep
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#8

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 23:36
hallo robert,

nein es sollen nur zahlen rein.

das tool hat folgenden Hintergrund, der kleine (sohn) ist in der zweiten klasse und hat ein wenig konzentration schwierigkeiten, nicht das er die matheaufgaben nicht löst, er macht aber immer alles mögliche nebenbei und dann schleichen sich fehler ein, ergo mein blutdruck geht nach oben ,

nun will ich mit dem tool erreichen, das er eine bestimmte menge von aufgaben in einer bestimmten zeit löst, dann hat er den druck sich zu konzentrieren, ausserdem findet er die uhr toll

um es aber flexibel zu gestalten will ich auch funktionen einbauen, welche in höheren klassen noch genutzt werden können.

mir scheint hier die variante von toxman am geeignesten zu sein, bin aber für weiter vorschläge offen.

danke raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: function mit unterschiedlichen parametern

  Alt 11. Jan 2005, 23:44
Moin!

Zitat von Matze:
Nur interessehalber:

Zitat von Muetze1:
function Summe(Const Zahlen : Array Of Integer): integer
Muss man das nicht mittels Type umsetzen?
Wenn du das Array selber von aussen belegst und dann als gesamtes übergibst: Ja!
Wenn du es wie in meinem Beispiel aufrufst (direkt @ Compile Time festgelegt): Nein!

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: function mit unterschiedlichen parametern

  Alt 12. Jan 2005, 00:12
Vielen Dank, wieder was dazugelernt!
  Mit Zitat antworten Zitat
Antwort Antwort


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