Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Function die mit einem Array rechnet in einer porcedure aufrufen (https://www.delphipraxis.net/214488-function-die-mit-einem-array-rechnet-einer-porcedure-aufrufen.html)

JoKi07 18. Jan 2024 19:57

Function die mit einem Array rechnet in einer porcedure aufrufen
 
Hallo an alle,
dies ist der Code einer Hausaufgabe die ich in Delphi für die Schule erledigen muss.
Meine Aufgabe ist es die Summe eines Arrays ausgeben zu lassen.
Meine folgende Frage ist nun warum der code nicht so funktioniert, der Fehler ist bei "L_Summe.Caption:=floattostr(summeArray(zahl): array of integer);" da wird mir der Doppelpunkt makiert.
Mit den jeweiligen auskommentierten, funktioniert es so wie es soll aber wieso nicht mit dem nicht auskommentierten?
Währe cool wenn mir jemand erklären könnte wo mein Problem dabei liegt oder geht es so gar nicht?
Vielen Dank im Vorraus.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    B_ArraySumClick: TButton;
    B_Zufallszahlen: TButton;
    B_Speichern: TButton;
    SG_Tab1: TStringGrid;
    L_Summe: TLabel;
    procedure B_ZufallszahlenClick(Sender: TObject);
    procedure B_SpeichernClick(Sender: TObject);
    procedure B_ArraySumClickClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    zahl:array[1..5] of integer;
    function summeArray (zahl: array of Integer) :integer;
    //function summeArray :integer;
end;
 type
  zahl = array of string;
var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.summeArray(zahl:array of Integer): integer;
//function TForm1.summeArray :integer;
var
i,sum:integer;
  begin
    sum:=0;
   for i := 1 to 5 do
      begin
      sum:=sum+zahl[i]
      end;
      result:=sum;
  end;

procedure TForm1.B_ArraySumClickClick(Sender: TObject);
begin
L_Summe.Caption:=floattostr(summeArray(zahl): array of integer);
//L_Summe.Caption:=floattostr(summeArray);
end;

procedure TForm1.B_SpeichernClick(Sender: TObject);
var
i: integer;
begin
  for i := 1 to 5 do
    begin
      zahl[i]:=Strtoint(SG_Tab1.Cells[i-1,0]);
    end;
end;

procedure TForm1.B_ZufallszahlenClick(Sender: TObject);
var
i:integer;
begin
randomize;
 for i := 1 to 5 do
  begin
    SG_Tab1.Cells[i-1,0]:=inttostr(random(50));
  end;
end;

end.

KodeZwerg 18. Jan 2024 22:18

AW: Function die mit einem Array rechnet in einer porcedure aufrufen
 
Willkommen im Forum!
Zitat:

Zitat von JoKi07 (Beitrag 1532234)
..der Fehler ist bei "L_Summe.Caption:=floattostr(summeArray(zahl): array of integer);" ... aber wieso nicht mit dem nicht auskommentierten?

Ohne jetzt tief zu prüfen ob das was Du da anstellst seine Richtigkeit hat, zeige ich Dir einfach mal Deinen Quelltext in der Hoffnung Du bemerkst was an Deinem Aufruf falsch ist.
Zitat:

Zitat von JoKi07 (Beitrag 1532234)
Delphi-Quellcode:
    function summeArray (zahl: array of Integer) :integer;

Na, hat es klick gemacht?
Falls nicht, schau nochmal ganz genau auf Deinen Aufruf und wie Du Deine Methode definiert hast.

himitsu 19. Jan 2024 00:34

AW: Function die mit einem Array rechnet in einer porcedure aufrufen
 
Wozu nochmal ein gleichnamiger Typ "zahl", der wie die Variable heißt?

Und randomize ruft man eigentlich nicht mehrmals auf.

haentschman 19. Jan 2024 06:22

AW: Function die mit einem Array rechnet in einer porcedure aufrufen
 
Hallöle...8-)

Bei der Deklaration der Funktion gibst du den Parameter incl. dem Typ an.
Delphi-Quellcode:
function summeArray (zahl: array of Integer): Integer;
...richtig

Beim Aufruf der Funktion übergibst du nur, in deinem Fall das Array, OHNE den Typ...weil die Funktion weiß das.
Delphi-Quellcode:
L_Summe.Caption := FloatToStr(summeArray(zahl));
...fertsch. :zwinker:

PS:
Heute macht man keine Unterstriche mehr...der Lehrer oder? :?
StyleGuide zum Nachlesen: https://www.delphi-treff.de/object-pascal/styleguide/


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