AGB  ·  Datenschutz  ·  Impressum  







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

Benutzerdefinierte PROCEDUR

Ein Thema von Foxgrove · begonnen am 18. Dez 2005 · letzter Beitrag vom 18. Dez 2005
Antwort Antwort
Foxgrove

Registriert seit: 10. Sep 2005
Ort: Schwäbisch Gmünd
20 Beiträge
 
Delphi 3 Standard
 
#1

Benutzerdefinierte PROCEDUR

  Alt 18. Dez 2005, 19:42
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
  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: Benutzerdefinierte PROCEDUR

  Alt 18. Dez 2005, 19:51
Ganz im Vertrauen, das funktioniert auch in VB nicht. Kann ich mir zumindest nicht vorstellen. Du hast eine Prozedur, also eine Methode, die höchstens über ihre Parameter Werte zurückliefert.
Und diese Prozedur willst du jetzt einer Variablen vom Typ Real (mERG5 wird doch wohl als Real deklariert sein, oder?)
Wie soll denn das gehen?
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 Nikolas
Nikolas

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

Re: Benutzerdefinierte PROCEDUR

  Alt 18. Dez 2005, 19:54
Eine Procedure gibt keinen Wert zurück. In deiner Funktion werden nur interne Variablen geändert. Du musst daraus eine Funktion machen oder einen Ergebniss-Parameter mit Var übergeben, der dann geändert wird:
Delphi-Quellcode:
Procedure Rapunzel(var erg: real; const a,bv,s: real);
begin
erg:= 78-a;
end;

//Aufruf:

Rapunzel(erg, 1,2,3);

Showmessage(floattostr(erg)); //Sollte jetzt 77 sein.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  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 22:48 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