Hallo,
man kann Wurzel ziehen auf verschiedene Arten machen. SQRT . exp(1/2)*ln(Basis) oder auch ganz normal
im Programm.
Man kann dieses kleine Programmteil auch 'in einer Function' packen und diese aufrufen. Tut auch...
aber---
nun versuche ich, dieses in eine 'Procedur' zu schreiben und diese dann aufzurufen:
Bisher:
Delphi-Quellcode:
procedure RAPUNZEL(var mW:Integer;mRauf:Real); // 1 Aufgaben-Wert runter, 1 Ergebnis-Wert rauf ...
var mX, mY : Real;
mRaus : Byte;
begin
mX := (1 + mW)/2;
mRaus:= 0; // dieses Programmteil funktioniert
Repeat // als Hauptprogramm schon
Begin // also mathematisch in Ordnung
mY:=(mX+mW/mX)/2;
if mY = mX then mRaus:=1;
mX:=mY;
end;
Until mRaus = 1;
mRauf:= mY;
end;
.................................................. ......
Aufruf der Procedur RAPUNZEL im Hauptprogramm:
Hier scheitert es immer:
Delphi-Quellcode:
mErg5 := rapunzel(mWas,mRauf);
Erg5Edit.Text:=FormatFloat('######.############',mErg5);
.................................................. ........
Fehlermeldung: Inkompatible Typen: 'Real' und 'procedure' untyped pointer or untyped parameter
Ganz im Vertrauen, in VBASIC funktioniert es...
MfG Foxgrove