Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Verständnisproblem ... Funktionen und Deklaration (https://www.delphipraxis.net/80758-verstaendnisproblem-funktionen-und-deklaration.html)

Problemmacher 14. Nov 2006 20:21


Verständnisproblem ... Funktionen und Deklaration
 
Guten Abend!

Ich habe vor Delphi zu lernen doch bereits bei den kleinsten Ansätzen habe
ich große Probleme damit, die ganze Logik bzw. Struktur solcher Funktionen
und die Notwendigkeit von StrToInt und ähnlichem zu verstehen ...

Aktuell hab ich folgendes Programm, was jedoch nich läuft ..

Delphi-Quellcode:
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  function RechteckFlaeche(Seite1, Seite2: integer): integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function RechteckFlaeche(Seite1, Seite2: integer): integer;
begin
  result := Seite1*Seite2 ;
end;

procedure TForm1.BerechnungButtonClick(Sender: TObject);
var Seite1, Seite2, Ergebnis: integer;
begin

  Seite1 := StrToInt(ASeiteEdit.Text);
  Seite2 := StrToInt(BSeiteEdit.Text);
  Ergebnis := RechteckFlaeche(Seite1, Seite2);

  ABRechteckEdit.Text := Ergebnis;

end;

end.
Habe einen "Inkompatible Typen"-Fehler wegen dem "Ergebnis" und wollte euch
bitten und fragen was daran falsch ist und ob ich die ganze Struktur von den
Funktionne bis dato richtig angewendet habe.

Geht darum, dass ich zwei Seitenlängern hab und eben daraus den Flächeninhalt
berechnen will ... ganz simpel also, aber mittels Funktion!

Vielen Dank für jegliche Hilfe :)!

mkinzler 14. Nov 2006 20:23

Re: Verständnisproblem ... Funktionen und Deklaration
 
Delphi-Quellcode:
ABRechteckEdit.Text := IntToStr(Ergebnis);

Problemmacher 14. Nov 2006 20:26

Re: Verständnisproblem ... Funktionen und Deklaration
 
Oh ok Vielen Dank!

Könnte mir vll. jemand erläutern wann ich immer weiß wann ich sowas
umwandeln muss? Weil wenn ich ehrlich bin hab ich mich beim ersten Fall
auch nur von woanders dran gehalten und den wirklichen Grund wann etwas
"umgewandelt" werden muss weiß ich leider nicht ... wäre sehr freundlich!

mkinzler 14. Nov 2006 20:27

Re: Verständnisproblem ... Funktionen und Deklaration
 
Die typen müssen passen. Da Edit.Text vom Typ String ist mußt du den Integer in einen String wandeln bevor du ihn zuweisen kannst.

Mackhack 14. Nov 2006 20:29

Re: Verständnisproblem ... Funktionen und Deklaration
 
Hi,

ich habs mir damals so gemerkt. StrToInt wenn du einen String hast den du in einen Integer Wert haben willst WEIL einen String kannst du SEHEN, n Integer nicht! Wenn du ne Zahl ausgeben willst brauchst du IntToStr, also etwas was du nicht sehen kannst in etwas was du sehen kannst, naemlich den String! Vlt. hilft dir diese Eselsbruecke ja!

Problemmacher 14. Nov 2006 20:48

Re: Verständnisproblem ... Funktionen und Deklaration
 
Achso Danke .. ich glaube langsam komme ich dahinter, doch nun
hab ich wieder einen anderen Fehler ... wie löse ich das?

Delphi-Quellcode:

function KreisFlaeche(Radius: integer): integer;
begin
  result := Pi*(Radius*Radius);
end;

(...)

  Radius := StrToInt(RadiusEdit.Text);
  Kreisflaeche := KreisFlaeche(Radius);
  KreisEdit.Text := IntToStr(Kreisflaeche);
Extended und Integer -> Inkompatible Typen?

Sorry für die vielleicht doofen Fragen, aber bin totaler Anfänger!

Mackhack 14. Nov 2006 20:52

Re: Verständnisproblem ... Funktionen und Deklaration
 
Nimm mal Round() da Integer ne Ganzzahl ist und Extended ne Kommazahl!

Problemmacher 14. Nov 2006 20:58

Re: Verständnisproblem ... Funktionen und Deklaration
 
Ja das habe ich mir auch schon gedacht, allerdings
wäre es hierbei schon sehr gut wenn ich so die Kommazahl habe ...
Muss ich dann einen anderen Datentyp als Integer wählen, z.B. Real?

Und dann statt StrToInt -> StrToFloat und umgekehrt und das wars?

