Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   array an funktion übergeben (https://www.delphipraxis.net/17688-array-funktion-uebergeben.html)

mojo777 8. Mär 2004 14:43


array an funktion übergeben
 
Hallo,

ich habe demnächst vor arrays an eine funktion zu übergeben und würde mich gerne vorab informieren wie das funktioniert. also ob man da irgendetwas besonderes bechten muss.

oder klappt auch sowas wie:

Delphi-Quellcode:
function suche_den_dicksten(haufen: type of array)
var wert, i: Integer;

  begin
  wert:=haufen[1];
    for i:=1 to length(haufen) do
      begin
        if haufen[i]>wert then wert:=haufen[i];
      end;
  end;

suche_den_dicksten(viele_steine); //viele_steine: type of array;
//oder sooo... das mit der deklaration habe ich noch nicht
//so richtig drin.... welchsele ständig zwischen php und
//delphi und finde das bei delphi eigentlich recht nerfig....
//aber naja... es hat auch ab und zu seine vorteile.
vielen dank im voraus.

Dannyboy 8. Mär 2004 14:53

Re: array an funktion übergeben
 
Delphi-Quellcode:
function suche_den_dicksten(haufen: ARRAY OF INTEGER)
var wert, i: Integer;
begin
  wert:=0;
  for i:=low(haufen) to high(haufen) do
    if haufen[i]> wert then
      wert:=haufen[i];
  result:= wert; // wir wollen den Wert zurück geben.
end;
Hab' das nur mal freihand geschrieben (ungetestet).
Noch Fragen?

mojo777 8. Mär 2004 15:13

Re: array an funktion übergeben
 
jau... ein return muss sein. :thuimb:
hmm und wie übergebe ich ein array an die funktion ? mit suche_den_dicksten(name); oder
suche_den_dicksten(name[]); ?

Jens Schumann 8. Mär 2004 15:55

Re: array an funktion übergeben
 
Hallo,
das Beste ist Du erstellst Dir einen Typen für das Array;
Delphi-Quellcode:
Type
  TMyArray = Array[0..9] of Integer;
  TDynIntArray = Array of Integer;
...
function MyFunction(aArray : TMyArray);
...
function MyFunction(aArray : TDynIntArray);
...

atreju2oo0 8. Mär 2004 15:56

Re: array an funktion übergeben
 
Du brauchst...
Delphi-Quellcode:
type TMeinArray : array[1..10]of integer;
Delphi-Quellcode:
var meinArray:TMeinArray;

und Jetzt kannst Du die Procedure so deklarieren :

Delphi-Quellcode:
procedure Haufensuchen(haufen:TMeinArray);

im Programm also meinArray ausfüllen und dann einfach mit

Delphi-Quellcode:
Haufensuchen(meinArray);
abschicken;

Wenn Du einen Rückgabewert haben willst aus der procedure einfach ne Function machen....

mojo777 8. Mär 2004 22:44

Re: array an funktion übergeben
 
alles klar. besser kanns man wohl nicht erklären.
vielen dank!
:spin:

Dannyboy 9. Mär 2004 09:33

Re: array an funktion übergeben
 
Guten Morgen mojo777,
lass mich Dir noch kurz einen kleinen Denkanstoß geben:
Wie ich hier sehe, greifst Du "lediglich" lesend auf das Array zu.- Deine Funktion möchte den
größten Wert des Arrays zurückgeben. Falls Deine Funktion ausschließlich für dieses
einzige (!) Array funktionieren soll und nicht auf mehrere Arrays zugreifen soll, dann brauchst Du
das Array gar nicht als Werteparameter an die Funktion zu übergeben. Programmierer machen das
unterschiedlich, ist Geschmacksache.
Dazu folgende Variante (ungetestet):
Delphi-Quellcode:
//--------- globale Variablen -----------------------

CONST min = 0;      // untere Grenze des Arrays
CONST max = 5000;   // obere Grenze des Arrays

VAR haufen : Array[min..max] of integer;

//---------------- Funktion --------------------------

function suche_den_dicksten; // hier stehen KEINE PARAMETER drin!
var wert, i: Integer;
begin
  wert:=0;
  for i:=min to max do      // verwende globale Konstanten
    if haufen[i]> wert then // verwende globales Array (lesend)
      wert:=haufen[i];
  result:= wert; // wir wollen den Wert zurück geben. ;-)
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 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