![]() |
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:
Habe einen "Inkompatible Typen"-Fehler wegen dem "Ergebnis" und wollte euch
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. 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 :)! |
Re: Verständnisproblem ... Funktionen und Deklaration
Delphi-Quellcode:
ABRechteckEdit.Text := IntToStr(Ergebnis);
|
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! |
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.
|
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! |
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:
Extended und Integer -> Inkompatible Typen?function KreisFlaeche(Radius: integer): integer; begin result := Pi*(Radius*Radius); end; (...) Radius := StrToInt(RadiusEdit.Text); Kreisflaeche := KreisFlaeche(Radius); KreisEdit.Text := IntToStr(Kreisflaeche); Sorry für die vielleicht doofen Fragen, aber bin totaler Anfänger! |
Re: Verständnisproblem ... Funktionen und Deklaration
Nimm mal Round() da Integer ne Ganzzahl ist und Extended ne Kommazahl!
|
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? |
Re: Verständnisproblem ... Funktionen und Deklaration
Zitat:
Zitat:
|
Re: Verständnisproblem ... Funktionen und Deklaration
Ok ich habs geschafft =) ... bin nun darauf gekommen ...
Delphi-Quellcode:
Was hat nach ffNumber die erste Zahl (0) zu bedeuten?
RechteckEdit.Text := FloatToStrF(ErgebnisAB, ffNumber, 0,2);
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? |
Re: Verständnisproblem ... Funktionen und Deklaration
Was die Zahlen genau machen, siehst Du inkl. Beispiele bei
![]() |
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:
Die Variable Radius wird vom Datentyp Extended deklariert, doch wozu
function XY(Radius: Extended): Extended;
brauche ich dann am Ende nochmals das Extended, was wahrscheinlich die Funktion deklariert ?!Worauf muss man da achten und wozu ist das gut? |
Re: Verständnisproblem ... Funktionen und Deklaration
Das ist der Rückgabetyp.
|
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 =)! |
Re: Verständnisproblem ... Funktionen und Deklaration
Zitat:
Zitat:
Delphi-Quellcode:
X MOD Y
|
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? |
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 ... |
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 ...
|
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