mkinzler 14. Nov 2006 21:00

Re: Verständnisproblem ... Funktionen und Deklaration
 
Zitat:

Muss ich dann einen anderen Datentyp als Integer wählen, z.B. Real?
Am Besten Extended

Zitat:

Und dann statt StrToInt -> StrToFloat und umgekehrt und das wars?
ja aber besser wäre TryStrToFloat

Problemmacher 14. Nov 2006 21:26

Re: Verständnisproblem ... Funktionen und Deklaration
 
Ok ich habs geschafft =) ... bin nun darauf gekommen ...

Delphi-Quellcode:
RechteckEdit.Text := FloatToStrF(ErgebnisAB, ffNumber, 0,2);
Was hat nach ffNumber die erste Zahl (0) zu bedeuten?
Die Zwei dahinter sind ja die Stellen nach dem Komma, aber das
davor krieg ich irgendwie nich raus .. egal ob es 0 oder 8 ist,
da kommt immer das gleiche raus - Also wozu soll das denn gut sein?

Daniel Schuhmann 14. Nov 2006 23:22

Re: Verständnisproblem ... Funktionen und Deklaration
 
Was die Zahlen genau machen, siehst Du inkl. Beispiele bei Delphibasics. Die Webseite ist übrigens bei weiteren Problemen auch eine gute Hilfe, wenn F1 nicht recht weiterhelfen will...

Problemmacher 15. Nov 2006 14:57

Re: Verständnisproblem ... Funktionen und Deklaration
 
Achso, Dankeschön für den Tipp :) Handelt sich also wohl um die Vorkommastellen ...

Ein weitere Frage wäre, wenn ich denn noch dürfte ...

Delphi-Quellcode:
function XY(Radius: Extended): Extended;
Die Variable Radius wird vom Datentyp Extended deklariert, doch wozu
brauche ich dann am Ende nochmals das Extended, was wahrscheinlich
die Funktion deklariert ?!Worauf muss man da achten und wozu ist das gut?

3_of_8 15. Nov 2006 14:59

Re: Verständnisproblem ... Funktionen und Deklaration
 
Das ist der Rückgabetyp.

Problemmacher 15. Nov 2006 20:12

Re: Verständnisproblem ... Funktionen und Deklaration
 
Der Rückgabetyp bzw. -wert von "result"?
Also vom Ergebnis der Funktion ... oder ist das wieder was anderes?

Hätte noch eine Frage: Gibt es Modulo oder sowas in Delphi? Ich würde
nämlich gerne überprüfen per IF ob eine Teilung von X durch Y einen
Rest vorweist oder "= 0" ist ... Danke schonmal für Anregungen =)!

mkinzler 15. Nov 2006 20:18

Re: Verständnisproblem ... Funktionen und Deklaration
 
Zitat:

Der Rückgabetyp bzw. -wert von "result"?
Also vom Ergebnis der Funktion ... oder ist das wieder was anderes?
Exakt.
Zitat:

Hätte noch eine Frage: Gibt es Modulo oder sowas in Delphi?
Delphi-Quellcode:
X MOD Y

Problemmacher 22. Nov 2006 14:59

Re: Verständnisproblem ... Funktionen und Deklaration
 
Hallo nochmal!

Mittlerweile bin ich so weit, dass ich gerne die Quersumme
berechnen würde (einer Zahl) - Gibt es eine Möglichkeit dies
ohne Schleifen zu lösen? Also ohne do ... while oder repeat oder sowas?

Wenn ja wie würdet ihr das machen?

Problemmacher 22. Nov 2006 19:30

Re: Verständnisproblem ... Funktionen und Deklaration
 
Weiß da echt niemand Rat? Wäre wirklich sehr nett wenn ihr
mir das vielleicht erläutern könntet wie man dieses Problem
ohne Schleifen lösen könnte ... wahrscheinlich mit If etc.,
aber wie genau man da abfragen müsste kann ich mir nicht erdenken ...

jfheins 22. Nov 2006 19:34

Re: Verständnisproblem ... Funktionen und Deklaration
 
Das kannst du afaik mit einer Schleife (also iterativ) oder rekursiv lösen, wobei das jetzt nicht so den Unterschied macht, da beide ansätze equivalent sind ...

leddl 22. Nov 2006 19:36

Re: Verständnisproblem ... Funktionen und Deklaration
 
Mir fällt spontan nichts ein, ich weiß aber genau, was dir gesagt werden wird, wenn ein Moderator über diesen Thread stolpert :zwinker:
Darum komm ihm zuvor und mach nen neuen Thread auf für die Frage :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz